关于开源授权协议 GPL 和 LGPL

GPL 是 GNU General Public License (GNU 通用公共许可证)的缩写形式;LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNU Library General Public License (GNU 库通用公共许可证);GFDL 是 GNU Free Documentation License (GNU 自由文档许可证)的缩写形式。它们是自由软件(Free Software)的通用版权认证协议,由自由软件基金会(FSF)制定和发布。

    • 基于 GPL 的软件允许商业化销售,但不允许封闭源代码。
    • 如果您对遵循 GPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 GPL 协议,不允许封闭源代码。
    • 基于 LGPL 的软件也允许商业化销售,但不允许封闭源代码。
    • 如果您对遵循 LGPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 LGPL 协议,不允许封闭源代码。但是如果您的程序对遵循 LGPL 的软件进行任何连接、调用而不是包含,则允许封闭源代码。

GPL(General Public License)和LGPL( Lesser General Public License)是GNU的两种License。越来越多的自由软件(Free Software)使用GPL作为其授权声明,如果对GPL一点都不了解,有可能在使用自由软件时违反了GPL的授权。如果是个人或不正规的公司倒也无所 谓,但如果是有规模的公司,恐怕会有被起诉的风险。

在使用Log4cpp时我想到了授权的事情,于是有了兴趣对GPL做一下了解。这是必要的,因为公司也维护了一个验证过的自由软件库,里面包含的自由软件除了功能上是可靠的,另外就是一定可以被私有使用的,否则后果很严重(黎叔很生气!)。

Log4cpp最初的版本使用GPL作为授权声明的,在0。2。1版本以后改用更为宽松的 LGPL。LGPL最初是Library GPL的缩写,后来改称作Lesser GPL,即为更宽松的GPL。当一个自由软件使用GPL声明时,该软件的使用者有权重新发布、修改该软件,并得到该软件的源代码;但只要使用者在其程序中 使用了该自由软件,或者是使用修改后的软件,那么使用者的程序也必须公布其源代码,同时允许别人发布、修改。也就是说,使用GPL声明下的的自由软件开发 出来的新软件也一定是自由软件。

LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与 GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在 LGPL或其它GPL变种的授权下。

以下是Richard Stallman关于GPL和LGPL的论述

为什么你不应该使用LGPL发布你的下一个库

GNU计划在使用库时有两个首要的许可证。一个是GNU LGPL(库GPL);另一个是普通的GNU GPL。选择不同的许可有很大的不同:选择LGPL允许在私有程序中使用该库;选择普通的GPL则只允许在自由软件中使用它。

关于哪一种许可证对指定的库是最好的这一问题实际上是一个策略问题,它取决于实际情况。当前,大多数的GNU库被采用LGPL,这意味着我们只使用着其中的一个策略,而忽略了另一个。 所以现在我们在寻求更多以普通的GPL许可证形式发布的库。

私有软件开发者有金钱上的优势;自由软件开发者需要相互之间利用各自的优势。对一个库采用普通的GPL对自由软件开发者的优势要大于对私有软件开发者: 他们可以使用的库对于私有软件开发者是不可利用的。

使用普通的GPL并不是对于所有的库都有好处。在某些情况下更有理由来使用LGPL。最常见的情况就是当一个自由库的特性可以很容易地被私有软件以其他可替代库来实现。在这种情况下,库不能给与自由软件任何特别的优势,因而最好还是为LGPL发布该库。

这也就是为什么我们为GNU C 库选择LGPL。总之,有很多的其他C库;我们使用GPL发布该库,将迫使私有软件开发者不得不使用其它的库--对他们来说这不成问题,而我们则有了麻烦。

然而,当一个库所提供的功能是非常独特的时候,如GNU Readline, 情况就大不一样了。 Readline库可实现输入编辑和记录交互式程序操作,这在别处通常是不可多得。 在GPL下发布它并限制它只能在自由程序中使用, 这我们的社团是一个重要的促进。至少今天某个应用程序之所以是自由软件,只是因为它必需要用到Readline。

如果我们收集一些强大的、私有软件中没有相类似东西的、采用GPL的库,它们将提供一系列有用 的模块用于新的自由软件的构造。 这对于将来的自由软件开发将是一个显著的优势, 一些项目将为了使用这些库而考虑使软件自由化。 大学的项目是易于被影响的;而且今天,随着某些公司开始考虑使软件自由化, 甚至一些商业项目也会由此受到影响。

私有软件开发者试图否认自由竞争的重要性, 他们会拼命说服作者不要将库使用GPL来发布。 例如,他们会呼吁利己主义,信誓旦旦地说如果我们让他们在私有软件产品中使用代码,将有“更多的用户”用到该库。 流行是一种诱惑,它使一个库开发者倾向于相信这种观点:社会首先需要的是促进一种库的流行。

但是我们不应该听从这种诱惑,因为如果我们联合起来,我们可以做得更好。我们这些自由软件开发 者应该相互支持。 通过发布只能为自由软件使用的库,我们可以互相帮助,使彼此的自由软件包优于其它的私有替代品。 整个自由软件运动将会有更多的机会,因为自由软件作为一个整体将会在竞争中表现更佳。

因为“LGPL(Library GPL)”的称呼传达了关于这一问题的错误观点,我们计划将称呼改为“次级GPL(Lesser GPL)”。事实上要更换名称要花一定的时间,但你不必再等--你可以现在就发布应用GPL许可证的库。

时间: 2024-09-30 11:46:19

关于开源授权协议 GPL 和 LGPL的相关文章

开源的许可证GPL、LGPL、BSD、Apache 2.0的通俗解释

你对开源有多少了解呢?如果你是软件开发者,要开源软件,不单单是开放源代码就可以了,选择一种许可证很重要,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性.一个错误的许可证选择可能会直接导致整个项目的失 败,XFree86就是一个好例子. 各种开源的许可证主要的限制还是在redistribution(发布),所以个人/商业公司开发的软件包含了GPL的代码,只要你不发布,是可以任意使用的.下面是几个开源许可证的区别: GPL这里不想再解释长篇的GPL译文和更长的FAQ. 简单说,

开源的许可证GPL、LGPL、BSD、Apache 2.0

软件开发者要开源软件,不单单是开放源代码就可以了,选择一种许可证很重要,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性.一个错误的许可证选择可能会直接导致整个项目的失败. 各种开源的许可证主要的限制还是在redistribution(发布),所以个人/商业公司开发的软件包含了GPL的代码,只要你不发布,是可以任意使用的. 下面是几个开源许可证的区别: GPL GPL软件的使用者有权力得到软件的代码,只要使用了GPL,在发布(redistribution)时,整个项目也必须是

GPL、LGPL、MIT、BSD、Apache,这些开源协议,你都注意过吗?

本人在开发iOS应用的过程中,经常会使用到别人撰写的类库,不仅因为能够节省下大量的开发和调试的时间,还因此获得了更多完善且强大的功能和效果.在使用别人撰写的类库的时候,必须当心该类库所涉及的授权问题,如果使用不慎,很可能引发不必要的麻烦,甚至可能导致法律纠纷.同样使用过外部类库的开发者们,你们是否注意过呢? 1.GPL.LGPL和GFDL GPL 是 GNU General Public License (GNU 通用公共许可证)的缩写形式:LGPL 是 GNU Lesser General P

五种开源协议(GPL,LGPL,BSD,MIT,Apache)介绍

商业化的软件应该主要选用MIT或者Apache license的开源系统作为插件. 什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作 者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题. 而开源许可协议使这些事情变

五种开源协议(GPL,LGPL,BSD,MIT,Apache)

http://www.oschina.net/question/54100_9455 什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作 者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题. 而开源许可协议使这些事情

一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 以下是上述协议的简单介绍:BSD开源协议BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布. 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己

四大开源协议比较:BSD、Apache、GPL、LGPL

http://www.cnblogs.com/top5/archive/2010/07/31/1789657.html 本文参考文献:http://www.fsf.org/licensing/licenses/ 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种.我们现在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议.如果要开源自己的代码,最好也是选择这些被批准的开源协议. 这里我们来看四种最常用的开源协议及它

[转载]一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

本文转载自:http://blog.csdn.net/testcs_dn/article/details/38496107 开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 以下是上述协议的简单介绍:BSD开源协议BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代

五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)(转)

BSD开源协议(original BSD license.FreeBSD license.Original BSD license) BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布. 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件: 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议. 如果再发布的只