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(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变种的受权下。io
如下是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许可证的库。