Privacy Policy Cookie Policy Terms and Conditions GNU通用公共许可证 - Wikipedia

GNU通用公共许可证

维基百科,自由的百科全书

GNU通用公共许可证(简称为GPL),是由自由软件基金会发行的用于计算机软件许可证。最初由理查德·斯托曼GNU计划而撰写。目前大多数的GNU程序和超过半数的自由软件使用此许可证。此许可证最新版本为“版本2”,1991年发布。GNU宽通用公共许可证(简称LGPL)是由GPL衍生出的许可证,被用于一些GNU程序库。

GNU标志
GNU标志

目录

[编辑] 自由

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

[编辑] 历史

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

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

[编辑] GPLv2

GPL2
GPL2

中立的授權。

[编辑] GPLv3

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

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

在所有的改动中,最重要的四个,我认为是:
  • 解决软件专利问题;
  • 与其他许可证的兼容性;
  • 源代码分割和组成的定义;
  • 解决数字版权管理 (数字限制管理) 问题。

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

GPLv3草稿[2]2006年1月16日开始可用。版本2与3的非官方比较对照参见:[3][4]

斯托曼预计GPLv3将在2006年7月份另一草稿起草后,在2006年10月份或2007年年初完成。

[编辑] 条款

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

[编辑] 授予的权利

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

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

[编辑] Copyleft

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

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

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

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

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

[编辑] GPL是许可证

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

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

[编辑] 版权所有人

GPL文本是版权所有的,且著作权人人是自由软件基金会。但是,自由软件基金会没有在GPL下发行作品的著作权(除非作者制定自由软件基金会是著作权人)。只有著作权人才有权对许可证的违反进行起诉。

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

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鼓励,而不是反对电脑操作系统的自由竞争和发行,这直接使消费者受益。”[4]Wallace被拒绝改变诉由,并被要求支付诉讼费用。

[编辑] 兼容性

大多数自由软件许可证,比如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的支持者确信自由软件应确保其演绎作品同样“自由”,但其他人认为自由软件应给用户最大的自由。

[编辑] 参见

您可以在维基文库中查找此百科条目的相关原始文献:

[编辑] 參考資料

  1. [1]
  2. GPLv3草稿
  3. GPL FAQ
  4. PDF

[编辑] 外部链接

軟體許可證列表

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu