License
- Public domain & equivalents
- PD, CC0
- Permissive free software licence - 宽松自由软体授权条款
- BSD, MIT, Apache, CC-BY
- Copyleft - 禁止私有化
- GPL, AGPL, CC-BY-SA
- Noncommercial license - 不允许商业化
- JRL, AFPL, CC-BY-NC
- 开源软件商业模式
- Comparison of free and open-source software licences
- SPDX License List
- choosealicense
- CNCF allowed third-party license policy
- BSD, MIT, ISC, Python-2.0, PostgreSQL, X11, Zlib, Golang PATENTS
- Google thirdparty license policy
- 不允许
- BCL, CERN Open Hardware License 2 - Strongly Reciprocal Variant, CC BY-SA
- GPL, LGPL
- Nethack General Public License
- NPL, QPL, Sleepycat License, PresubmitR Open Hardware License
- qmail Terms of Distribution
- 不允许
- openbsd.org/policy
- 反对 Apache 2.0
- 推荐 ISC
- https://fair.io/
AGPL
- AGPL - GNU Affero General Public License
- 基于 GNU GPL - 增加通过网络提供服务的条款
- 避免 GPL 的 Application Service Provider 场景
- List of software under the GNU AGPL
- 值得注意的项目: Minio, Grafana, Nextcloud, OnlyOffice, Wiki.js, PVE
- 对 derived work of the AGPL software 的定义模糊
- 通常理解是没有 AGPL 软件无法使用
- 对 user 的定义不同于 GPL
- 包含通过网络使用服务的用户
- GPL 和 AGPL 都是影响 modified versions
- 参考
- Choose AGPL 3.0
- Google AGPL Policy
- 不允许使用
一般来说 DB 类型项目不会可能修改源码,但是服务性质的应用可能会,因此选择要慎重。
CC - Creative Commons
- 知识共享许可协议
- License Versions
- CC-BY 4.0
- CC-BY-SA 4.0
- choose
- OKI - Open Knowledge International
- 参考
abbr. | 署名 | 混合 | 商业 | 自由文化作品 | OKI |
---|---|---|---|---|---|
CC0 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
BY | 🟡 | 🟢 | 🟢 | 🟢 | 🟢 |
BY-SA | 🟡 | 🟢 | 🟢 | 🟢 | 🟢 |
BY-NC | 🟡 | 🟢 | 🔴 | 🔴 | 🔴 |
BY-NC-SA | 🟡 | 🔴 | 🔴 | 🔴 | 🔴 |
BY-ND | 🟡 | 🔴 | 🟢 | 🔴 | 🔴 |
BY-NC-ND | 🟡 | 🔴 | 🔴 | 🔴 | 🔴 |
- BY - Attribution - 署名
- SA - ShareAlike - 相同方式共享
- NC - Noncommercial - 非商业性使用
- ND - No Derivative Works
图标
[![CC BY-SA 4.0][cc-by-sa-img]][cc-by-sa]
[cc-by-sa-img]: https://mirrors.creativecommons.org/presskit/buttons/80x15/svg/by-sa.svg
[cc-by-sa]: http://creativecommons.org/licenses/by-sa/4.0/
Apache-2.0
- provides explicit patent grant
- 不兼容 GPL-2.0, LGPL-2.1
GPL
- Android, iOS 都排斥在用户空间使用 GPL
- macOS 因为 Bash GPLv3 替换为 ZSH
MPL-2.0
- 类似 Apache-2.0
- 但兼容 GPL-2.0+, LGPL-2.1+, AGPL-3.0+
- https://opensource.stackexchange.com/a/8832
- may not charge extra for the source code
- sell the product, must provide access to the source code under the MPL-2.0
- https://www.mozilla.org/en-US/MPL/2.0/FAQ/
- MIT/Apache-2 vs. MPL-2.0
- vs Apache-2.0
- 更严格,更多限制
ELv2
- Elastic License 2.0
- Elastic 对抗 AWS 的协议
- 最终结果是 AWS fork Elastic -> OpenSearch
- 不可以提供 托管服务/Managed Service
- 直接 Host 服务 - SaaS
- 直接暴露 UI, API
- 参考
BSL
- BSL/BUSL - Business Source License
- 由 MariaDB 公司定义
- 非开源协议 - OSI/FSF 不认可 - 介于开源和闭源之间
- 源码延迟开源/最终开源 - 例如: 4 年后协议从 BSL 变为 GPLv2
- 非生产环境允许使用,生产环境限制使用
- 与 ELv2 类似
- Adopted by: MariaDB 附加产品, ZeroTier, Couchbase 7
- BSLv1.1
- Projects using BSL 1.1
Redis Source Available License
- RSAL
- 不是开源协议
- RedisLab 的附加模块使用的 License
- RedisSearch, RedisGraph, RedisJSON, RedisML, RedisBloom
- 允许
- 可以修改代码,集成到应用
- 禁止
- 但不可以是一个 数据库产品、缓存引擎、流处理、搜索、索引、ML/DL/AI 服务引擎
FAQ
LGPL vs GPL vs AGPL
- LGPL: you can link against and don't have to release source code as long as you don't modify the library itself
- GPL: you have to release source code if you link against and distribute the binary, but don't if you just provide a service
- AGPL: you have to allow the source to be downloaded even if you never distribute the binary but do provide a service
GPLv2 vs GPLv3
两者不兼容
- GPLv2 - 1991 - Linux, Busybox
- GPLv3 - 2007
- 细化,明确
- 包含更多专利说明、国际化
- Anti-Circumvention Law - 反规避法
- 初次违反的容忍时间
- 兼容更多 License
- https://stackoverflow.com/a/44701/1870054
- https://stackoverflow.com/a/44701/1870054
- https://unicef.github.io/inventory/legal-policy/gpl-comparison/
私有项目
We do not want anyone to see our source code, but if for any reason our code is stolen or otherwise obtained, we want to have a license that does not allow disclosure of any kind.
{"license": "UNLICENSED"}
- What kind of license to put a private project?