网站地图
GNU宽通用公共许可证

GNU通用公共许可协议(英语:GNU General Public License,缩写:GNU GPL、GPL),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼(Richard Matthrew Stallman)为GNU计划而撰写。此许可证最新版本为“第3版”(v3),于2007年6月29日发布。GNU宽通用公共许可证是改自GPL的另一个版本,其目的是为了应用于一些软件库。

GPL给予了计算机程序自由软件的定义,并且使用Copyleft来确保程序的自由被完善的保留。

GPL授予程序接受人以下权利,或称“自由”:

以任何目的运行此程序的自由;

再发行复制件的自由;

改进此程序,并公开发布改进的自由(前提是能得到源代码)。

相反地,随版权所有软件的最终用户许可证几乎从不授予用户任何权利(除了使用的权利),甚至可能限制法律允许的行为,比如逆向工程。

GPL与其他一些更“许可的”自由软件许可证(比如BSD许可证)相比,主要区别就在于GPL寻求确保上述自由能在复制件及演绎作品中得到保障。它通过一种由斯托曼发明的叫Copyleft的法律机制实现,即要求GPL程序的演绎作品也要在GPL之下。相反,BSD式的许可证并不禁止演绎作品变成专有软件。

由于某些原因,GPL成为了自由软件和开源软件的最流行许可证。到2004年4月,GPL已占Freshmeat上所列的自由软件的约75%,SourceForge的约68%。类似的,2001年一项关于Red Hat Linux 7.1的调查显示一般的代码都以GPL发布。著名的GPL自由软件包括Linux核心和GCC。

根据知识共享官方网站,GNU通用公共许可协议的台湾法律用语翻法为GNU通用公共授权条款,香港法律用语翻法亦为GNU通用公共授权条款. [2010-7-20].。 [1]

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

到1990年时,因为一些共享库而出现了对比GPL更宽松的许可证的需求。所以当GPL版本2在1991年6月发布时,另一许可证程序库通用许可证(Library General Public License,简称LGPL)也随之发布,并记作“版本2”以示对GPL的补充。版本号在LGPL版本2.1发布时不再相同,而LGPL也被重命名为GNU宽通用公共许可证以体现GNU哲学观。

GPL版本1,即最初的版本,发布于1989年一月,其目的是防止那些阻碍自由软件的行为,而这些阻碍软件开源的行为主要有两种(一种是软件发布者只发布可执行的二进制代码而不发布具体源代码,一种是软件发布者在软件许可加入限制性条款)。因此按照GPLv1,如果发布了可执行的二进制代码,就必须同时发布可读的源代码,并且在发布任何基于GPL许可的软件时,不能添加任何限制性的条款。

理查德斯托曼在GPLv2中所做的最大的改动就是增加了“自由还是死亡”("Liberty or Death")这章条款,即第七章liberty-or-death Presentation。这章中申明道,如果哪个人在发布源于GPL的软件的时候,同时添加强制的条款,以在一定程度上保障和尊重其它一些人的自由和权益(也就是说在一些国家里,人们只能以二进制代码的形式发布软件,以保护开发软件者的版权),那么他将根本无权发布该软件。

到了1990年,人们普遍认为一个限制性弱的许可证对于自由软件的发展是有战略意义上的好处的;因此,当GPL的第二个版本(GPLv2)在1991年6月发布时,与此同时第二个许可证程序库GNU通用公共许可证(LGPL, Library General Public License)也被发布出来并且一开始就将其版本定为第2版本以表示其和GPLv2的互补性。这个版本一直延续到1999年,并分支出一个派生的LGPL版本号为2.1,并将其重命名为轻量级通用公共许可证(又称宽通用公共许可证,Lesser General Public License)以反映其在整个GNU哲学中的位置。

到2005年,GPL版本3正由斯托曼起草,由伊本莫格林和软件自由法律中心(Software Freedom Law Center)提供法律咨询。 [2]

斯托曼在2006年2月25日自由及开源软件开发者欧洲会议的演讲上说:

在所有的改动中,最重要的四个是:

解决软件专利问题;

与其他许可证的兼容性;

源代码分区和组成的定义;

解决数位版权管理问题。 [2]

2006年,自由软件基金会针对GPL的可能的修改开始了12个月的公共咨询。

在公众咨询过程中,有962条评论被提交给第一稿草稿。 [3] 最终总共有2,636条评论被提交。

GPLv3草稿于2006年1月16日开始可用。 [4]

2007年3月28日正式启用。

2007年6月29日,自由软件基金会正式发布了GPL第3版。 [5]

但是Linux社区的领导者林纳斯托瓦兹等人决定不让Linux使用第三版授权,仍然使用版本2与版本3授权。此事曾引起理查德斯托曼的不满。

以下是对GPL条款的一个通俗易懂的总结。而GPL原文文本才是真正法律上精确的。该文本的链接可从本页底部获得。

此GPL的条款和条件适用于任何收到GPL下的作品的人(即“许可证接受人”)。任何接受这些条款和条件的许可证接受人都有修改、复制、再发行作品或作品的演绎版本的授权。许可证接受人可以对此项服务收取费用 ,反之亦然。这一点是GPL与其他禁止商业用途的自由软件许可证最大的不同。Stallman认为自由软件不应限制其商业用途,同时GPL清楚地说明了这一点。

但GPL又规定发行者不能限制GPL授予的权利。例如,这禁止对软件在单纯沉默(消极默示)式协议或合同下的发行。GPL下的发行者同时也同意在软件中使用的专利可以在其它GPL软件中使用。

GPL不会授予许可证接受人无限的权利。再发行权的授予需要许可证接受人开放软件的源代码,及所有修改。且复制件、修改版本,都必须以GPL为许可证。

这些要求就是copyleft,它的基础就是作品在法律上版权所有。由于它版权所有,许可证接受人就无权进行修改和再发行(除合理使用),除非它有一个copyleft条款。如果某人想行使通常被法律所禁止的权利,只需同意GPL的条款。相反地,如果某人发行软件违反了GPL(比如不开放源代码),他就有可能被原作者起诉。

copyleft利用版权法来达到与其相反的目的:copyleft给人不可剥夺的权利,而不是版权法所规定的诸多限制。这也是GPL被称作“被黑的版权法”的原因。

许多GPL软件发行者都把源代码与可执行程序捆绑起来。另一方式就是以物理介质(比如CD)为载体提供源代码。在实践中,许多GPL软件都是在互联网上发行的,源代码也有许多可以FTP方式得到。

copyleft只在程序再发行时发生效力。对软件的修改可以不公开或开放源代码,只要不发行。注意copyleft只对软件有效力,而对软件的输出并无效力(除非输出的是软件本身)。不过这在GPL版本3中可能会有改动。

GPL设计为一种许可证,而不是合同。在英美法系国家,许可证与合同有法律上的明确区别:合同由合同法保障效力,而GPL作为一种许可证由版权法保障效力。不过在许多采用欧陆法系的国家并无此种区别。

GPL原理简单:在版权法下,你不遵守GPL的条款和条件你就没有相应权利。而作品在没有GPL的情况下,版权法作为默认条款发生效力,而不是作品进入公有领域。

GPL文本是版权所有的,且著作权人是自由软件基金会。但是,自由软件基金会没有在GPL下发行作品的著作权(除非作者指定自由软件基金会是著作权人)。通常认为,只有著作权人才有权对许可证的违反进行起诉,但是那并不准确。法国的一个教育组织AFPA于2000年从Edu4购买课堂使用的计算机设备发现其使用GPL软件但并未附带源代码。 [6-7]

自由软件基金会允许人们使用以GPL为基础的其他许可证,但不允许演绎的许可证未经授权地使用GPL的前言。不过像这样的许可证通常与GPL不兼容。 [8]

GNU计划创立的其他许可证包括:GNU宽通用公共许可证和GNU自由文档许可证。

一个关于GPL重要的争议是,非GPL软件是否可以动态链接到GPL库。GPL对GPL作品的演绎作品在GPL下发布规定很明确。但是对于动态链接到GPL库的作品是否是演绎作品就规定得不清楚了。自由和开放源代码社区为此分成两派,自由软件基金会认为这种作品就是演绎作品,但其他专家并不同意。这个问题根本的并不关乎GPL本身,而是一个版权法如何定义演绎作品。美国联邦上诉法院第九巡回审判庭在Galoob v. Nintendo案对演绎作品尝试定义,但最终没有明确的结果。

不幸的是,许多开发者觉得这是个技术问题。但实际上这完全是法律问题。不过由于迄今为止没有案例表明有人以动态链接的方式来绕过GPL的条款或者并被起诉,动态链接的限制已经是事实上地(de facto)有效,不论它是否是法律上地(de jure)有效。

2002年,MySQL AB公司起诉Progress NuSphere侵犯版权和商标。NuSphere被指以链接代码的形式侵犯了著作权。最终此案以调解结束。在听证期间,法官“认为没有什么原因”(不管是否是动态链接)会使得GPL失去法律效力。

2003年8月,SCO Group称他们认为GPL没有法律效力,且准备就在Linux核心中使用的SCO Unix代码进行诉讼。参见SCO诉IBM。

2004年4月,在SiteCom拒绝停止发行Netfilter项目的GPL软件后,慕尼黑地区法庭据对GPL条款的侵犯判定对SiteCom进行临时性禁令(诉前停止侵犯专利权行为的措施)。同年7月,法庭确认此勒令为对SiteCom最终判决。此判决明显的印证了自由软件基金会的法律顾问伊本莫格林的预言:

“被告侵犯了原告的著作权:提供了软件netfilter/iptables的广告及下载,但没有遵守GPL的条款。可以说,如果被告有许可证许可,这些行为是完全合法的……原被告就GPL是否达成协议这是一个独立的问题。如果当事人没有同意,被告将没有复制、发行、公开‘netfilter/iptables’的权利。”

此判决十分重要,因为它是全球首次法庭确认GPL是有法律效力的。

2005年5月,Daniel Wallace于美国联邦印第安纳南区地方法院起诉自由软件基金会,因为二者对GPL是否是非法意见不一。后诉讼于3月结束,因为Wallace没有有效的反托拉斯陈述。法庭注意到“GPL鼓励,而不是反对电脑操作系统的自由竞争和发行,这直接使消费者受益。” Wallace被拒绝改变诉由,并被要求支付诉讼费用。 [9]

大多数自由软件许可证,比如MIT/X许可证、BSD许可证、LGPL,都是“GPL兼容的”,即它们的代码与GPL代码混用无冲突(但新代码则是GPL下的)。但是有某些开源软件许可证不是GPL兼容的。通常意见是开发者仅只使用GPL兼容的许可证,以免法律问题。

参见软件许可证列表以查证兼容性。

2001年微软的首席执行官史蒂夫鲍尔默称Linux为“癌症”,因为GPL的影响。微软批评者指出,微软憎恶GPL的真正原因是因为对微软的“包围、扩展、消灭”策略起了反作用。注意微软已以GPL为许可证发行了SFU(Microsoft Windows Services for UNIX)中所包含的部分组件,例如GCC。

GPL的批评者常常认为GPL是有“传染性”的“病毒”,因为GPL条款规定演绎作品也必须是GPL的。由于“演绎作品”通常被解释为包含GPL代码或动态链接到GPL库(如上)的软件,“病毒说”来源于GPL对于许可证的强制继承的要求。这正是GPL与BSD式许可证的哲学思想上的差异。GPL的支持者确信自由软件世界应具有自我保护能力和可持续发展性确保自由软件的演绎作品同样“自由”,但其他人认为自由软件应给予“所有人”最大的自由。

不同版本之间的GPL并不兼容。例如,当原始的作品以GPLv2发布,而补丁以GPLv3发布时,因为这样的原因,其编译之后产生的二进制版本不可以再行传播。因此,FSF通常会推荐以“GPLv2 or later”这样的形式来标示授权许可证,或GPLv2 + GPLv3双许可证以规避这一问题。


相关文章推荐:
GNU通用公共许可协议 | GPL | 理查德斯托曼 | GNU计划 | 软件库 | 自由软件 | Copyleft | GPL | 源代码 | 逆向工程 | GPL | BSD许可证 | 自由能 | 演绎作品 | Copyleft | BSD | 专有软件 | 自由软件 | 开源软件 | SourceForge | Red Hat Linux | GPL | Linux | GCC | 知识共享 | GNU通用公共许可协议 | GNU | GPL | GNU计划 | GDB | GCC | 源代码 | 共享库 | LGPL | 版本号 | GNU | 二进制代码 | 源代码 | GPL | 理查德斯托曼 | GPL | GPL | GNU通用公共许可证 | LGPL | GNU | GPL | 伊本莫格林 | 源代码 | 自由软件基金会 | GPL | Linux | 林纳斯托瓦兹 | 理查德斯托曼 | GPL | GPL | 源代码 | GPL | copyleft | 合理使用 | 开放源代码 | GPL | 源代码 | FTP | copyleft | 开放源代码 | GPL | 英美法系 | 欧陆法系 | 公有领域 | GPL | 著作权人 | 自由软件基金会 | 源代码 | GNU自由文档许可证 | GPL | 动态链接 | 演绎作品 | 开放源代码 | 自由软件基金会 | 美国联邦上诉法院 | GPL | 侵犯版权 | Netfilter | GPL | 慕尼黑 | 侵犯专利权 | 自由软件基金会 | 原告 | netfilter | iptables | GPL | 自由软件基金会 | 电脑操作系统 | 自由软件 | BSD许可证 | LGPL | GPL | 首席执行官 | 史蒂夫鲍尔默 | Linux | GPL | GCC | 演绎作品 | 动态链接 | BSD | GPL | 二进制 |
相关词汇词典