Ruby大“翻车”:代码库因许可证失误被下架,致50 万个项目陷入混乱

Ruby大“翻车”:代码库因许可证失误被下架,致50 万个项目陷入混乱
2021年04月11日 13:30 AI前线

3 月 31 日,软件库 shared-mime-info 的维护者 Bastien Nocera 通知了 Ruby 库 - mimemagic 的维护者 Daniel Mendler,该库包含了 Nocera 的代码,而它使用了一种不兼容的软件许可来发布 mimemagic。

shared-mime-info 库已经在 GPLv2 下获得许可,而 mimemagic 被列为 MIT 许可项目。

“使用一个 GPL 文件作为源文件,会让你的整个代码库成为一个衍生作品,使其全部成为 GPL,因此,我认为在有人将它用于纯 MIT 代码库或闭源应用之前,先解决这个问题,非常重要。”Nocera 在一个 Issues 帖子 中写道。

“现在迫切需要把 GPL 头重新添加到 shared-mime-info XML 文件。这是 tarball 发行版中用于合并转换的工具的一部分,但是在同一文件的 .in 版本中可见。”

Mendler 感谢 Nocera 的通知,并立即将最新版本 0.4.0 和 0.3.6移至 GPLv2 下,同时撤销了之前发布在 RubyGems.org 上的版本,rubygems 是 Ruby 开发者所用的软件包注册表。然后他将 mimemagic 的 GitHub repo 存档,这意味着它不再被积极地开发了。

遗憾的是,这一举动 破坏 了 Ruby on Rails 这个流行的 Web 开发框架,它包含了 mimemagic 0.3.5 作为依赖项。这也 影响 了其他 172 个软件包,其中包含了 577148 个不同的软件库。

并不是所有这些项目都会立即受到影响,但是,如果不实现依赖性缓存,任何从 RubyGems.org 获取已撤回版本的 mimemagic 的构建过程都将失败。

包含 mimemagic 的软件项目现在必须考虑包含 GPLv2 许可代码的影响,在某些情况下这可能是不能接受的。假如这样做在法律上和实践上可行,他们可以切换到 0.3.6 或 0.4.0 版本的库。

诸如由英国政府商业、能源和工业战略部运营的 Web 应用、FileStack CMS 的 Ruby SDK、基于 Rails 的可标记图片应用 Danbooru 等项目,都在考虑如何解决这一问题,这让人想起了 2016 年的 Left-Pad 事件。

因为 mimemagic 主要是 一个 mime 类型数据映射的数据库,所以 Rails 团队正在考虑 其他选择,包括 2-clause BSD 授权的 libmagic 或 mime 数据的 Ruby 转换。但是,要达到这个目标,还有很多事情要做。

至于其他人,Shopify 应用制造商 ASoft 的创始人 Sergey Alekseev 要求 Mendler保持 mimemagic repo 的活动状态,这样其他受影响的项目就可以在这里讨论它们的选择。

但是 Mendler 并 不同意,他说:“Rails 的依赖关系无疑是影响最大的。要是我们能找到一个适合 Rails 的解决方案,并得到 Rails 团队的认可,那就更好了。”

开源许可顾问 Paul Berg 在一封电子邮件中对 The Register 表示,尽管目前形势艰难,但是似乎相关开发人员已经做好了准备。

“因为依赖的 mimemagic 库的维护者发现它包含 GPL 代码,他们就转而采用了 GPL 许可。”他说,“令人钦佩的是,一旦发现问题,他们就会做出反应,而不是对此保持沉默,让问题继续存在下去。”

“然而,这确实给 Rails 带来了一个重大问题,”Berg 说。“Rails 广泛用于 MIT 许可下的应用,MIT 许可是一种允许性许可。因为很多应用程序是使用 Rails 编写的,假定这些应用程序不受 GPL 版权保护,所以很有可能其中很多应用程序不符合 GPL 条款,因为它们在部署时没有考虑到这些条款。”

“所以,将 Rails 重新许可给 GPL,使 Rails 符合要求,这对成千上万的团队来说,很可能是一个巨大的变化,实际上不是一个可行的解决方案。遗憾的是,其他解决方案很可能并不容易。”

Berg 表示,mimemagic 可以尝试替换 GPL 部分代码,并保留其 MIT 许可。他说,另一个选择是 Rails 完全取代 mimemagic,前提是存在合适的替代方案。

“不管怎样,由于 Rails 的普及,它在行业中的重要性不言而喻,解决这一问题在短期内可能不会是一件小事。”他说。“我并不羡慕他们的处境。”

“这就解释了当你引入所有的依赖性和重用代码时,为什么一定要认真地列出它们,并努力确保这些依赖性的许可与你的意图相一致。这一点非常重要。”

最新情况:4 月 1 日,mimemagic 更新到了 v0.4.1,恢复了 MIT 许可,并删除了 GPL 覆盖的代码:theFreedesktop.org 共享的 Mime Types 数据库。现在用户必须自己提供。0.3.6 和 4.0 版本已经废除,这让很多人感到很沮丧。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部