RubyがRailsから撤退:ライセンス違反でコードライブラリが削除され、50万のプロジェクトに混乱を引き起こす

Table of Contents

RubyがRailsから撤退:ライセンス違反でコードライブラリが削除され、50万のプロジェクトに混乱を引き起こす

更新:水曜日、ソフトウェア ライブラリのメンテナーである Bastien Nocera 氏は、 Nocera 氏のコードが組み込まれているshared-mime-infoRuby ライブラリのメンテナーである Daniel Mendler 氏に対し、互換性のないソフトウェア ライセンスの下でリリースしていることを通知しました。mimemagicmimemagic

このshared-mime-infoライブラリは GPLv2 ライセンスに基づいており、mimemagicMIT ライセンス プロジェクトとしてリストされています。

「GPL ファイルをソースとして使用すると、コードベース全体が派生作品となり、すべてが GPL になります。そのため、誰かが純粋な MIT コードベースやクローズドソースのアプリケーションで使用する前に、この問題が修正されることが非常に重要だと思います」と Nocera 氏は Issues の投稿で述べています。

shared-mime-info緊急にXMLファイルにGPLヘッダーを再度追加する必要があります。リリース版のtarballでは翻訳をマージするツールによってヘッダーが削除されていますが、.in同じファイルのバージョンでは表示されています。

メンドラー氏はノセラ氏に情報提供に感謝し、最新バージョン0.4.0とバージョン0.3.6を速やかにGPLv2に移行し、Ruby開発者が利用するパッケージレジストリであるRubyGems.orgでの以前のバージョンの配布を停止した。その後、mimemagicGitHubリポジトリをアーカイブし、現在アクティブな開発は行われていないことを明らかにした。

多くの人が顔を手で覆う

そして、Amazon Web ServicesはElasticsearchとKibanaをフォークしました。Elasticさん、これも計画の一部だったのですか?

続きを読む

この結果、人気のウェブ開発フレームワークであるRuby on Rails(Ruby on Railsはmimemagic0.3.5を依存関係として含んでいます)が機能しなくなるという残念な結果となりました。また、172個の他のパッケージにも影響が及び、合計577,148個の異なるソフトウェアリポジトリに影響を及ぼすことになりました。

これらのプロジェクトのすべてが直ちに影響を受けるわけではありませんが、依存関係のキャッシュが実装されていない限り、RubyGems.org から削除されたバージョンの取得を試みるあらゆる種類のビルド プロセスはmimemagic失敗します。

GPLv2ライセンスのコードを組み込むソフトウェアプロジェクトはmimemagic、その影響を考慮する必要があります。場合によっては、GPLv2ライセンスは受け入れられない可能性があります。法的にも実務的にも実行可能であれば、ライブラリのバージョン0.3.6または0.4.0に切り替えることができますが、ある程度の手間はかかります。

英国政府のビジネス・エネルギー・産業戦略省が運営するウェブ アプリ、FileStack CMS 用の Ruby SDK、Rails ベースのタグ付け可能な画像アプリ Danbooru などのプロジェクトでは、2016 年の左パッド事件を彷彿とさせる状況に対する回避策を検討している。

mimemagicは主にMIMEタイプデータのマッピングデータベースであるため、Railsチームは2条項BSDライセンスlibmagicやMIMEデータのRuby翻訳など、代替案を検討しています。しかし、これを実現するには相当な作業量が必要です。

一方、Shopify アプリメーカー ASoft の創設者 Sergey Alekseev 氏は、mimemagic影響を受ける他のプロジェクトが選択肢を議論できる場を提供するために、リポジトリをアクティブなままにしておくよう Mendler 氏に依頼しました。

しかしメンドラー氏はこれに反対し、「Railsへの依存は確かに最も影響が大きい。Railsで動作し、Railsチームが承認したソリューションを見つけるのが最善だ」と述べた。

オープンソースライセンスコンサルタントのポール・バーグ氏は、The Register への電子メールで、これは困難な状況だが、関係する開発者らはうまく対処しているようだ、と語った。

「依存ライブラリのメンテナーは、mimemagicそのライブラリにGPLコードが含まれていることを発見したため、GPLライセンスに移行しました」と彼は述べた。「問題に気づいた時点で、沈黙を守り問題を放置するのではなく、すぐに対応した点は称賛に値します。」

「しかし、Railsにとっては大きな問題を引き起こします」とバーグ氏は述べた。「RailsはMITライセンスという寛容なライセンスの下で広く利用されています。多くのアプリケーションがGPLの下ではコピーレフトではないという前提でRailsを使って作成されているため、多くのアプリケーションがGPLの条項を念頭に置いて展開されていないため、GPLの条項に準拠していない可能性があります。」

その結果、RailsをGPLに再ライセンスしてコンプライアンスを確保することは、数千のチームにとって大きな変更となる可能性があり、現実的に持続可能な解決策とは言えません。残念ながら、他の解決策はおそらく簡単ではないでしょう。

バーグ氏は、mimemagicコードの一部をGPLに置き換え、MITライセンスを維持するという選択肢もあると述べた。また、mimemagic適切な代替手段が存在するという前提で、Railsを全面的に置き換えるという選択肢もあると述べた。

「いずれにせよ、Railsは人気の高さから業界にとって非常に重要な存在であり、この問題の解決には短期間で膨大な作業が必要になるだろう」と彼は述べた。「彼らの苦境を羨ましく思うことはない」

「これは、導入されるたびにすべての依存関係と再利用コードを列挙し、それらの依存関係のライセンスが意図と一致していることを確認することが非常に重要である理由を示しています。」®

追加更新

3月26日木曜日、mimemagicはv0.4.1に再度アップデートされ、MITライセンスが復活し、GPLで保護されていたコード(Freedesktop.org Shared Mime Typesデータベース)が削除されました。ユーザーは今後、このデータベースを自ら用意する必要があります。多くの方々のご意見を承りながら、バージョン0.3.6と4.0は廃止されました。

Discover More