本文最初发表于 The Register,经原作者 Thomas Claburn 授权,InfoQ 中文站翻译并分享。
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 版本已经废除,这让很多人感到很沮丧。
作者介绍:
Thomas Claburn,居住在旧金山湾区,负责 The Register 的软件开发、DevOps、计算机安全等栏目。
原文链接:
评论