你对开源有多少了解呢?如果你是软件开发者,要开源软件,不单单是开放源代码就可以了,选择一种许可证很重要,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性。一个错误的许可证选择可能会直接导致整个项目的失 败,XFree86就是一个好例子。
各种开源的许可证主要的限制还是在redistribution(发布),所以个人/商业公司开发的软件包含了GPL的代码,只要你不发布,是可以任意使用的。
下面是几个开源许可证的区别:
GPL
这里不想再解释长篇的GPL译文
和更长的FAQ
。
简单说,GPL软件的使用者有权力得到软件的代码,只要使用了GPL,在发布(redistribution)的时候,整个项目也必须是GPL的,即主程
序和静态链接的库(Linux的.a和Windows的.lib)必须是GPL的,动态链接库(Linux的.so,Windows的.dll)必须是比
GPL兼容的。所谓GPL兼容,也就是GPL软件中可以使用的库,这些许可证必须比GPL弱(如LGPL,BSD),而不能是某个商业许可证。这里有一个
兼容列表 List of FSF approved software licenses
。正因如此,GPL是带有很强的传染性,只要你的软件使用了GPL的代码,那么就请以GPL开放源代码吧,并且你的项目中也不能有任何和GPL不兼容的库。
LGPL
GPL
带有很强的传染性,那么如果一个库使用GPL发布,那么使用这个库的所有软件也必须使用GPL发布,这对不想开放源代码的商业软件来讲是致命的打击——你
可以不使用其他的库,但最基本的libc是无论如何绕不开的,如果libc是以GPL发布,就相当于所有软件必须以GPL发布了。所
以,LGPL(Lesser
GPL)诞生了。LGPL定义为,在以LGPL发布的库的基础上开发新的库的时候,新的库必须以LGPL发布,但是如果仅仅是动态链接,那么则不受任何限
制。这样商业软件就可以随意的使用LGPL的库了。因此,LGPL也具有传染性,但限制在在其基础上开发的库上,而并不限制使用它的程序本身——它的传染
性远小于GPL。
BSD、Apache 2.0
相对GPL/LGPL的开放源代
码,BSD,Apache 2.0就宽松许多——商业软件可以任意的使用BSD,Apache
2.0发布的软件代码,而不需要开放源代码,只需要提及代码的原出处就可以了。BSD和Apache
2.0提及的方式稍有不同,具体可以参考协议的详细内容。它们是GPL兼容的
看看下面选择开源许可证的案例:
Android 使用宽松的Apache
2.0发布,因为Google作为一个商业公司,并不想失去商业软件的支持,它希望团结一切可以团结的力量加入的Android的开发中来,壮大自己的阵
营,使用Apache
2.0就无可厚非了。而Google本身,并没有丧失对Android的控制权,不会担心另外一个公司拿走了Android的代码开发出一个闭源
Android的对手。因为,只要Android不断的出新版,社区不停的跟进,并且不停的修改API,其他基于Android开发的公司不得不把自己的
Patch提回到主干上,否则,必然将耗费大量人力物力在维护自己的Patch上(钱这方面你斗得过Google?),得不偿失。而且,闭源之后,与整个
社区为敌,作为一个定位软件平台的项目,会流失大量应用软件开发者,以小博大,任何一个商业公司都不会干这种胜算不高的蠢事。
在看以
GPL发布的Linux为什么比以BSD发布的FreeBSD成功。其实正是因为GPL的传染性。当一个开发人员在Linux基础上开发一个新功能之后,
不得不以GPL开放源代码,贡献回Linux,这样Linux本身才能越来也越壮大而且留住了相当的开发人员,形成了一个
优秀软件->很多使用者和贡献者->贡献->更优秀的软件->更多的使用者和贡献者... 的良性循环。
分享到:
相关推荐
重要开源协议的比较(BSD,Apache,GPL,LGPL,MIT) 除了大家比较熟悉的GPL协议之外,开源界还有很多许可证,如LGPL许可证、BSD许可证等,下面就来一一介绍。
开源协议比较(BSD,Apache,GPL,LGPL,MIT)
本文是对五种开源协议(GPL,LGPL,BSD,MIT,Apache)的介绍
五种常见软件开源协议介绍-GPL、LGPL、BSD、Apache、MIT.pdf
2、如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议 3、不可以用开源代码的作者/机构名字和原来产品的名字做市场
五种开源协议的比较(BSD,APACHE,GPL,LGPL,MIT)–整理
五种开源协议的比较(BSD,APACHE,GPL,LGPL,MIT)–整理Comparison of five open source license (BSD, APACHE, GPL, LGPL, MIT)- finishing
收集了5大常用开源协议内容文本(LGPL GPL MIT Apache2.0 BSD等协议)。便于想从事开源人员参考。附加赠送各开源协议直接的比较。
工作中要用andriod系统,领导问到他的开源风险,所以总结一下常见的开源授权许可协议,GPL,LGPL,APACHE,BSD
BSD开源协议 Apache Licence 2.0 GPL LGPL MIT 五种开源协议比较
五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) 当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!
0.开发人员必知的5种开源协议(BSD,Apache,GPL,LGPL,MIT): BSD:可二次开发可商用,公司首选 Apache:可二次开发可商用,要标原代码注著作权 GPL:可二次开发可商用,不允许修改后和衍生的代码做为闭源的商业软件发布和...
hd44780 根据 GNU 通用公共许可证 v3.0 的条款获得许可,而不是 GNU 宽松通用公共许可证 (LGPL)、MIT、修改后的 BSD、Apache 等更自由的许可条款。 GPL 许可信息可以在这里找到: : 有关 hd44780 库及其组件许可的...
公共许可证(弱)许可:BSD、MIT、XFree86、Apache 人们 Richard Stallman Linus Torvalds Bruce Perens Eric Raymond Michael Tiemann Mark Shuttleworth 开源软件是什么时候开始的? 最初,所有软件都是“开源的”...
3是Apache许可证。 MUMPS(通过ipopt) 伊波特 Swig Matlab通过 完整的casadi安装 OpenOCL中的软件: 卡萨迪,LGPL 3 casadi中包含软件吗? ipopt版本3.12,Eclipse Public License-v 1.0,几个 具有类路径异常的...
3是Apache许可证。 MUMPS(通过ipopt) 伊波特 Swig Matlab通过 完整的casadi安装 OpenOCL中的软件: 卡萨迪,LGPL 3 casadi中包含软件吗? ipopt版本3.12,Eclipse Public License-v 1.0,几个 具有类路径异常的...