首页 > 代码库 > 开源协议浅谈

开源协议浅谈

前言

从 1985 年 Richard Stallman 成立 Free Software Found 开始, 开源就如雨后春笋,发展得如火如荼。小到java 或js 的一个组件,大到 linux 操作系统。开源软件的也从仅仅的开源自由进化到创新,编译,快速和弹性等更多的特性。

当然, 开源自由并不是说完全没有限制。 不同的开源软件对到具体的不同的开源协议。

对于私人开发者来说,可能并不关注这些协议。 但是对于软件开发公司或是要把软件商业化的个人来说,如果不在意这个,很有可能就要承担一些法律上的责任了。


常见的开源协议与差异

目前比较常见的开源协议主要有:

GPL, LGPL,Apache 2.0, BSD 和 MIT 这五种。

GPL : 是General Public License的缩写,是一份GNU通用公共授权非正式的中文翻译。它并非由自由软件基金会所发表,亦非使用GNU通用公共授权的软件的法定发布条款

GPL由斯托曼撰写,用于GNU计划。它以GNU Emacs、GDB、GCC的许可证的早期版本为蓝本。这些许可证都包含有一些GPL的版权思想,但仅只针对特定程序。斯托曼的目标就是创造出一种四海之内皆可使用的许可证,这样就能为许多源代码共享计划带来福音。

对于这个羊头标识的图标, 一定不会陌生。

如果你开发的软件使用了一个GPL协议的开源软件,则你的软件也必须开源免费,而且包含你自己的代码也一同感染,需要开源。


LGPL :LGPL是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称GNU Library General Public License (GNU 库通用公共许可证),后来改称作Lesser GPL,即为更宽松的GPL,在宽松程度上与BSD, Apache,XFree86 许可证相似。GPL(General Public License)和LGPL是GNU的两种License。越来越多的自由软件(Free Software)使用GPL作为其授权声明,如果对GPL一点都不了解,有可能在使用自由软件时违反GPL的授权,恐怕会有被起诉的风险。

LGPLv3 Logo.svg

基本上来说,

如果你开发的软件使用了一个LGPL协议的开源软件,则你的软件也必须开源免费,你所修改的原组件的源代码的部分需要开源。


Apach 2.0

 Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

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

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

类似:

如果你开发的软件使用了一个Apach2.0 协议的开源软件,则你的软件也必须免费,可以不开源, 但需要说明使用的版权信息。 修改源代码的部分和自己的代码都不需要开源。


BSD:

BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版".

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以"为所欲为",可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但"为所欲为"的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广

类似:

如果你开发的软件使用了一个BSD协议的开源软件,则你的软件可以收费,可以不开源, 但需要说明使用的版权信息。


MIT:

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

MIT内容与三条款BSD许可协议(3-clause BSD license)内容颇为近似,但是赋予软件被授权人更大的权利与更少的限制。

这种协议相对来说就比较宽松了。


一张图简单看一下:







开源协议浅谈