1. BSD开源协议
1. 以BSD协议的代码做二次开发须满足的条件:
- 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议
- 如果再发布的只是二进制类库/软件,则需要在类库的文档和版权声明中包含原来代码中的BSD协议
- 不可以用开源代码作者/机构名字和原来产品做市场推广
2. 总结
BSD协议的开源代码可以随便用(可商用), 也可以修改使用BSD协议的代码,只要加个所用代码的协议声明就行
3. 衍生
1. BSD 2-Clause “Simplified” License
修改版本必须保持原始版权声明
2. BSD 3-Clause “New” or “Revised” License
修改版本必须保持其原始版权声明。 未经许可不得使用原作者或公司的名字作宣传
2. Apache
目前版本为Apache-2.0
1. 使用Apache协议的代码需满足条件
- 该软件及其衍生品必须继续使用Apache许可协议
- 如果修改了程序源代码,需要在文档中进行说明
- 若软件是基于他人的源代码编写而成的,需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息
- 如果再发布的软件中有声明文件,则需在文件中标注Apache许可协议及其他许可协议
2. 总结
可商用,修改处需要表明,必须保持原始版权声明
3. MIT
1. 使用MIT协议需要做到:
- 被授权人有权利使用、复制、修改、合并、出版发行、散步、再授权以及贩卖软件及软件副本
- 被授权人可根据需要修改授权条款为适当内容
- 在软件和软件的所有副本中都必须包含版权声明和许可声明
2. 总结
可商用、可修改,保持版权声明即可
4. GPL
目前版本: GPL-3.0
Linux使用的就是GPL协议
包含了GPL许可协议的产品或者代码,必须开源免费,不能闭源收费。不适合商业软件
特点 | 说明 |
---|---|
复制自由 | 允许把软件复制到任何人的电脑中,并且不限制复制的数量。 |
传播自由 | 允许软件以各种形式进行传播。 |
收费传播 | 允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。 |
修改自由 | 允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可协议授权。 |
5. LGPL
LGPL是GPL的一个主要为类库设计的开源协议
LGPL与GPL不同之处在于, LGPL允许商用软件通过类库引用(link)的方式使用LGPL类库而不需要开源商业软件的代码。
但是如果修改LGPL协议的代码或其衍生,则所有修改的代码也必须使用LGPL协议。LGPL协议的开源代码很适合作为第三方类库被商业软件引用。
6. MPL(Mozilla Public License 1.1)
MPL协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,他要求基于这种软件的修改无偿贡献版权给该软件。
但是MPL是允许修改、无偿使用的。MPL软件对链接库没有要求。
7. EPL(Eclipse Public License 1.0)
EPL允许Recipients任意使用、复制、分发、传播、展示、修改以及改后闭源的二次商业发布。
使用EPL协议需要遵循的原则:
- 当一个Contributors将源码的整体或部分再次开源发布的时候,必须继续遵循EPL开源协议来发布,而不能改用其他协议发布.除非你得到了原"源码"Owner 的授权;
- EPL协议下, 你可以将源码不做任何修改来商业发布,但如果你要发布修改后的源码、或者发布的目标代码,必须声明他的源代码是可以获取的,并且告知源码获取方式
- 当你需要将EPL下的源码作为一部分跟其他私有的源码混和着成为一个Project发布的时候,你可以将整个Project/Product以私人的协议发布,但要声明哪一部分代码是EPL下的,而且声明那部分代码继续遵循EPL