世界上的开源许可证大概有上百种,我们在开发的过程中也会遇到很多种开源协议,开发和软件离不开协议。开源并不等于免费,今天我们就来聊一聊常用的开源协议。

最常用的六个开源协议

世界上的开源许可证大概有上百种,但是很少有人能搞得清楚它们的区别,我们也很难投入大量的时间和精力去依次研究。即使我们在当下最流行的六种开源协议(GPL、BSD、MIT、Mozilla、Apache、LGPL等)之中做选择,也比较复杂和麻烦的,可以在 choosealicense.com 查看。

这张图能够比较简单的认识和区分这些开源协议:

简易区分开源协议图

我们可以看到,GPL 和 Apache 是比较强的许可证,而 MIT 则是最弱的许可证。

你的项目很可能有(或将有)依赖项。例如,如果你正在开源一个 Node.js 项目,你可能会使用来自 Node Package Manager (npm) 的库。你所依赖的每个库都将拥有自己的开源许可证。如果他们的每个许可证都是“许可的”(授予公众使用、修改和共享的权限,对下游许可没有任何条件),您可以使用任何您想要的许可证。常见的许可许可证包括 MIT、Apache 2.0、ISC 和 BSD。

另一方面,如果您的任何依赖项的许可证是 “strong copyleft”(也授予公共相同的权限,受下游使用相同许可证的条件限制),那么您的项目将必须使用相同的许可证。常见的强 Copyleft 许可证包括 GPLv2、GPLv3 和 AGPLv3。

简单来说就是:

  • 如果你希望你的项目被其他项目用作依赖项?最好使用相关社区中最流行的许可证,如,MIT 许可证。
  • 如果你希望你的项目吸引大型企业?大型企业可能需要所有贡献者的明确专利许可。在这种情况下,使用 Apache 2.0 许可证。
  • 如果你想让你的项目吸引那些不希望他们的贡献被用于封闭源软件的贡献者? 就是使用 GPLv3(如果他们也不希望为闭源服务做出贡献)或 AGPLv3 许可证。

这里,我只着重介绍以下 GPL 协议。

我推荐GPL开源协议

我还是推荐绝大多数的开发者无脑选择 GPL 开源协议。

最近不是出来了一个热点问题,faker.js 开源作者删除了所有的代码,其中最主要的原因是他使用了 MIT 协议,这种协议无法为他带来任何的效益和获利。自己辛辛苦苦十多年不断维护着这个开源项目,不仅很多的开发者在使用它,而且很多的科技巨头也同样在使用它,拥有上万 Star,上亿次的下载使用。然而当他自己急需用钱的时候,MIT 却什么都无法给他。作者虽然也收获了不少好心开发者的捐款,但是杯水车薪,最终还是做出了删库的决定。

当年对于开源协议,很多人都对 GPL 各种不满,因为 GPL 恰好限制到他们自己了。然后鼓吹 MIT 那种白嫖型协议。要知道 GPL 是开源届相对少有的,请专业律师咨询后写出来的发布协议。真正能够督促使用开源的一方与开源作者互惠互利的协议。

Marak 删库后的 Github repo

What really happened with Aaron Swartz?

Marak, the Author of faker.js

Marak 在删库的时候,Commit 了上面那句话。这个 Aaron Swartz 是谁呢?

来自维基百科的 Aaron Swartz 照片

Aaron 也曾是一个大帅哥,也是一个水平极高的开发者,但是已经过世了。维基百科是这么说的:

亚伦·希勒尔·斯沃茨(1986年11月8日-2013年1月11日)是美国电脑程序员、企业家、作家、政治活动者和互联网黑客主义者。他参与开发了 RSS 消息来源发布格式、Markdown 文本发布格式、知识共享组织、web.py网站开发框架,同时是社交媒体 Reddit 的联合创始人 —— 在他的 Infogami 和亚历克西斯·瓦尼安及斯蒂文·霍夫曼的公司合并为 Not a Bug 的时候,由 Y Combinator 创始人保罗·格雷厄姆授予他创始人头衔。他的工作成果也集中在公民意识与行动:2009年,他协助成立了渐进社会变革活动委员会,期以了解有效的互联网运动。2010年,他成为哈佛大学埃德蒙·萨夫拉伦理研究中心的学者,在劳伦斯·莱斯格的领导下进行研究。他曾成立在线群组求进会——因反对禁止网络盗版法案的运动而闻名。

2011年1月6日,他被麻省理工学院警署以其违反州法非法闯入的罪名逮捕:他把一台电脑连接上麻省理工学院校园网络,放在了一个没有标记、没有上锁的柜子里;透过学院给予的访客账户,大规模系统性地下载 JSTOR 上的学术期刊。联邦检察官随后对他提起两项网络诈骗和十一项违反《电脑欺诈和滥用法》行为的诉讼 —— 亚伦·斯沃茨将面临合计最高35年的刑期并处100万美元罚金、没收财产、归还失窃物品和监视居住的处罚。他拒绝了联邦检察官提议其在联邦监狱服刑6个月的认罪协商,两天后,他被发现死在其于纽约布鲁克林区的公寓内,自缢而死。

如何评价 Aaron Swartz 和 Marak,我相信大家心中早已有答案了。我们反对的不是开源,不是 MIT 协议,而是当今世界以资本为核心的世界体系不利于开源世界的建设。

MIT 协议虽然能带来极度开放的繁荣,但也会吸引来贪婪的资本和科技巨头,我们所建造的开源世界,如果使用 MIT 协议,那么最终都会成为资本的“嫁衣”。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Next Post

ImageMagick的一些用处

周一 4 月 11 , 2022
我们有时候需要批量转换一些照片的格式,或者打包一些 […]

更多文章