开源协议是为了保护软件的开发者和使用者的权益
本文章我们尝试对一些常见的开源协议的内容进行梳理整合
GPLv3
GNU GPLv3
GPLv3 is viral, so it infects any replicating [modified] code with the license, such that the sources for said modifications, if any, must be available.
TL; DR ver. 1. Anyone can copy, modify and distribute this software. 2. You have to include the license and copyright notice with each and every distribution. 3. You can use this software privately. 4. You can use this software for commercial purposes. 5. If you dare build your business solely from this code, you risk open-sourcing the whole code base. 6. If you modify it, you have to indicate changes made to the code. 7. Any modifications of this code base MUST be distributed with the same license, GPLv3. 8. This software is provided without warranty. 9. The software author or license can not be held liable for any damages inflicted by the software.
AGPLv3
GNU AGPLv3
这个协议的存在是为了弥补 GPL 协议存在的
AGPL is like the GPL, but the GPL is only triggered if you distribute your derivative work. AGPL broadens this trigger to activate if you let people use your derivative work over a network.
LGPLv3
GNU LGPLv3
LGPL 是主要为类库
但是
Apache License 2.0
这个协议被 Android App 广泛使用
简而言之
BSD License
BSD 开源协议的使用需要满足以下条件
- 如果再分发的产品中包含源代码
则必须带有同一份 BSD 协议, 。 - 如果再分发的只是二进制类库/可执行文件
则需要在文档 / 版权声明中包含同一份 BSD 协议, 。 - 不可以用开源代码的作者 / 机构名字和原来产品的名字做市场推广
。
在满足上述条件的基础上
MIT License
MIT License 相对 BSD License 更宽松
- 如果再分发的产品中包含源代码
则必须带有同一份 MIT 协议, 。 - 如果再分发的只是二进制类库/可执行文件
则需要在文档 / 版权声明中包含同一份 MIT 协议, 。
Mozilla Public License 2.0
注意这里
此外