license#
flowchart TD
A[如何选择开源/内容许可证] --> B{作品主要类型是什么?}
B -->|非软件: 文档/媒体/数据| C{版权分发诉求?}
B -->|软件源代码| D{是否要求修改后的代码必须开源?<br>Copyleft}
%% 软件分支 - 著佐权 (Copyleft)
D -->|是| E{是否要求网络服务SaaS也必须开源?}
E -->|是| F[AGPL 许可证]
E -->|否| G{是否允许商业软件闭源链接?}
G -->|是: 允许动态链接闭源主程序| H[LGPL 许可证]
G -->|否: 强传染, 整体须开源| I[GPL 许可证]
%% 软件分支 - 宽松型 (Permissive)
D -->|否| J{是否需要明确的专利授权及反诉条款?}
J -->|是| K[Apache 2.0 许可证]
J -->|否| L{是否需要最简条款与最大自由度?}
L -->|是| M[MIT / BSD 许可证]
L -->|否| N[Unlicense / CC0 公共领域]
%% 商业过渡协议 (Source-Available)
D -->|特定商业限制/源码可用| S[BSL 许可证]
%% 非软件分支 (Creative Commons)
C -->|完全放弃版权| O[CC0 公共领域声明]
C -->|仅需署名| P[CC-BY]
C -->|署名 + 相同方式共享| Q[CC-BY-SA]
C -->|署名 + 禁止商业使用| R[CC-BY-NC]
%% 适用场景关联
K --> S1[适合需防御专利官司的商业项目]
M --> S2[适合追求极限传播度的基础库]
I --> S3[适合推动开源生态的独立软件]
F --> S4[适合云厂商“白嫖”黑洞的防御型SaaS]
S --> S5[适合基础开源但限制云厂商售卖的商业模式]
%% 样式微调
style F fill:#f9f,stroke:#333,stroke-width:1px
style I fill:#f9f,stroke:#333,stroke-width:1px
style K fill:#bbf,stroke:#333,stroke-width:1px
style M fill:#bbf,stroke:#333,stroke-width:1px
style S fill:#fbb,stroke:#333,stroke-width:1px
2. 修正后的限制与范围脑图 (Mindmap)#
💡 关键修正点(必看)#
- Apache 2.0 的商标红线:原脑图中写着“允许商标使用”,这是严重错误。Apache 2.0 第 6 条(Trademarks)明确规定:本许可证不授予使用许可方的商品名、商标、服务标志或产品名称的许可。已将其移至【禁止】。
- LGPL 的静态链接限制:修正了静态链接的表达。LGPL 允许静态链接,但条件是必须公开主程序的纯目标文件(Object files),以便用户能用修改后的库重新链接。
- BSL (Business Source License):补充了其“非 OSI 认证开源许可证”但属于“源码可用(Source-Available)”的法律定性。
mindmap
root((开源/内容许可证限制与范围))
MIT_BSD[MIT / BSD]
:::permissive
允许
商业化使用
任意修改与闭源分发
要求
保留原作者版权声明
保留免责声明
Apache_20[Apache 2.0]
:::permissive
允许
商业闭源分发
获得明确的专利授权
要求
修改过文件时需做出状态声明
保留 NOTICE 通知文件与版权声明
禁止
未经许可使用原项目的商标与品牌
GPL_v2_v3[GPL v2 / v3]
:::copyleft
要求
分发二进制时必须公开源码
衍生作品必须采用相同许可证(传染性)
提供明确的专利授权(v3)
禁止
闭源分发
增加任何额外的限制条款
特殊限制
反 Tivoization 限制(v3: 禁止硬件锁死签名)
LGPL[LGPL]
:::weak-copyleft
允许
作为动态链接库被闭源商业软件调用
要求
修改库本身的代码时必须开源
若采用静态链接,须提供目标文件以供用户重新链接
AGPL[AGPL]
:::strong-copyleft
核心传染机制
网络云服务(SaaS)视同“分发”
要求
后台运行并提供网络服务时也必须向用户公开源码
适用场景
防止云厂商将开源软件包装为闭源SaaS售卖
Creative_Commons[Creative Commons<br>多用于文档/多媒体]
CC0
:::公共领域
彻底放弃所有版权,进入公共领域
CC_BY
只要求署名,其余完全自由
CC_BY_SA
要求署名,且衍生作必须以相同协议共享
CC_BY_NC
:::非商业
禁止任何商业目的的使用
BSL[BSL 1.1<br>商业源码可用协议]
:::source-available
法律属性
属于商业过渡协议,非 OSI 认证开源
特点
非生产环境或指定规模内免费
禁止未经授权将其转化为竞争性SaaS服务
明确的更改日期:达到时限后(通常<4年)自动转为宽松开源协议(如MIT)
3. 核心许可证核心条款对比速查表#
为了让这份文档更完善,建议在脑图下方配上这个权利对比矩阵,方便团队成员快速查阅:
| 许可证 | 允许商业使用? | 允许闭源衍生作? | 衍生作需相同许可证?(传染性) | 包含专利授权? | 允许使用商标? | 适用核心对象 |
|---|---|---|---|---|---|---|
| MIT | 允许 | 允许 | 否 | 隐式拒绝/未提及 | 否 | 软件代码 |
| Apache 2.0 | 允许 | 允许 | 否 | 是(带反诉条款) | 严格禁止 | 软件代码 |
| GPL v3 | 允许 | 禁止 | 是(强传染) | 是 | 否 | 软件代码 |
| LGPL v3 | 允许 | 允许(仅限动态链接) | 仅限库本身 | 是 | 否 | 软件库(Library) |
| AGPL v3 | 允许 | 禁止 | 是(含网络云服务) | 是 | 否 | SaaS / 云端后端软件 |
| CC-BY-NC | 禁止 | 允许(非商业) | 否 | 否 | 否 | 文档 / 图片 / 博客 |
| BSL 1.1 | 有限制允许 | 禁止 | 视商业条款而定 | 否 | 否 | 商业开源项目 (如中间件) |