同花顺-圈子

请广大用户注意风险,切勿加入站外群组或添加私人微信,如因此造成的任何损失,由您自己承担。
Ruby脱轨:代码库因许可证失误而被下架 50万个项目陷入混乱!
0人浏览 2021-03-26 22:18

  开发人员竞相寻找替换的mimetype数据包。

  周三,shared-mime-info软件库的维护者Bastien Nocera告知Ruby库mimemagic的维护者Daniel Mendler:他交付的mimemagic使用了不兼容的软件许可证,这个Ruby库采用了Nocera的代码。

  shared-mime-info库 是采用 GPLv2许可 证发布的 ,mimemagic被列为 是采用 MIT许可 证的 项目。

  Nocera在GitHub的问题单(Issues)版块上发帖写道: “ 使用GPL文件作为源 文件 会使 您的 整个代码库成为 衍生代码 ,使其全部 采用 GPL 许可证 ,因此,我认为在有人在纯MIT代码库或闭源应用程序中使用它之前 纠正这个问题很 重要 。 ”

  “您还 需要将GPL标头重新添加到shared-mime-info XML文件中 ,这件事很要紧 。 它已在版本打包文件中被用来 合并 转换 的工具剥离,但是 出现在同一文件的 .in版本 中 。 ”

  Mendler感谢Nocera告知他 此事 , 立即 将最新版本0.4.0和0.3.6 改用成 GPLv2,并从RubyGems.org(Ruby开发人员使用的软件包注册 中心 )上的发行版中撤 下 了 之前的 版本。 随后 他 将 mimemagic GitHub 代码 库 存档 ,这意味着它不再 被 积极开发。

  遗憾的 是, 此举 破坏了 大受欢迎的 Web开发框架Ruby on Rails, 该 框架包括mimemagic 0.3.5 这一 依赖项。 这 还影响了 另外 172个软件包, 这些软件包总共 涉及577148个不同的软件存储库。

  并非所有这些项目都立即受到影响, 不过 任何尝试 获取 从RubyGems.org 撤下的 mimemagic版本的构建过程都将失败 , 除非 此前已实施了 依赖项缓存 机制 。

  采用 mimemagic的软件项目现在必须考虑 采用 GPLv2许可 证 代码 所带来 的 影响 , 这在一 些情况下可能 无法接受 。 如果 这在 法律上和 现实 上 行得通 , 它们 可以切换到该库的0.3.6或0.4.0版本, 不过这得花番工夫 。

  这件事让人想到了2016年的左侧补齐(left-pad)事件,许多项目在 考虑 变通方法,比如 英国政府商业 、 能源和工业战略部运行的 一款 Web应用程序 ,面向 FileStack 内容管理系统( CMS ) 的Ruby SDK ,以及 基于Rails的可标记图像应用程序Danbooru 。

  由于mimemagic主要是mime类型数据映射数据库,因此Rails团队正在研究替换选项,包括 两 条款 (2-clause) BSD许可 证 的libmagic ,或 mime数据的Ruby转换。 但是 要完成这项任务并非易事。

  至于 其他所有人,Shopify应用程序 开发 商ASoft的创始人Sergey Alekseev要求Mendler保持 mimemagic代码库处于 活跃 状态,为 其他受影响的项目提供讨论选择 方案 的地方。

  但是Mendler不同意,他说: “Rails依赖 项 肯定是影响最大的依赖 项 。 最好是 我们可 以 找到一种适用于Rails ,又 受 到 Rails团队认可的解决方案。 ”

  开源许可顾问Paul Berg在电子邮件中告诉 IT外媒The Register,虽然 这是棘手的情 形 , 但 相关的开发人员似乎处理得很好。

  他说: “ 由于 相关 的 mimemagic库 的维护者发现它含 有 GPL代码, 于是改 用 了 GPL许可证。 一旦 注意到 问题, 他们 做出 了 反应, 这 令人钦佩 , 而不是对此保持沉默 ,任由 问题继续存在。 ”

  Berg 说: “不过 这确实对Rails造成了重大问题。 广泛使用的 Rails 采用 MIT许可证 ,这是一种宽松式 许可证。 由于 那么多的应用程序是 使用Rails 开发的,开发时认为那些 应用程序 不是采用 GPL 许可证的反版权(copyleft) ,因此 那些 应用程序 中相当多可能不会遵守 GPL 的 条款,因为 它们是在未考虑 到这些条款 的情况下部署的 。 ”

  “结果是,将Rails改而采用GPL许可证以符合要求对成千上万的团队来说可能是重大变化,其实不是切实可行的解决办法。遗憾的是,其他解决办法可能并不简单。”

  Berg表示,mimemagic可能试着替换代码中的GPL部分,保留其MIT许可证。他表示,另一种方法是Rails完全替换mimemagic,前提是要有合适的替代者。

  他说:“无论如何,鉴于Rails广受欢迎、因而对业界来说至关重要,因此在短时间内解决这个问题可能是艰巨的工作。我并不羡慕他们的困境。”

  “这表明了为什么只要所有依赖项和重用代码被引入时列举它们要慎重,竭力确保那些依赖项的许可与您的意图相吻合如此重要。”

  周四,mimemagic再次更新到了v0.4.1,该版本恢复了MIT许可证,并删除了采用GPL许可证的代码——theFreedesktop.org Shared Mime Types数据库。用户现在必须自行提供。版本0.3.6和4.0已被撤下,许多人颇感沮丧。(On Thursday, mimemagic was updated again to v0.4.1, which restored the MIT license and removed the GPL covered code – theFreedesktop.org Shared Mime Types database. Users must now provide that themselves. Versions 0.3.6 and 4.0 have been yanked, to the dismay of many.)

更多
· 推荐阅读
0
1
扫码下载股市教练,随时随地查看更多精彩文章
  • TOP
本文纯属作者个人观点,仅供您参考、交流,不构成投资建议!
请勿相信任何个人或机构的推广信息,否则风险自负