常用开源协议以及是否能够商用

License 大约 1985 字

MIT

Massachusetts Institute of Technology License

BSD

3-Clause包含3个条款,2-Clause只有两个(不带第3条)。

1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的``BSD协议; 2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档那个和版权声明中包含原来代码中的BSD协议; 3.不可以用开源代码的“作者/机构的名字”或“原来产品的名字”做市场推广:

BSD-2-Clause

BSD 2-Clause "Simplified" or "FreeBSD" license

BSD-3-Clause

BSD 3-Clause "New" or "Revised" license

Apache-2.0

Apache License, 2.0

GPL

GNU General Public License

可以商用,但分发软件时必须开放源代码。

举例

用户下载Android应用,这就是一个公司分发给用户的行为,则公司必须提供源代码。

如果公司后台Java服务部署在GPLLinux上,但由于提供给用户的是Java服务中的接口,并不是Linux,所以Java代码不用开源。

注意

如果你确实需要发布你的程序,但又不想开源,规避GPL的方法是通过RPC间接调用库里的接口。只要库和你的程序不运行在同一进程下,就不需要开源。

LGPL

GNU Library or "Lesser" General Public License

也被称为 GPL V2

允许商业软件通过类库引用(link)的方式使用LGPL类库,而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

AGPL

GPL协议还有一个非常大的“漏洞”,就是软件“发布” 才必须开源。也就是说,我的软件不发布,即使使用GPL也可以不用开源。随着以Google为代表的软件作为服务的互联网公司的兴起,它们的“不分发软件,为客户提供网络服务”的商业模式就不受GPL协议的约束。

GPL + 一条限制

如果使用AGPL许可的软件与用户通过网络进行交互,也需要提供源代码给用户,所有的修改也要给用户。

MongoDB2018.10.16前发布的版本就是用的AGPL协议。(虽然MongoDBAGPL,但其驱动都是Apache License,所以可以商用)

EPL

Eclipse Public License

无修改无需开源,修改部分要开源。

MPL

Mozilla Public License

无修改无需开源,修改部分要开源。修改后的代码版权归软件的发起者。

开源软件修改代码后

license.png

图片来源:https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

例子

更多开源协议

https://opensource.org/licenses/alphabetical

阅读 448 · 发布于 2021-05-28

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批