Skip to content

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 有限制允许 禁止 视商业条款而定 商业开源项目 (如中间件)