以下是常见开源许可证及其用途的详细分类说明:
一、宽松型许可证(Permissive Licenses)
允许自由使用、修改和分发代码,商业闭源使用也无需公开源代码。
1. MIT License
-
核心条款:
-
保留版权声明
-
无责任担保
-
-
适用场景:
-
个人开源项目
-
希望最大限度被广泛使用的库(如React、jQuery)
-
-
模板片段:
Permission is hereby granted... subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies.
2. Apache License 2.0
-
核心条款:
-
明确专利授权
-
必须保留修改声明
-
禁止商标使用
-
-
适用场景:
-
企业级开源项目(如Android、Kafka)
-
涉及专利技术的项目
-
-
特殊要求:
You must give prominent notice of any modifications.
3. BSD 3-Clause
-
核心条款:
-
禁止使用项目名称进行推广
-
-
变体对比:
类型 广告条款 推广限制 BSD 2-Clause 无 无 BSD 3-Clause 无 有
二、强著佐权许可证(Copyleft Licenses)
要求衍生作品必须保持相同许可证,具有"传染性"。
1. GPL (GNU General Public License)
-
版本区别:
版本 传染范围 专利条款 GPLv2 直接衍生作品 无 GPLv3 网络服务视为分发 有 -
典型项目:
-
Linux内核(GPLv2)
-
Git(GPLv2)
-
2. LGPL (GNU Lesser GPL)
-
核心差异:
-
动态链接库可不继承LGPL
-
静态链接需开放源代码
-
-
适用场景:
-
开源库希望被商业软件使用(如GLib)
-
3. AGPL (Affero GPL)
-
新增条款:
-
网络服务使用视为分发(如SaaS)
-
-
典型用户:
-
MongoDB(曾采用)
-
Elasticsearch(曾采用)
-
三、行业专用许可证
1. MPL 2.0 (Mozilla Public License)
-
混合特性:
-
文件级Copyleft
-
允许与其他许可证代码组合
-
-
使用案例:
-
Firefox浏览器
-
Thunderbird邮件客户端
-
2. Eclipse Public License 2.0
-
专利条款:
-
明确专利诉讼终止授权
-
-
适用领域:
-
开发工具和框架(如Eclipse IDE)
-
3. Artistic License 2.0
-
特殊规定:
-
允许二进制分发不开放源码
-
修改版本需明确标注
-
-
典型应用:
-
Perl语言生态系统
-
四、商业友好型许可证
1. ISC License
-
简版MIT:
Permission to use... subject to the conditions: 1. Redistributions must retain copyright notice 2. No warranty
-
使用案例:
-
OpenBSD项目
-
BIND DNS服务器
-
2. Unlicense
-
极端宽松:
-
完全放弃版权(CC0等效)
-
-
法律风险:
-
某些国家不承认版权放弃
-
五、选择工具与资源
-
交互式选择器:
-
法律文本来源:
-
自动化集成:
# 使用license工具生成文件 npm install -g license-generator license-generator --type MIT --output LICENSE
六、商业项目注意事项
-
多许可证组合:
-
如Android使用Apache 2.0 + GPLv2(Linux内核)
-
-
专利风险规避:
-
避免使用GPLv3若涉及硬件专利
-
-
贡献者协议(CLA):
-
要求贡献者签署协议(如Google CLA)
-
通过合理选择许可证,开发者可以在保护权益与促进开源协作之间取得平衡。建议在项目启动时明确许可证策略,并在法律顾问指导下制定合规方案。