什么是 GPL、LGPL 和 GFDL?它们和源代码以及商业销售之间的关系是什么?
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 的软件进行任何连接、调用而不是包含,则允许封闭源代码。
GPLv1
GPL1
GPL版本1,即最初的版本,发布于1989年一月,其目的是防止那些阻碍自由软件的行为,而这些阻碍软件开源的行为主要有两种(一种是软件发布者只发布可执行的二进制代码而不发布具体源代码,一种是软件发布者在软件许可加入限制性条款)。因此按照GPLv1,如果发布了可执行的二进制代码,就必须同时发布可读的源代码,并且在发布任何基于GPL许可的软件时,不能添加任何限制性的条款。
GPLv2
GPL2
理查德·斯托曼在GPLv2中所做的最大的改动就是增加了“
自由还是死亡”("Liberty or Death")这章条款,即第七章 liberty-or-death Presentation。这章中申明道,如果哪个人在发布源于GPL的软件的时候,同时添加强制的条款,以在一定程度上保障和尊重其它一些人的自由和权益(也就是说在一些国家里,人们只能以二进制代码的形式发布软件,以保护开发软件者的版权),那么他将根本无权发布该软件。
到了
1990年,人们普遍认为一个限制性弱的许可证对于自由软件的发展是有战略意义上的好处的;因此,当GPL的第二个版本(GPLv2)在1991年6月发布时,与此同时第二个许可证
程序库GNU通用公共许可证(LGPL,the Lesser General Public License)也被发布出来并且一开始就将其版本定为第2版本以表示其和GPLv2的互补性。这个版本一直延续到
1999年,并分支出一个派生的LGPL版本号为2.1,并将其重命名为
轻量级通用公共许可证(又称
宽通用公共许可证)(Lesser General Public License)以反映其在整个GNU哲学中的位置。
GPLv3
GPLv3(第三版)
理查德·斯托曼(
Richard Stallman)起草了第一份GNU GPLv3草案,在美国麻州剑桥市的MIT大学。
到
2005年,GPL版本3正由斯托曼起草,由伊本·莫格林和软件自由法律中心(Software Freedom Law Center) 提供法律咨询。
-
在所有的改动中,最重要的四个是:
-
解决软件专利问题;
-
与其他许可证的兼容性;
-
源代码分区和组成的定义;
-
解决数位版权管理(DRM) 问题。
-
2006年,自由软件基金会针对GPL的可能的修改开始了12个月的公共咨询。
在公众咨询过程中,有962条评论被提交给第一稿草稿。 最终总共有2,636条评论被提交。
2007年3月28日正式启用。