Kode sumber pemutar legacy Winamp
(github.com/WinampDesktop)Winamp
Pengenalan
- Winamp adalah pemutar multimedia yang dirilis pada tahun 1997, terkenal karena kompatibilitasnya dengan berbagai format audio dan fleksibilitasnya
- Dikembangkan oleh Nullsoft, dan meraih popularitas besar di kalangan jutaan pengguna
- Pengembangannya sempat dihentikan untuk beberapa waktu, tetapi kini kode sumbernya telah dibuka sehingga komunitas dapat meningkatkan dan memodernisasi pemutar ini
Cara penggunaan
- Build klien desktop Winamp saat ini berbasis Visual Studio 2019 (VS2019) dan library Intel IPP
- Ada beberapa cara untuk membangun Winamp
- Menggunakan file skrip
build_winampAll_2019.cmduntuk membangun 4 versi x86/x64 (debug dan release). Dalam hal ini, Visual Studio IDE tidak dijalankan - Menggunakan file
winampAll_2019.slnuntuk melakukan build dan debug di Visual Studio IDE
- Menggunakan file skrip
Dependensi
- Menggunakan file skrip
build_winampAll_2019.cmduntuk membangun 4 versi x86/x64 (debug dan release). Dalam hal ini, Visual Studio IDE tidak dijalankan - Menggunakan file
winampAll_2019.slnuntuk melakukan build dan debug di Visual Studio IDE
libvpx
libvpxdiambil dari https://github.com/ShiftMediaProject/libvpx, lalu dimodifikasi dan dikemas sebagai arsip- Jalankan
unpack_libvpx_v1.8.2_msvc16.cmduntuk mengekstraknya
libmpg123
libmpg123diambil dari https://www.mpg123.de/download.shtml, lalu dimodifikasi dan dikemas sebagai arsip- Jalankan
unpack_libmpg123.cmduntuk memproses file dll
OpenSSL
- Harus menggunakan
openssl-1.0.1u - Untuk membangun versi statis library, jalankan
build_vs_2019_openssl_x86.cmddanbuild_vs_2019_openssl_64.cmd - Untuk membangun OpenSSL, Anda perlu memasang 7-Zip, NASM, dan Perl
DirectX 9 SDK
- DirectX 9 SDK (Juni 2010) diambil dari Microsoft, lalu dimodifikasi dan dikemas sebagai arsip
- Jalankan
unpack_microsoft_directx_sdk_2010.cmduntuk mengekstraknya
Modifikasi lib Microsoft ATLMFC
- Ubah baris ke-427 pada file
C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.hdarireturn ::DeleteFile((LPTSTR)lpFileName);menjadireturn DeleteFile((LPTSTR)lpFileName);
Intel IPP 6.1.1.035
- Intel IPP 6.1.1.035 diambil, lalu dimodifikasi dan dikemas sebagai arsip
- Jalankan
unpack_intel_ipp_6.1.1.035.cmduntuk mengekstraknya
Ringkasan GN⁺
- Winamp masih disukai banyak pengguna karena kompatibilitasnya dengan berbagai format audio
- Kode sumbernya telah dibuka, memberi komunitas kesempatan untuk meningkatkan dan memodernisasi pemutar ini
- Winamp dapat dibangun menggunakan Visual Studio 2019 dan berbagai library, serta memerlukan penanganan beragam dependensi
- Pemutar multimedia lain dengan fungsi serupa Winamp antara lain VLC Media Player dan foobar2000
2 komentar
Dari isunya, sepertinya ada banyak perdebatan soal lisensi.
Komentar Hacker News
Saya penasaran bagaimana mereka mengharapkan orang berkontribusi ke proyek ini. Pasal 4 lisensinya meminta agar perbaikan, penambahan fitur, dan perbaikan bug diajukan ke repositori resmi, tetapi pembatasan di Pasal 5 melarang fork kode atau distribusi versi yang dimodifikasi
Jadi alur standar GitHub sendiri—“fork repositori, ubah di branch, lalu kirim pull request”—menjadi pelanggaran lisensi
Namun patch itu tidak bisa diuji atau di-debug. Karena itu berarti membuat versi modifikasi dari codebase, yang dilarang. Cukup tuliskan langsung apa yang muncul dari khayalan demam tanpa bantuan praktik yang biasa. Kalau cukup untuk lisensi, mestinya cukup juga untuk kode
Yang kedua adalah “mem-fork proyek”, artinya secara aktif mengembangkan dan mendistribusikan garis keturunan alternatif dengan nama terpisah. Menurut saya alur pull request GitHub tetap boleh dipakai. Sayangnya di sini GitHub memakai nama yang tidak sejalan dengan makna “fork” yang sudah mapan. Sebenarnya seharusnya disebut “clone”
GitHub hanya memakai kata “fork” juga untuk membuat salinan repositori guna kontribusi
Kebanyakan orang akan begitu, mereka juga tidak akan menghadapkan kontributor dengan pengacara, dan dunia akan terus berjalan
Hal terbaik yang bisa dilakukan sekarang demi masa depan proyek ini adalah tidak terlibat. Bahkan menyalinnya ke ruang kerja pribadi untuk ditinjau atau dikompilasi pun sudah terasa sebagai partisipasi berlebihan dibandingkan sikap lisensi saat ini
Kalau ada postingan HN yang mengatakan posisi lisensinya sudah berubah, saya akan mengecek lagi, tetapi sampai saat itu lebih baik tutup tab ini dan lupakan
Pertanyaan: Source WinAMP sudah resmi dibuka; apakah ada keinginan untuk mengutak-atik dan memasukkan fitur baru yang keren?
Jawaban: Kalau pun ada keinginan seperti itu, ketentuan lisensinya pasti sudah menghilangkannya, lol. Cara ketentuannya ditulis benar-benar tidak masuk akal. Misalnya, tertulis “tidak boleh membuat, memelihara, atau mendistribusikan versi fork dari perangkat lunak.” Kalau begitu perubahan apa pun bisa dianggap “membuat versi fork”. Bahkan jika ditafsirkan sedikit lebih longgar sesuai niatnya, ketentuannya tetap buruk. Saya lewat
Saya ingat dulu sekali nongkrong di #mpeg3 di EFNet, dan mengenal Justin Frankel saat ia sedang mengerjakan ini
Saya membuat beberapa skin dan ikon tray untuk aplikasi ini, dan sebagian di antaranya ada di sini. Saya tidak 100% ingat mana saja yang semuanya buatan saya, tetapi punchlabel jelas buatan saya. Nama saya juga ada di kredit: https://github.com/WinampDesktop/winamp/blob/0695744fd658c42...
Mereka sepertinya akan mengirim banyak permintaan DMCA ke GitHub sampai repositori mereka sendiri diturunkan dari GitHub, atau menurunkannya sendiri dari GitHub dengan risiko kehilangan hak cipta
Fork adalah fitur inti GitHub. Kebijakan fork hanya bisa diatur untuk repositori privat, sedangkan ini repositori publik. Lisensinya tidak mengizinkan fork, dan sudah ada 6 fork. Biasanya hak cipta, berbeda dari merek dagang, tidak hilang karena penegakan selektif, tetapi dalam kasus ini pemegang hak membuat pelanggaran lisensi sangat mudah terjadi dan juga punya akses penuh ke daftar pelanggarnya. Jika mereka tidak aktif membela haknya, tampaknya mereka akan jadi bahan tertawaan di pengadilan. Dari sisi GitHub pun ini situasi yang tidak ingin mereka tangani. Pengalaman pengguna yang buruk sekali: mengklik salah satu tombol yang paling sering ditekan di platform, lalu tiba-tiba menjadi masalah hukum
Saya punya sedikit hubungan dengan Winamp. Dulu saya membuat plugin yang cukup populer
Ini adalah source code Winamp 3, yaitu versi Winamp 2 yang ditulis ulang sepenuhnya dalam C++. Menurut saya terlalu kompleks dan terlalu over-engineered. Source code asli Justin Frankel ditulis dalam C
Jadi bisa dibilang ini kekacauan yang mencampur bertahun-tahun proses pengembangan 1.x → 2.x → 5.x dan hasil sentuhan banyak orang selama itu. Sebagian besar Winamp3 juga masuk, dan bagian itu dulu sudah benar-benar dirilis sebagai open source pada masa AOL. Berbeda dari lisensi kali ini yang sangat dibatasi. Namun seingat saya, saat artefak kode dibuat, repositori khusus Winamp3 tidak pernah disediakan. Setidaknya begitu kalau ingatan saya dari 11 tahun lalu benar
-dro
Musim panas 1999 saat kuliah, rumah kami adalah rumah pertama yang memakai MP3 di pesta. Kebanyakan orang memakai CD changer, dan karena banyak disk yang tergores dan bernoda, musiknya sering meloncat
Kami sepenuhnya digital dan mendahului zamannya. Pestanya diadakan di basement; komputer dikunci di kamar tidur kosong, lalu kabel dan speaker ditarik ke area utama di bawah. Winamp diputar dengan shuffle, berjam-jam tidak pernah sekalipun skip, dan tidak perlu ada orang yang menjaga musik. Terima kasih Winamp karena sudah menciptakan kenangan indah
Ini adalah penyimpangan makna kata “open”. Ketentuan lisensinya tidak mengizinkan redistribusi atau penjualan kembali, padahal itu biasanya merupakan syarat yang diterima umum untuk open source
Perlu diperhatikan bahwa tidak ada “open source” tertulis baik di judul maupun repositori. Ini seharusnya disebut source available, bukan “sumbernya sekarang dibuka”
Sebaiknya hapus klaim “lisensi copyleft” itu, atau longgarkan pembatasan distribusinya menjadi kira-kira “jika mendistribusikan versi modifikasi program ini, versi modifikasi itu tidak boleh disebut Winamp”
Itu satu-satunya pemutar musik yang tidak menjengkelkan. Tanpa tetek-bengek dan grafis kaku yang dianggap benar oleh para pesaingnya, ia hanya melakukan tugasnya dengan antarmuka yang ringkas
Kalau saya berada di posisi perekrutan, orang dari Tidal tidak akan punya kesempatan
Sejak bertemu monster ini, saya tidak pernah kembali ke yang lain
Lucunya, commit terbaru adalah “Removing code which is not open”[0], yang berarti dengan membiarkan kode itu ada di riwayat Git, mereka melanggar ketentuan lisensi milik pihak lain
[0] https://github.com/WinampDesktop/winamp/commit/0a4b7d32d0906...
Copyright 2000-2002 Dolby Laboratories, Inc. All Rights
Reserved. Do not copy. Do not distribute.
Confidential information.
(C) copyright Fraunhofer - IIS (1998)
All Rights Reserved
Jika ingin salinan gratis perangkat lunak server SHOUTcast, mereka sedang membagikan secara ilegal kode itu di repositori ini
https://github.com/WinampDesktop/winamp/tree/3ab19235a69d96b...
Sumber: https://en.wikipedia.org/wiki/Radionomy#List_of_properties_f...