引用:
开源许可协议的由来
自由软件/开源软件是自由的,免费的,源代码开放的,我们可自由下载安装和使用。
同时,为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,
影响软件的发展,开源社区开发出了各种的开源许可协议。
人们不太容易区分一个软件是否真正开源的根本原因,在于开源研究院认可的许可有60多种。
但在这60多种许可中,有一个许可明显主宰着开源世界。
迪博纳说:“GPL(General Public License,通用性公开许可协议)是当今开源世界中最重要的许可。”
根据迪博纳引述的Google所进行的研究,基于GPL的开源代码在所有开源软件中占45%---50%。
常见的开源协议:
GPL (General Public Licence)
GPL是由Richard Matthrew Stallman为GNU计划而编写的,
GPL与其他自由软件许可证相比,主要区别就在于GPL寻求确保上述自由能在复制件及衍生产品中得到保障。
它通过由Stallman发明的叫copyleft的法律机制实现,即要求GPL程序的衍生产品也要在GPL之下.
COPYLEFT 条款:
GPL不会授予许可证接受人无限的权利。再发行权的授予需要许可证接受人开放软件的源代码,
及所有修改。且复制件、修改版本,都必须以GPL为许可证,这些要求就是copyleft
GPL授予程序接受人以下权利:
1.以任何目的运行此程序
2. 再发行复制
3. 改进此程序,并公开发布改进
GPL的两个显著特点:
1. 只要在一个软件中使用具有GPL协议的产品,则该软件必须也得采用GPL协议,而微软的首席执行官史蒂夫·鲍尔默称Linux为“×××”因为GPL具有"传染"性
2. 不允许闭源商业发布,redhat在转向rhel开发后不再提供二进制代码下载,但源码还是公开的。
LGPL (Lesser General Public Licence)
LGPL主要使用之目标为软件库(Software Libraries),虽然其亦可使用于独立存在的应用程序。比较有名的例子为Mozilla跟OpenOffice.Org,比GPL较为宽松,
LGPL于GPL的差异:
1. LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码
2. 如果修改了LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。
BSD (Berkly Software Distribution)
BSD许可证原先是用在加州大学柏克利分校发表的各个4.4BSD/4.4BSD-Lite版本上面的,后来也就逐渐沿用下来,
1979年加州大学伯克利分校发布了BSD Unix,被称为开放源代码的先驱,BSD许可证就是随着BSD Unix发展起来的。
BSD许可证被Apache和BSD操作系统等开源软件所采纳。
BSD的特点:
1. 如果在发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果在发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
MIT (Massachusetts Institute of Technology, MIT)
MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其它的限制。
也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。
MIT协议又称麻省理工学院许可证,最初由麻省理工学院开发。
MIT特点:
1. 被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。
2. 被授权人可根据程式的需要修改授权条款为适当的内容。被授权人义务:在软件和软件的所有副本中都必须包含版权声明和许可声明。
AL2.0 (Apache Licence)
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,
同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布
AL2.0特点:
1. 一旦被授权,永久拥有
2. 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
3. 前期,后期均无任何费用。
4. 任何人都可以获得授权
5. 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。