GPL-LGPL-GFDL的关系

转载 2007年10月07日 13:41:00
何为GPL、LGPL 和 GFDL

前日关注KingStorm和OO的瓜葛的关系时有很多人问起什么是 GPL、LGPL 和 GFDL?它们和源代码以及商业销售之间的关系是什么?自己找了些资料,基本上可以比较简洁的回答这个问题。

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

  • 基于 GPL 的软件允许商业化销售,但不允许封闭源代码。
  • 如果您对遵循 GPL 的软件进行任何改动和/或再次开发,则您的产品必须继承 GPL 协议,不允许封闭源代码。
  • 基于 LGPL 的软件也允许商业化销售,但不允许封闭源代码。
  • 如果您对遵循 LGPL 的软件进行任何改动和/或再次开发,则您的产品不必继承 LGPL 协议,同时允许封闭源代码

GNU LGPL(GNU 程序库公共许可证)的内容全部包括在命名为 COPYING.LIB 的文件中。如果安装了内核核的源程序,在任意一个源程序的目录下都可以找到 COPYING.LIB 文件的一个拷贝。

GPL 和软件是否免费无关,它主要目标是保证软件对所有的用户来说是自由的。GPL 通过如下途径实现这一目标:

  • 它要求软件以源代码的形式发布,并规定任何用户能够以源代码的形式将软件复制或发布给别的用户。
  • 它提醒每个用户,对于该软件不提供任何形式的担保。
  • 如果用户的软件使用了受 GPL 保护的任何软件的一部分,那么该软件就继承了 GPL 软件,并因此而成为 GPL 软件,也就是说必须随应用程序一起发布源代码。
  • GPL 并不排斥对自由软件进行商业性质的包装和发行,也不限制在自由软件的基础上打包发行其他非自由软件。

遵照 GPL 的软件并不是可以任意传播的,这些软件通常都有正式的版权,GPL在发布软件或者复制软件时声明限制条件。但是,从用户的角度考虑,这些根本不能算是限制条件,相反用户只会从中受益,因为用户可以确保获得源代码。

尽管 Linux 内核也属于 GPL 范畴,但 GPL 并不适用于通过系统调用而使用内核服务的应用程序,通常把这种应用程序看作是内核的正常使用。

假如准备以二进制的形式发布应用程序(像大多数商业软件那样),则必须确保自己的程序未使用 GPL 保护的任何软件。如果软件通过库函数调用而使用了别的软件,则不必受到这一限制。大多数函数库,受另一种 GNU 公共许可证,即 LGPL 的保护,将在下面介绍。

LGPL 允许在自己的应用程序中使用程序库,即使不公开自己的源代码。但是,LGPL 还规定,用户必须能够获得在应用程序中使用的程序库的源代码,并且允许用户对这些程序库进行修改。

大多数 Linux 程序库,包括 C 程序库(libc.a)都属于 LGPL 范畴。因此,如果在 Linux 环境下,使使用 GCC 编译器建立自己的应用程序,程序所链接的多数程序库是受 LGPL 保护的。如果想以二进制的形式发布自己的应用程序,则必须注意遵循 LGPL 有关规定。

遵循 LGPL 的一种方法是,随应用程序一起发布目标代码,以及可以将这些目标程序和受 LGPL 保护的、更新的 Linux 程序库链接起来的 makefile 文件。

遵循 LGPL 的比较好的一种方法是使用动态链接。使用动态链接时,即使是程序在运行中调用函数库中的函数时,应用程序本身和函数库也是不同的实体。通过动态链接,用户可以直接使用更新后的函数库,而不用对应用程序进行重新链接。

但我们必须当心个别属于 GPL 范畴的库和实用程序:篏NU dbm(即 gdbm)数据库类的程序库是非常著名的 GPL 库;GNU bison 分析器生成程序是另一个实用的 GPL 工具,如果使用 bison 生成代码,所得的代码也适用于 GPL。

在 GPL 的保护范围以外,也有 GNU dbm 和 GNU bison 的相应的替代程序。例如,对于数据库类的程序库库,可以使用 Berkeley 数据库 db 来替代 gdbm;对于分析器生成器,可以使用 yacc 来替代 bison。

 

相关文章推荐

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

因CooCox用户数及影响力越来越大,CooCox团队也逐渐提高了对软件及代码协议的重视。在收集整理的过程中,一些归纳好的信息和大家分享一下。 首先借用有心人士的一张相当直观清晰的图来划分各种协议:...

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

当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来! 最初来自:sinoprise.com/read.php?tid-662-page-e-...

【转】几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)

GPL GPL授予程序接受人以下权利,或称“自由”: * 以任何目的运行此程序的自由 * 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提) * 再发行复制件的自由 * 改...
  • frog280
  • frog280
  • 2011年04月04日 12:19
  • 1276

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

现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们现在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要...
  • xelone
  • xelone
  • 2011年09月06日 09:26
  • 450

GPL LGPL Apache2.0 BSD 开源协议扫盲帖

原文地址:http://yelinsen.iteye.com/blog/1028318 BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,...

GPL和LGPL介绍

GPL 是 GNU General Public License (GNU 通用公共许可证)的缩写形式;LGPL 是 GNU Lesser General Public License (GNU ...

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

导读   当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!现今存在的开源协议很多,而经过Open Source Initi...

GPL与LGPL的区别

GPL 我 们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GPL-LGPL-GFDL的关系
举报原因:
原因补充:

(最多只允许输入30个字)