上周,一个名为 mimemagic 的 Ruby 库因许可证问题引发了包括 Ruby on Rails 在内的数十万个项目的混乱。
事情的起因是一个名 Bastien Nocera 的 shared-mime-info 的软件库维护者通知了 Ruby 库 mimemagic 的维护者 Daniel Mendler,该库包含了 Nocera 的代码,而 shared-mime-info 是在 GPLv2 许可证下授权的,mimemagic 是在 MIT 许可证下授权的,两者并不兼容。
Mendler 得知此事后向 Nocera 表示感谢,并立即将最新的 0.4.0 和 0.3.6 版本移到 GPLv2 下,将之前的版本从 Ruby 开发者使用的包注册表 RubyGems.org 上撤销了发布。随后他将 mimemagic 的 GitHub 仓库归档,这意味着它不再被积极开发。
然而不幸的是,网络开发框架 Ruby on Rails 由于依赖 mimemagic 0.3.5 而受到影响。此外,该事还影响了 172 个其他软件包,它们之间涉及 577148 个不同的软件仓库。这些项目不一定会立即受到影响,但当时任何试图从 RubyGems.org 获取已撤销版本的 mimemagic 的构建过程都会失败,除非已实现了依赖缓存。
随后,Ruby on Rails 讨论了诸多解决方案,包括使用替代产品,比如 2-clause BSD 授权的 libmagic 或实现一个 mime 数据库的 Ruby 版本,但这么做工作量很大;或者将 Ruby on Rails 由 MIT 迁移到 GPLv2,但这么做也会给其它项目带来巨大影响。
最后,mimemagic 于周四发布了更新 0.4.1,恢复了 MIT 许可,并删除了 GPL 覆盖的代码。作为替代的是,用户现在必须自己提供 mime 类型数据库。
本文地址:https://www.oschina.net/news/134862/mimemagic-liscense-problem