说到开源,大家都以为是免费 自由,其实非也。

每个开源的程序员追求都不一样,有的开发者只是想专心敲代码,并不会去约束别人对代码的使用范围,开源闭源都可以。有的人是希望开源之后得到更广泛的应用和分享以及改进,希望使用开源的人也可以坚持开源。

所以为了保证大家的热情,也就有了开源许可协议。这份协议就是规定使用开源项目的时候应该负什么样的权力和责任。

mimemagic的Ruby库因为包含了与其自身许可证不兼容的部分代码,导致包括Ruby on Rails在内的五十多万个项目受到影响。

开源协议并不兼容

shared-mime-info 软件库的维护者 Bastien Nocera 告知 mimemagic 库的维护者 Daniel Mendler:mimemagic 中包含了 shared-mime-info 的代码。不巧的是, mimemagic 库采用的是 MIT 许可证,而 shared-mime-info 遵循的是 GPLv2 许可证,两者并不兼容。

开源代码使用规定(因代码库许可协议不兼容)(1)

帖子大致内容是,使用GPL文件作为源代码会让你的整个代码库成为衍生代码,因为需要使用其全部采用GPL许可证,所以我认为有人在纯MIT代码库或者闭源应用程序中使用它之前,改正这个问题。

随机mimemagic发布的最新版本0.4.0和0.3.6从MIT转移至GPLv2,并表示了对Ruby开发者使用的饿软件包注册并撤回了之前的版本。

这件事情并没有就此结束,虽然mimemagic维护者的动作快,但还是引发一场混乱。

影响之大

Ruby on Rails都受到了影响。截止目前,这件事影响了175个软件包,涉及到了578404个不同的软件库存储,其中就包括Ruby on Rail。

开源代码使用规定(因代码库许可协议不兼容)(2)

目前Rails团队正在研究替换方案,不管是考虑采用2-clause BSD许可的libmagi 或者mime数据的Ruby转换,哪种方式实行起来都非常难。

引发热议

开源代码使用规定(因代码库许可协议不兼容)(3)

有的评论人说许可证很重要,但是对于普通用户只是想让事情正常运行。也有的人表示非常不喜欢GPL,准确的说是非常不喜欢那些对“衍生”的意思有不合理切笼统想法的人。

对于这件事,你怎么看呢?欢迎留言讨论battle~

,