ウェブアプリ作成用の Ruby ベースのフレームワークである Rails のメンテナーは、先週表面化したソフトウェアライセンスの競合を解決するために 3 つの新しいバージョンをリリースしました。
Railsコンポーネント「Active Storage」には、「」という依存関係が含まれていましたがmimemagic
、これが誤ったライセンスで配布されていたことが判明しました。このmimemagic
ソフトウェアライブラリは、ファイル形式の識別に使用されるMIMEタイプデータを含むRailsコンポーネント「Active Storage」を提供していましたが、当初はMITライセンスで配布されていました。
しかし、 GPLv2ライセンスで配布されているmimemagic
という依存関係がありますshared-mime-info
。GPLv2ライセンスの条件では、mimemagic
これもGPLv2ライセンスであるべきでした。
作者はmimemagic
エラーを知ると、以前の MIT ライセンスのバージョンのコードを撤回し、多くのアプリのビルド プロセスを中断し、GPLv2 の下で新しいバージョンを発行しました。
RubyがRailsから撤退:ライセンス違反でコードライブラリが削除され、50万のプロジェクトに混乱を引き起こす
続きを読む
これは、RailsやMITライセンスを優先または要求する他のプロジェクトにとって満足のいくものではありませんでした。なぜなら、GPLのソースコードを組み込んだ独自のコードを同じライセンスでリリースしなければならないという義務を負いたくないからです。こうして、172個の他のパッケージに組み込まれ、50万以上のソフトウェアリポジトリに存在するライブラリを置き換える方法を模索する2日間の作業が始まりました。
mimemagic
一部の開発者は、GPLv2ライセンスのデータを削除し、ソフトウェアを再びMITライセンスに準拠させたの改訂版を作成しました。しかし、Railsチームは最終的にmimemagic
という別のライブラリを導入することを決定しましたMarcel
。
mimemagic
金曜日の遅くに、依存関係を 1.0.0 に置き換える Active Storage サービスの改訂バージョンとともに、Rails 5.2.5、6.0.3.6、6.1.3.1 が投稿されましたMarcel
。
Marcel
「 Railsと同様にMITライセンスの下で配布されている1.0.0より前のバージョンは、互換性のないGNU一般公衆利用許諾書の下でリリースされたMIMEタイプデータに間接的に依存していました」と、Railsの開発元であるBasecampの開発者、ジョージ・クラグホーン氏は、リリースを発表するブログ記事で説明しています。「 Marcel
1.0.0では、Apache Tikaから適応されたMIMEタイプデータを直接パッケージ化し、許容度が高く互換性のあるApacheライセンス2.0の下でリリースされています。」
これを実現するには、少しの作業が必要でした。Marcel
は、本質的には のラッパーであるためmimemagic
、MIT ライセンスの下に配置するために、その一部を適応させる必要がありました。Marcel
の MIME 署名データ テーブル (マジック ナンバー署名として知られています) は、現在 Apache Tika から取得されているため、GPLv2 の影響を受けません。®