开源许可
五种开源协议 (GPL,LGPL,BSD,MIT,Apache)
GPL
1、GPL 是 GNU General Public License(GNU 通用公共许可证)的缩写形式,被称为自由软件
2、基于GPL 的软件开源,不允许封闭源代码
3、使用GPL软件,那么必须你的软件也要开源,如果你不开源,那么就不能使用GPL软件,即使付再多的钱也不能用GPL的软件
4、基于 GPL 的软件也允许收费。但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
5、只有基于开源软件,修改开源软件的源码的时候才受 GPL约束
LGPL
1、LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式 ,产品所保留的权利比 GPL 少
2、对遵循 LGPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承LGPL协议,不允许封闭源代码
3、程序对遵循 LGPL 的软件进行任何连接、调用而不是包含,则允许封闭源代码
BSD
1、BSD新三种开源协议(original BSD license、FreeBSD license、Original BSD license)
2、限制比别的开源协议(如 GNU GPL)要少
3、使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
- 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
- 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
- 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
4、BSD代码鼓励共享代码,但必须尊重代码作者的版权
MIT
1、MIT源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称X11协议
2、MIT 协议可能是五大开源协议中最宽松的一个,核心条款是:该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版 权和许可提示。
这意味着:
- 你可以自由使用,复制,修改,可以用于自己的项目。
- 可以免费分发或用来盈利。
- 唯一的限制是必须包含许可声明。
MIT 协议是所有开源许可中最宽松的一个,除了必须包含许可声明外,再无任何限制。
Apache
1、Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合。
2、该协议和 BSD 类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。需要满足的条件
- 需要给代码的用户一份Apache Licence
- 如果你修改了代码,需要再被修改的文件中说明。
- 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
- 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。