Skip to main content

开源项目许可证

wKevin
对衍生品的要求Apache2MITGPLLGPLBSD说明
传染性不允许允许不允许库不允许
App 允许
允许是否允许衍生品更改 License?
许可条款允许允许允许允许允许是否允许修改、分发原项目的源代码?
保留原始版权声明必须无需必须库必须各版本不一致是否在修复、分发、衍生品中保留 License?
开源要求强制开源不要求强制开源库强制开源
App 可选
各版本不一致衍生代码是否必须开源?
专利许可授予不授予不授予不授予不授予是否允许衍生品免费使用原开源项目的专利?
附加条款允许不允许不允许不允许各版本不一致是否允许衍生品增加个性化条款?
是否可商用允许允许允许允许允许开源都可用于商用,概念其实不相关
  • 粗体仅表示与同行不一致。
  • BSD 有 FreeBSD、NetBSD 等多个差异化较大的版本,不像 GPL 等虽然版本也升级,但继承性较好。
  • 不使用 X、√ 来表示,因为担心误导为错误、正确,每种 License 都有自己的规约,没有对错之分。
  • 希望项目得到广泛应用和贡献: 考虑 Apache、MIT —— 简单而宽松的要求可以让项目快速拓展用户,形成生态
  • 希望项目得到分享和改进:考虑 GPL —— 能够始终保持项目的凝聚力,汇聚想为项目本身贡献力量的群体,而不是伸手党
  • LGPL 即 Lesser GPL,是 GPL 的宽松版,是为基于 Linux 开源底层开发闭源上层(APP、Framework 等)而设计的
    • 开发库代码,希望与衍生品(应用程序、二创等)代码保持解耦。
    • 有实力的公司或组织可以底层开源一部分,上层闭源收银子,自建生态。
  • Apache 项目请仔细阅读是否原作者添加了附加条款,以免掉到坑里。

github 创建了一个网站 https://choosealicense.com,专为 License 选择困难症患者解答问题,https://choosealicense.com/licenses/ 上有多个主流 License 的更多对比项和说明,值得认真阅读。

列举几个著名项目的 License:

项目许可证
Linux 内核GPLv2
Mozilla FirefoxMPL 2.0
ChromiumBSD 3-Clause
NginxBSD 2-Clause
GitGPLv2
TensorFlowApache 2.0
ReactMIT
Vue.jsMIT
jQueryMIT