常用开源协议以及是否能够商用
License About 1,985 wordsMIT
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
服务部署在GPL
的Linux
上,但由于提供给用户的是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
许可的软件与用户通过网络进行交互,也需要提供源代码给用户,所有的修改也要给用户。
MongoDB
在2018.10.16
前发布的版本就是用的AGPL
协议。(虽然MongoDB
是AGPL
,但其驱动都是Apache License
,所以可以商用)
EPL
Eclipse Public License
无修改无需开源,修改部分要开源。
MPL
Mozilla Public License
无修改无需开源,修改部分要开源。修改后的代码版权归软件的发起者。
开源软件修改代码后
图片来源:https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
例子
MIT
jQuery
:https://github.com/jquery/jqueryVue.js
:https://github.com/vuejs/vueAngular
:https://github.com/angular/angular
BSD-2-Clause
Nginx
:https://nginx.org/LICENSEOpenResty
:https://github.com/openresty/openresty
Apache-2.0
Spring Boot
:https://github.com/spring-projects/spring-bootArthas
:https://github.com/alibaba/arthasDocker
:https://github.com/moby/moby
GPL
OpenJDK
(GPL with the Classpath Exception
):https://openjdk.java.netMySQL
(GPL V2
):https://github.com/mysql/mysql-servernetdata
(GPL V3
):https://github.com/netdata/netdata
LGPL
AGPL
MongoDB
:https://github.com/mongodb/mongo
MPL
更多开源协议
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓