如何选择开源许可证?

软件许可协议

已经写好的代码是具有版权的;你拥有你写过的代码。当然,像print(‘Hello World!’); 最简单的代码,完全可以独立的重写,不用知道原始的作者是谁,所有的合伙人都会拥有他们版本的版权(尽管可能毫无价值)。但是随着行数的增多,代码变得有价值起来,以某种许可协议发布它变得重要。

其他的智力财产法律,比如说专利,用来保护软件。软件专利权在US是个很激烈的争论话题,US认为软件专利是自然而然的。在其他的国家,比如说UK和新西兰,软件不可以被专利的。而版权是正确的时候,专利必须被赋予。

软件许可协议包含了代码的使用。如果你使用了第三方的库或者开源项目中的元素,你的使用必须遵守相关的协议。

开发许可协议通常包含了以下几点:

作品以及所做的修改发布的方式
所有修改过的作品是否要开源
重发布时的版权问题以及其他事项
软件许可协议可以被定义为:”宽容的”或者”copyleft“,而后者移除了在重新发布的作品之上再加限制的权利。

下面是一些常见的软件许可协议和他们的方式.

MIT 许可协议
MIT许可协议或许是最为开放的。它通常将作品放在公共领域。它明确地给出了权限,”没有限制,不限制使用,复制,修改,合并,子许可协议,卖软件的拷贝”。唯一的条件是包含全部的版权信息(即说明不做任何保证和可靠性)。以MIT协议发布的所有作品可以用于任何目的,包含商业和专有软件。

BSD 许可协议
BSD许可协议和MIT协议比较类似。
最初的版本,于1990年发布,有4个条文,最后的”广告条款”指出,所有衍生作品的宣传材料必须提到原始来源。这个最后在”New BSD“或者”Modified BSD“中移除。

新的三个clause BSD许可协议与MIT许可协议不同的地方是一个条款-原版权拥有人的名称不能被用于支持任何未经原版权所有人允许的衍生作品。这消除了任何有关使用人或组织的名称的疑问。是否需要此条文是有争议的,因为版权和商标法是两回事。即使MIT许可协议并没有声明这一点,我们也不能假设拥有原版权所有人的支持。

还有2个条款”FreeBSD“或”简化BSD“许可协议存在着,其中省略了上述条款,而是包括一个声明,撇清原有版权拥有人对衍生工作所作的任何看法。这可以看作是明确表示不公开支持。

MIT 和 BSD 许可协议给于我们了完全的自由来以任意目的来复制,散发修改作品,前提是原有许可协议和版权注明都包括了。衍生的作品可以以专有软件或者以其他许可协议发布。

Apache许可协议

从BSD的身影上我们看到表述一个许可协议是一件多么困难的事情。这里面有许多含糊之处和与法律的连结,要完全阐明是几乎不可能的。许多”自由”许可协议已经涌现,力图将这样的意图阐述清楚。

Apache License 是一份自由软件许可协议,其并不要求衍生作品采用同样地许可协议。这意味着此协议下的代码可以用于开源,自由和专有软件(就像MIT和BSD协议)。

它规定,在此协议控制的文件中,所有的原始版权信息,归属信息和商标通知都必须保留。此外,如果有任何更改,需要包含变更通知。还必须保存已经存在变更通知。这些通知必须保存在一份文本文件和源代码或者文档中。 保留变更通知让Apache许可协议不同于MIT和BSD许可协议。它也包含了许多法律条款和条件(有很多目的)来溶解原版权拥有人的责任

Apache 许可协议v2可以说是GPL兼容的,意味着一个Apache v2发布的代码工程同样以GPL v3许可协议发布。

GPL许可协议

第一版由Richard Stallman于1989年完成,现在GPL是2007年完成的第三版,即GPLv3,。它建立于我们应该自由地使用,改变,分享源代码和分享对源代码做出的改变。不管软件是如何发布的,它总是自由的。这个概念被称之为”copyleft“。

GPL的基本原则决定了,其不同于MIT,BSD,Apache许可协议,在GPL协议下产生的作品必须同样以GPL协议发布,GPL的代码可以销售,但是专利软件不可以从中衍生。如果你要发布任何重新修正过的作品,你的源代码必须以相同的协议公布出来。自然而然的,一个作品一旦以GPL协议发布,它将一直保持GPL,不会再有更多的限制。

GPL的第三个版本特意指出,以GPL支持的代码可以用来实现数字版权管理 (DRM),但并不算作有效的保护,数字版权法无法追究那些破坏DRM的人的责任。

世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种—-GPL、BSD、MIT、Mozilla、Apache和LGPL—-之中做选择,也很复杂。下面是从阮一峰博客上找到的如何选择自由软件许可。

https://blog.csdn.net/a343315623/article/details/51436769

http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html