修復 mimemagic 庫中的 GPL 違規導致 Ruby on Rails 崩潰

下載量超過 100 億次的熱門 Ruby 庫 mimemagic 的作者,由於發現專案中存在違反 GPLv2 許可證的行為,被迫將其許可證從 MIT 更改為 GPLv2。 RubyGems 僅保留了 0.3.6 和 0.4.0 版本,它們是在 GPL 下發布的,並刪除了所有舊的 MIT 許可版本。 而且,mimemagic的開發被停止,GitHub上的儲存庫被轉移到存檔狀態。

這些操作使得能夠建立使用 mimemagic 作為依賴項並在與 GPLv2 不相容的許可證下分發的項目。 當使用新版本的 mimemagic 時,其他專案(包括專有專案(MIT 授權允許此類使用))的開發人員需要根據 GPL 重新授權其程式碼。 RubyGems.org 不再提供 MIT 許可證下的舊版本,這一事實使問題變得更加嚴重。 如果建置伺服器上未啟用套件緩存,則嘗試使用先前版本的 mimemagic 建置專案將會失敗。

在其依賴項中載入 mimemagic 的 Ruby on Rails 框架也受到了影響。 Ruby on Rails 根據 MIT 許可證獲得許可,不能包含 GPL 元件。 這個問題本質上已經成為全球性的 - 如果更改直接影響 172 個軟體包,那麼考慮到依賴性,超過 577 個儲存庫受到影響。

mimemagic 專案中違反 GPL 授權的行為與程式碼中 freedesktop.org.xml 檔案的交付有關,該檔案是來自共享 mime-info 庫的 MIME 類型資料庫的副本。 指定的文件在 GPLv2 許可證下分發,並且共享 mime-info 庫本身在 ISC 許可證下獲得許可,與 GPL 相容。 mimemagic 的原始程式碼根據 MIT 授權分發,根據 GPLv2 授權分發元件需要根據 GPLv2 相容授權分發衍生性商品。 Shared-mime-info 的維護者提請注意這一點,並且 mimemagic 的作者同意更改許可證的要求。

解決方案是動態解析 XML 文件,而不提供 freedesktop.org.xml 作為庫的一部分,但 mimemagic 維護者已經凍結了專案儲存庫,因此其他人必須快速完成這項工作。 如果 mimemagic 的作者不想讓他的專案恢復運行(到目前為止他已經拒絕),則有必要創建 mimemagic 的分支並替換所有相關專案中的依賴項。 基於 mimemagic 的專案向 libmagic 庫的過渡也被視為一種選擇。

來源: opennet.ru

添加評論