Github开源协议

zhyjc6于2019-12-01发布 约4128字·约9分钟 本文总阅读量

前言

开源作者提供开源代码肯定是希望能有更多人用的, 但是每个人对开源的理解和接受程度不同, 有的人希望自己的代码别人可以随便用随便改甚至闭源, 只要注明原作者的版权就好了; 有的人也希望自己的代码被更多人使用, 但是希望别人使用的过程有更多限制, 比如无法更改原文代码等。

细心的我们肯定早就发现,在很多开源的GitHub仓库的根目录下都会有一个LICENSE文件,license直译为”许可”, 该文件的首行会说明该仓库使用的是什么开源协议,每种开源协议都有不同的限制。仓库作者会根据自己仓库的情况选择适合自己的协议。

这就是开源协议

为什么要有开源协议

当人们进行创造性的工作(例如写作设计或编程)时,默认情况下该作品属于专有版权(copyright)。也就是说,法律承认人们是其作品的作者,他人在没有经得作者本人同意的情况下,是不能使用作者的成果的。

然而开源是另一种情况。开源作者多希望他人使用、修改以及分享他们的劳动成果,但是因为法律默认该作品依然是有专有版权(copyright)的,所以开源作者需要一个可以明确说明这些权限的许可协议(开放更多权限)。

常见的开源协议

世界上的开源协议(Open Source License)大概有上百种,当然,我们不必全部了解。我们只需要了解一些常用的开源协议,知道它们的历史背景和使用场景以及法律相关的效应就ok了。


开源协议 简述 要求 允许 禁止 来源
Apache 一个较宽松且简明的协议 协议和版权信息、声明变更 商用、分发、修改、专利授权、私用、附加协议 作者免责、商标使用 Apache软件基金会(2000-2004)
GPL 应用最广泛 公开源码、协议和版权信息、声明变更 商用、分发、修改、专利授权、私用 责任承担、附加协议 自由软件基金会(1989-2007)
LGPL 主要用于一些代码库 公开源码、库引用、协议和版权信息 商用、分发、修改、专利授权、私用、附加协议 责任承担 自由软件基金会(1991-2007)
MIT 宽松简单且精要的协议 协议和版权信息 商用、分发、修改、私用、附加协议 责任承担 麻省理工学院(1988-)
BSD 较为宽松,两个变种 协议和版权信息 商用、分发、修改、私用、附加协议 责任承担 计算机系统研究组(1977-1995)
Eclipse 对商用非常友好 公开源码、协议和版权信息 商用、分发、修改、专利授权、私用、附加协议 责任承担 Eclipse基金会(2004-)
Mozilla 较为宽松的BSD协议和更加互惠的GPL协议的折衷点 公开源码、协议和版权信息 商用、分发、修改、专利授权、私用、附加协议 责任承担、商标使用 Mozilla基金会(2012-)

AL2.0

Apache 许可证是一个由Apache软件基金会发布的自由软件许可证,最初为Apache http 服务器而撰写。2004年1月,Apache软件基金会公布了Apache 2.0版本(Apache Licence v2.0)。

要求

  1. 需要给代码的用户一份Apache Licence
  2. 如果你修改了代码,需要在被修改的文件中说明。
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明。
  4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

好处

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

GPLv3

GPL是GNU General Public License的缩写,中文译为GNU通用公共许可证。最初由自由软件基金会的理查德·斯托曼为GNU项目所撰写,并授予计算机程序的用户自由软件定义(The Free Software Definition)的权利。GPL是一个Copyleft许可证,这意味着派生作品只能以相同的许可条款分发。 GPL是第一个普遍使用的Copyleft许可证。

2007年,发布了第三版许可证(GNU GPLv3,General Public License v3.0),以解决在长期使用期间发现的第二版(GNU GPLv2)所发生的一些困扰。

GPL授予程序接受人以下权利,或称“自由”,或称“copyleft”:

LGPL

GNU宽通用公共许可证(英语:GNU Lesser General Public License,简称:LGPL)是由自由软件基金会公布的自由软件许可证。

LGPL 是 GPL 的一个衍生版本,该协议主要是为类库设计的开源协议。LGPL的第3版于2007年发布,它以在GPL第3版之上附加应用一系列许可的方式表现。

LGPL有一特点是LGPL软件可以被转换成GPL。

它允许企业与软件开发者使用,或将LGPL授权的软件集成至他们自己的软件内(即使该软件是私有软件也被允许),同时不会受到Copyleft特性的许可证强制对软件开源的限制。该许可证常被用于一些(但不是全部)GNU程序库。

MIT

MIT许可协议之名源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称“X许可协议”(X License)或“X11许可协议”(X11 License)

目前限制最少的开源许可协议之一(比 BSD 和 Apache 的限制都少),只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

BSD

BSD 许可协议Berkeley Software Distribution license),是自由软件中使用最广泛的许可协议之一。伯克利软件包(Berkeley Software Distribution,缩写:BSD) 就是遵照这个许可证来发布,也因此而得名 BSD 许可协议。

当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

  1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议
  2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议
  3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

EPL

Eclipse公共许可证(简称EPL,Eclipse Public License 1.0)是一种开源软件许可证由Eclipse基金会应用于名下的集成开发环境Eclipse上。EPL代替了原来的通用公共许可证(Common Public License,简称CPL),在其基础上删除了专利相关的条款。

EPL是为适合商业应用的自由软件所量身定制的许可证,其反著作权限定也比现时的GNU通用公共许可证(GNU GPL)等自由软件软件许可证更为松弛:在使用以EPL授权的程序时,用户有权使用、修改、复制与传播软件原始版本和修改后版本,在某些情况下则必须将修改内容一并发布

使用EPL协议,需要遵守以下规则:

MPL

Mozilla公共许可证(英语:Mozilla Public License,简称MPL)是个自由、开源、详细的软件许可证,由Mozilla基金会开发并维护。该协议融合了BSD许可证和GNU通用公共许可协议的特性,追求平衡专有软件和开源软件开发者之间的顾虑。

MPL用于Mozilla Firefox、Mozilla Thunderbird及其他Mozilla软件的许可,但也被其他产品所用,如Adobe以此为Flex产品线许可,还有LibreOffice 4.0(同时使用LGPL 3+)。

开源协议之图解

之一

之二

之三

之四

知识共享协议

知识共享协议内容比较简单,知乎上有人总结得很好,这里就贴上一篇写得很好的文章:

参考资料