各开源协议详解

各开源协议详解

特性/许可证 Apache 2.0 GPL 3.0 MIT BSD 2-Clause BSD 3-Clause Boost 1.0 CC0 1.0 Eclipse 2.0 AGPL 3.0 GPL 2.0 LGPL 2.1 MPL 2.0
允许闭源分发
是否为Copyleft
专利条款
源代码要求 修改后需提供 修改后需开源 修改后需提供 修改后需提供 修改后需提供 修改后需提供 修改后需提供 修改后需提供 修改后需开源 修改后需开源 修改后需提供 修改后需提供
广告条款
网络服务条款 修改后需开源
兼容性
必须包含版权声明
必须说明修改
允许商业用途
适合企业使用
保护贡献者
宽松程度 严格 松散 松散 松散 极度松散 严格 严格

详细说明:

  1. 允许闭源分发

    • Apache、MIT、BSD 2、BSD 3、Boost、EPL、MPL允许闭源分发,而GPL系列不允许,因为它们是Copyleft许可证。
  2. 是否为Copyleft

    • GPL系列(GPLv2、GPLv3、AGPL、LGPL)是Copyleft,要求任何基于许可证代码的修改必须开源,而其他许可证不是。
  3. 专利条款

    • Apache、EPL、MPL包含专利授予条款,允许用户使用和分发代码而不担心专利诉讼,而GPL系列没有明确的专利条款。
  4. 源代码要求

    • Apache、EPL、MPL要求在分发修改后的代码时提供源代码,而MIT、BSD 2、BSD 3、Boost、LGPL可能只要求提供源代码或没有明确要求。
  5. 广告条款

    • 仅BSD 3-Clause要求在广告中不能使用被许可方的名称或标志。
  6. 网络服务条款

    • AGPL要求如果通过网络提供服务,必须公开源代码,而其他许可证没有此要求。
  7. 兼容性

    • MIT、Apache、BSD 2、BSD 3、Boost、EPL、MPL通常与其他许可证兼容,而GPL系列可能不兼容,尤其是当其他项目使用不同的许可证时。
  8. 必须包含版权声明

    • 所有许可证都要求保留版权声明,但具体要求可能不同,例如Apache要求在每个修改文件中包含版权声明。
  9. 必须说明修改

    • Apache、EPL、MPL要求明确说明修改,而其他许可证可能没有这样的要求。
  10. 允许商业用途

    • 所有许可证都允许商业用途,但GPL系列可能限制更多,因为它们要求修改后的代码开源。
  11. 适合企业使用

    • Apache、MIT、BSD 2、BSD 3、Boost、EPL、MPL更适合企业,因为它们更宽松,而GPL系列可能不太适合,因为它们的限制较多。
  12. 保护贡献者

    • Apache、EPL、MPL、LGPL、MIT、Boost、BSD 3-Clause都提供了一些保护,而GPL系列可能更严格地保护贡献者的知识产权。
  13. 宽松程度

    • MIT、BSD 2、BSD 3、Boost、EPL、MPL相对宽松,而GPL系列、AGPL、LGPL则更严格。

选择建议:

  • 企业项目:选择Apache、MIT、BSD 2-Clause或BSD 3-Clause,因为它们宽松且适合闭源分发。
  • 需要严格保护:选择GPL系列,尤其是GPLv3,以确保修改后的代码必须开源。
  • 网络服务:选择AGPL,因为它要求网络服务公开源代码。
  • 专利保护:选择Apache、EPL或MPL,以避免专利问题。
  • 库分发:选择LGPL,因为它允许将库与闭源项目链接,同时保护库的修改。

每个许可证都有其独特的优势和限制,选择时需根据项目需求和目标来决定。


各开源协议详解
https://blog.qingyi-studio.top/2025/04/05/各开源协议详解/
作者
QingYi Studio
发布于
2025年4月5日
更新于
2025年4月21日
许可协议