Winamp レガシープレーヤーのソースコード
(github.com/WinampDesktop)Winamp
紹介
- Winampは1997年にリリースされたマルチメディアプレーヤーで、さまざまなオーディオフォーマットとの互換性と柔軟性で知られている
- Nullsoftが開発し、数百万人のユーザーの間で高い人気を集めた
- 開発はしばらく中断されていたが、現在はソースコードが公開され、コミュニティがプレーヤーを改善・モダナイズできるようになった
使用方法
- Winampデスクトップクライアントのビルドは現在、Visual Studio 2019 (VS2019) と Intel IPP ライブラリをベースとしている
- Winampをビルドする方法はいくつかある
build_winampAll_2019.cmdスクリプトファイルを使って x86/x64(デバッグおよびリリース)の4バージョンをビルドする。この場合、Visual Studio IDEは起動しないwinampAll_2019.slnファイルを使って Visual Studio IDE でビルドおよびデバッグを行う
依存関係
build_winampAll_2019.cmdスクリプトファイルを使って x86/x64(デバッグおよびリリース)の4バージョンをビルドする。この場合、Visual Studio IDEは起動しないwinampAll_2019.slnファイルを使って Visual Studio IDE でビルドおよびデバッグを行う
libvpx
libvpxは https://github.com/ShiftMediaProject/libvpx から取得し、修正後にアーカイブとしてパッケージしているunpack_libvpx_v1.8.2_msvc16.cmdを実行して展開する
libmpg123
libmpg123は https://www.mpg123.de/download.shtml から取得し、修正後にアーカイブとしてパッケージしているunpack_libmpg123.cmdを実行して dll ファイルを処理する
OpenSSL
openssl-1.0.1uを使用する必要がある- 静的版ライブラリをビルドするために
build_vs_2019_openssl_x86.cmdとbuild_vs_2019_openssl_64.cmdを実行する - OpenSSLをビルドするには、7-Zip、NASM、Perlをインストールする必要がある
DirectX 9 SDK
- DirectX 9 SDK(2010年6月)をMicrosoftから取得し、修正後にアーカイブとしてパッケージしている
unpack_microsoft_directx_sdk_2010.cmdを実行して展開する
Microsoft ATLMFC lib の修正
C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.hファイルの427行目をreturn ::DeleteFile((LPTSTR)lpFileName);からreturn DeleteFile((LPTSTR)lpFileName);に変更する
Intel IPP 6.1.1.035
- Intel IPP 6.1.1.035 を取得し、修正後にアーカイブとしてパッケージしている
unpack_intel_ipp_6.1.1.035.cmdを実行して展開する
GN⁺の要約
- Winampは、さまざまなオーディオフォーマットとの互換性により、今なお多くのユーザーに愛されている
- ソースコードが公開され、コミュニティがプレーヤーを改善・モダナイズできる機会が提供された
- Visual Studio 2019と複数のライブラリを使ってビルドでき、さまざまな依存関係に対応する必要がある
- Winampと似た機能を提供する他のマルチメディアプレーヤーには、VLC Media Playerやfoobar2000がある
2件のコメント
ライセンスのことでかなり議論になっているようですね
Hacker Newsのコメント
このプロジェクトで人々にどう貢献してほしいと考えているのか気になる。ライセンス第4条では、改善、機能追加、バグ修正を公式リポジトリに提出するよう求めているが、第5条の制限ではコードのフォークや改変版の配布を禁じている
だとすると、GitHubの標準的なやり方である「リポジトリをフォークし、ブランチで修正し、プルリクエストを送る」という流れ自体がライセンス違反になる
ただし、そのパッチをテストしたりデバッグしたりはできない。それはコードベースの改変版を作ることになり、禁止されているからだ。ただ妄想じみた熱病の中から出てきた内容を、慣行の助けなしにそのまま書けばいい。ライセンスに十分なら、コードにも十分だろう
もう1つは「プロジェクトをフォークする」という意味で、別名のもとで代替系統を積極的に開発・配布することだ。GitHubのプルリクエストの流れを使うのは問題ないと思う。ここでは、GitHubがすでに定着した「fork」の意味とずれる名前を付けたのが残念だ。本当は「clone」であるべきだった
GitHubは、貢献用のリポジトリのコピーを作る場合にも「fork」という言葉を使っているだけだ
たいていはそうするだろうし、貢献者に弁護士を差し向けることもないだろうし、世の中はそのまま回り続けるだろう
このプロジェクトの将来のために今できる最善のことは、関わらないことだ。レビューしたりコンパイルしたりしようとして個人の作業環境に複製することさえ、現在のライセンス姿勢からすれば関与しすぎている
ライセンス方針を変えたというHN投稿が出たらまた確認するが、それまではこのタブを閉じて忘れるのがよさそうだ
質問: WinAMPのソースが公式に公開されたが、新しくてクールな機能をハックして入れたい気持ちはあるか?
回答: そういう気持ちがあったとしても、ライセンス条件のせいで消えただろうね、lol。条件の書き方が完全にばかげている。たとえば「ソフトウェアのフォーク版を作成、維持、配布してはならない」とある。だとすると、どんな変更でも「フォーク版を作ること」と見なされうる。意図どおりにもう少し寛大に解釈したとしても、条件はひどい。遠慮しておく
ずっと昔、EFNetの#mpeg3でたむろしていたころに、Justin Frankelがこれを作業していた時期に知り合ったのを覚えている
アプリ用のスキンとトレイアイコンをいくつか作ってあげて、その一部がここに入っている。どれが全部自分のものか100%は思い出せないが、punchlabelは確実に自分のものだ。クレジットにも自分の名前がある: https://github.com/WinampDesktop/winamp/blob/0695744fd658c42...
彼らはGitHubに大量のDMCA申請を送り始めて、自分たちのリポジトリがGitHubから落とされることになるか、あるいは著作権を失うリスクを負って自らGitHubから下ろすことになる気がする
フォークはGitHubの中核機能だ。フォークポリシーを設定できるのは非公開リポジトリだけで、これは公開リポジトリだ。ライセンスはフォークを許可していないのに、すでにフォークが6個ある。通常、著作権は商標権と違って選択的な執行で失われることはないが、この件では権利者がライセンス違反を極めて簡単に発生させており、違反者の一覧にも完全にアクセスできる。権利を積極的に防衛しなければ、法廷で笑いものになりそうだ。GitHubとしても扱いたくない状況だろう。プラットフォームで最も多く押されるボタンの1つをクリックしただけで、いきなり法的問題になるというひどいユーザー体験だからだ
Winampとは少し縁がある。以前かなり人気のあるプラグインを作っていた
これはWinamp 3のソースコードで、Winamp 2をC++で完全に書き直した版だ。私の考えでは、複雑すぎて過剰設計だ。Justin Frankelの元のソースコードはCだった
そのため、1.x → 2.x → 5.xの開発過程にわたる何年分もの内容と、その間に複数の人が手を入れた結果が入り混じった、言ってみればカオスになっている。Winamp3の大きな部分も含まれているが、それはAOL時代にすでにきちんとオープンソースとして公開されていた部分だ。今回のような極端に制限的なライセンスとは違う。ただし、コードの引き渡し物を作る際に専用のWinamp3リポジトリが提供されたことはなかったと記憶している。11年前の記憶が正しければ、という話だ
-dro
1999年の夏、大学時代、うちの家はパーティーでMP3を使った最初の家だった。ほとんどはCDチェンジャーを使っていて、傷や汚れのあるディスクが多く、音楽がずっと飛んでいた
私たちは完全デジタルに移行していて、時代を先取りしていた。パーティーは地下室で開き、コンピューターは空いている寝室に閉じ込めて、ケーブルとスピーカーを地下のメインスペースまで引っ張った。Winampをシャッフルで回し、何時間も一度も音飛びせず、誰かが音楽の面倒を見る必要もなかった。良い思い出を作ってくれたWinampに感謝
「open」という語をねじ曲げたものだ。ライセンス条件は再配布や再販売を認めておらず、これは一般に受け入れられているオープンソースの条件に反する
タイトルやリポジトリのどこにも「open source」と書いていない点に注目すべきだ。「ソースが今や開かれた」のではなく、source availableと呼ぶべきだった
「コピーレフトライセンス」という主張を取り下げるか、配布制限を「このプログラムの改変版を配布する場合、その改変版をWinampと呼んではならない」程度に緩和してほしい
腹の立たない唯一の音楽プレーヤーだった。競合製品が正解だと思い込んでいたガラクタや無骨なグラフィック抜きで、簡潔なインターフェースで自分の仕事だけをしていた
もし自分が採用する立場なら、Tidal出身者にチャンスはないだろう
この怪物に出会ってから、ほかへ戻ったことはない
面白いのは、最新コミットが「Removing code which is not open」[0]なのに、それはそのコードをGitの履歴に残すことで別の誰かのライセンス条件を侵害しているという意味だ
[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
SHOUTcastサーバーソフトウェアの無料コピーが欲しいなら、このリポジトリでそのコードを違法共有している
https://github.com/WinampDesktop/winamp/tree/3ab19235a69d96b...
出典: https://en.wikipedia.org/wiki/Radionomy#List_of_properties_f...