常见代码许可证对比

一、简介

目前主流的许可证为GPL、LGPL、AGPL、MIT、Apache、BSD、Mozilla

二、协议类别

GPL

GPL全称为GNU General Public License(GNU通用公共许可协议),缩写为GNU GPLGPLGPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利,但是新增代码只能使用相同的许可证。

目前GPL协议存在三个不同的版本,关于不同版本的详细协议内存,请参考:GPL V1GPL V2GPL V3

采用该协议的代表作品:EMACS、部分Linux核心代码、GCC

LGPL

LGPL的全称为GNU Lesser General Public License(GNU 宽通用公共许可证),旧称为GNU Library General Public License(GNU 库通用公共许可证)。允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

采用该协议的代表作品:Checkstyle、GTK等

MIT

MIT全称为The MIT License(MIT许可协议),又称X License(X许可协议)或 X11 License(X11许可协议),MIT 协议是所有开源许可中最宽松的一个,除了必须包含许可声明外,再无任何限制,核心条款如下:

该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版 权和许可提示,这意味着:

  • 你可以自由使用,复制,修改,可以用于自己的项目;
  • 可以免费分发或用来盈利;
  • 唯一的限制是必须包含许可声明;

采用该协议的代表作品:PuTTY、X Window、Expat、Ruby on Rails、Lua等

Apache

Apache全称为Apache License(Apache许可证),兼容GPL V3Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可。Apache 协议还有以下需要说明的地方:

  • 永久权利:一旦被授权,永久拥有;
  • 全球范围的权利:在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题;
  • 授权免费,且无版税:前期,后期均无任何费用;
  • 授权无排他性:任何人都可以获得授权;
  • 授权不可撤消:一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码;

采用该协议的代表作品:PyCharm、Kubernetes、TensorFlow、TypeScript、MathJax等

Mozilla

Mozilla全称为Mozilla Public License(Mozilla公共许可证),简称为MPL

BSD

BSD在软件分发方面的限制比别的开源协议(如 GNU GPL)要少。该协议有多种版本,最主要的版本有两个:

  • 新BSD协议
    • 在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制;
    • 禁止拿开发者的名义为衍生产品背书,但简单 BSD 协议删除了这一条款
  • 简单BSD协议
    • 在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制;

采用该协议的代表作品:React、Tor、Go、V8(JavaScript引擎)、Homebrew等

三、选择拓扑图

协议选择拓扑图

Author: bugwz
Link: https://bugwz.com/2016/12/10/licence/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.