常用开源协议以及是否能够商用
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
服务部署在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扫描下方二维码关注公众号和小程序↓↓↓

-
PostgreSQL 查看时区阅读 8249
-
Spring 事务结束后进行耗时操作阅读 782
-
macOS Homebrew 报错 not in a git directory阅读 330
-
IDEA HTTP Client 上传文件阅读 530
-
Visual Studio Code 快捷键更改为 Intellij IDEA阅读 5796
-
macOS IDEA 显示 .DS_Store 文件阅读 391
-
Kubernetes Service 对外提供访问阅读 1138
-
Go 字符串与字节数组互相转换阅读 4154
-
Java jar 包启动时指定 JVM 时区阅读 5810
-
Android 混淆 proguard.cfg阅读 3943