GPLv3快速指南
作者Brett Smith
原文(英文)网址:http://www.gnu.org/licenses/quick-guide-gplv3.html
经过一年半的公众咨询,成千上万的评论,和4个草案之后,第3版GNUGPL(通用公共许可证)GPLv3终于在2007年6月29日发行了。虽然从许可证的第一个草案出现开始就已经有很多的讨论了,但却没有多少人在谈论它给开发者带来的好处。我们发布本指南以填补这一空白。开始,我们将对自由软件、著佐权(又称公共版权、非盈利版权、反版权等,是和版权copyright完全不同的授权)和GPL的目标进行简要的回顾。然后,我们将回顾许可证的重要变化,看看它们如何推进我们的目标,并使开发者受益。
GPL的基本原则
任何人都不应受到他所使用的软件的限制。每一个用户都应该拥有四大自由:
n 为任何目的使用该软件的自由
n 修改软件以满足自身需要的自由
n 与朋友和邻居共享软件的自由
n 共享更改的自由
当一个程序为用户提供上面所说的全部自由,我们称之为自由软件。
软件开发者可以在GNU GPL的条款下发布软件。当他们这样做的时候,他们发布的软件也就成了自由软件,不管是谁修改或者分发该程序,它都保持这个状态。我们称之为著佐权:软件受版权保护,但是我们不像专有软件那样利用这些权利来限制用户,而是使用这些权利以确保每一个用户都自由。
我们更新GPL以保护其著佐权不受法律或者技术发展的损害。最新版本将保护用户免受最新的三个威胁:
n Tivoization:一些公司已经设计了各种各样可以运行GPL许可的软件的设备,然后操纵硬件,使它们可以改变软件的运行,但是你不能。如果一个设备可以运行任意软件,它就是一个通用计算机,它的所有者应该有权控制它做什么。当设备阻挠你这么做时,我们称之为Tivoization。
n 法律禁止自由软件:立法,如《数字千年版权法》和《欧盟版权指令》认为编写或共享打破DRM(Digital Restrictions Mismanagement,数字限制管理不善,见下文)的软件是违法的。法律不应干预GPL授予您的权利。
n 歧视性专利交易:微软最近开始告诉人们,他们不会起诉自由软件用户的专有软件的专利侵权,只要你支付一定的费用给软件销售商以获得一个特权。本质上,微软正在试图从自由软件用户那里征收版税,这妨碍了用户的自由。没有一家公司应该这么做。
第三版在让用户可以更简单的使用和理解许可证上进行了一些改进。但是即便有这些变化,GPLv3仍不是一个彻底的新许可证,而是之前版本的演化。虽然大量文本改变了,但是大部分是用来简单的阐明GPLv2的内容。记住这些,让我们回顾GPLv3中的主要变化,再谈谈它们是如何为用户和开发者改善许可证的。
抵消法律禁止自由软件——但也不禁止DRM
你也许熟悉DVD和其他媒体上的数字限制管理不善。你可能还熟悉使你编写自己的工具而忽视这些限制成为违法行为的法律,如《数字千年版权法》和《欧盟版权指令》。没有人应该阻止你编写任何你想写的代码,而GPLv3保护你的这一权利。使用GPL许可的代码编写实现DRM的软件总是可能的。然而,如果有人使用GPLv3保护的代码这么做,第三章说这样的系统将不能视为一个有效的技术“保护”措施。这意味着,如果你打破了DRM,你就可以自由的分发自己的软件,这样做不会是你受到《数字千年版权法》或者类似法律的威胁。像往常一样,GNU GPL不限制人们在软件里做什么;它只阻止人们对其他人的限制。
保护你修改的权利
减少用户的自由,Tivoization(类似数字权限管理,译者按)是一个危险的尝试:如果你的电脑都不让你修改软件,那么修改软件的权利将变得毫无意义。GPLv3通过要求分发商提供在设备上安装修改过的软件所需要的所有信息和数据,来阻止Tivoization。这也许是一个简单的指令集,或者包括特殊数据,如加密密钥或关于如何绕过硬件完整性检测的信息。这将取决于硬件的设计——但是无论你需要什么信息,你都应当能够获得它。
这项要求是限制在一定的范围内的。分发商仍然可以为任何目的使用加密密钥,如果你需要在设备上修改GPL许可的软件,分发商只需披露你需要的密钥给你就可以了。GNU项目本身使用GnuPG(GNU Privacy Guard,GNU隐私守卫)以保证其FTP站点上的软件完整性,这些措施都有益于用户的。GPLv3不阻止用户使用加密技术;我们不希望用户这么做。它只阻止人们拿走许可证授予你的权利——不管是专利法、技术或者其他任何手段。
有力的保护专利的威胁
在GPLv2发布这17年来,软件专利的面貌发生了很大的变化,自由软件许可证也为解决这些问题制定了新的战略。GPLv3也反映出了这些变化。每当有人传播他们编写或者修改的被GPLv3覆盖的软件,他们必须行使GPL授予他们的权利,提供任何需要的专利许可给每一个接收者。此外,如果任何许可证持有人试图使用一个专利诉讼以阻止其他用户行使这些权利,他们的许可证将被终止。
对用户和开发者而言,这意味着他们可以使用GPLv3覆盖的软件而不必担心以后会有一个绝望的出资人会试图以专利侵权起诉他们。有了这些变化,GPLv3给用户提供了比其他任何自由软件许可证更多的专利进攻方面的防护,
阐明许可证兼容性的
如果你发现了一些代码,并希望将它纳入到一个GPL许可的项目中,GPLv2规定这些代码的许可证不能有任何GPLv2中没有的限制。这要满足这个条件,我们的许可证就是GPL兼容的。
然而,一些许可证的要求并不是真正的限制,因为这些要求都太容易遵守了。然而,一些证照的要求,并没有真正的限制,因为他们是如此容易遵守。 例如,有些许可证声明它们不授予你使用某些商标的权限。这不是一个真正的附加限制:如果该条款不存在,你依然没有使用该商标的许可。我们也总是说这样的许可证是GPLv2兼容的。
现在,GPLv3明确地允许用户使用有这样要求的代码。这些新条款有助于消除关于什么样的许可证是GPL兼容的、为什么是和你能用GPL兼容的代码做什么的误解。
新的兼容许可证
除了阐明许可证是GPL兼容的规则外,GPLv3也以新的方式和一些其他许可证兼容。阿帕奇许可证2.0就是一个典型的例子。许多优秀的、拥有强大社区的自由软件在本许可证下是可用的。我们希望GPLv3的这个变化能够促进自由软件社区内更多的合作和交流。下面的图表有助于说明一些不同的自由软件许可证之间的通用兼容性关系:
箭头从一个许可证指向另一个许可证表示第一个许可证是被第二个许可证兼容的。即便顺着多个箭头下去,这个规则也成立。例如:ISC许可证是GPLv3兼容的。如果程序允许你选择“任何后来的版本”的GPL,那么对大多数在这个许可证下发布的软件而言GPLv2是GPLv3兼容的。这个图表不全面(需要更完整的GPLv2兼容和GPLv3兼容的许可证列表请看我们许可证页面),但显然阐明了GPLv3兼容GPLv2的一切,还有一些其他的许可证。
GNU Affero GPL也已经被纳入。原始的Affero GPL被设计用来确保所有网络应用程序用户可以获得其源代码。GNU Affero GPL第三版扩大的目标:它适用于所有的网络互动软件,所以它将很好的工作在一些程序例如游戏服务器上。附加条款也将更加灵活,所以如果某人在一个没有网络接口的应用程序中使用AGPL许可的源代码,他只需要提供符合GPL要求的源代码。通过使这两个许可证兼容,网络互动软件开发者将能够加强其著佐权,同时在可用的GPL许可的成熟代码上构建程序。
更多的方式为开发人员提供资源
GPL的一个基本要求就是当你分发目标代码给用户的时候,你必须同时提供他们获取源代码的途径。GPLv2提供了几种方法来完成这个工作,GPLv3保持这些支持并给与一些说明。当你在网络上传播目标代码时,它也为你提供了新的方法以发放源代码。例如,当你把目标代码放到一个网站或者FTP服务器上,你可以简单地提供一些说明告诉来访者如何从第三方服务器获取源代码。由于这一新的选择,对一些只在大的主体上进行很少修改的小分发商而言,这个要去更容易实现。
新的许可证也使得通过BitTorrent传播目标代码变得容易许多。首先,下载或者做种的人对许可证规定的传播软件的要求享有豁免权。其次,启动下载源的人可以通过简单地告诉下载用户在哪个公共网络服务器上可以获得它来提供源代码。这些新选择有助于在提供源代码上保持GPL与社区标准一直,让用户不再难以获得源代码。
分发减源:新系统库例外
GPL的两个版本都要求您提供构建软件需要的所有源代码,包括支持库、编译脚本等。它们为系统程序库划定了界线:您不需要提供操作系统核心组件的源代码,例如C库。
GPLv3调整了系统程序库的定义,使其包括可能不是操作系统直接提供的软件,但是可以合理的预期所有该软件的用户都拥有许可证。例如,它现在仍包括通用程序设计语言的标准库,诸如Python和Ruby。
新的定义还清楚的表明,您可以将GPL许可的软件和跟GPL不兼容的系统库结合,例如OpenSolaris的C库,并将它们一起分发。这些变化将会使想要提供这种组合软件给用户的自由软件分销商们生活得更加轻松。
一个全球性的许可证
GPLv2谈论了大量“分发”的规则——当您和某个人分享程序的时候,您就是在分发这个程序。许可证从来没有说过分发是什么,因为这个术语是从美国版权法借来的。我们预计法官要看那里的定义。然而,后来我们发现其他国家的版权法使用了相同的术语,却给了不同的含义。正因如此,这些国家的法官可能会与美国法官不同,给予GPLv2不同的解析。
GPLv3使用一个新的术语,“传播”,并为这个术语提供了定义。“传播”与我们为“分发”拟议的定义具有相同的意思,但是现在许可证里给出了直接的解释,它应该可以让世界各地的人们很容易的理解我们的意思了。许可证中其他较小的变化也将有助于确保它被全世界一贯地采用。
当规则被打破:平滑过渡到遵守
根据GPLv2,如果您以任何方式违反许可证,您的权利将自动并永久丢失。要回许可证的唯一方法就是向版权持有人提出申请。虽然对违例的强有力防卫是有价值的,但这一政策可能在一些人不小心使用了相抵触的规则时带来大量让人头痛的事。向所有版权持有人提出申请以正式恢复许可证既艰难又昂贵:一个典型的GNU/Linux发行需要起草成千上万的工作。
GPLv3为好的行为提供了一个缓解:如果您违反了许可证,一旦您停止违规行为,你将重新获得您的权利,除非有版权持有人在60天内联系您。在您收到这样的通知后,如果您是第一次违规,并在30天内纠正违规行为,您将可以完全恢复自己的权利。否则,您需要逐个与联系您的版权持有人协商发行问题,您的权利将在这些工作完成之后恢复。
遵守GPL已经成为自由软件基金条例实验室和其他团体在全世界强制执行许可证的首要任务。这些变化确保遵守是实施者的首要任务,并鼓励违规者遵守。
最新和最大的变化
其中一些变化似乎对你没那么重要。这没关系。每个项目各不不同,需要许可证给予不同的保护。但是无疑一定的改进将帮助您和您的工作。
而作为一个整体,所有这些升级代表了更多的东西:我们提出一个更好的著佐权。它更多地保护用户的自由,但它也将为自由软件社区中的合作提供更多的授权。更新许可证只是工作的一部分:为了让人们得到它提供的好处,开发者需要为他们的项目使用GPLv3。通过在新的许可证下发布自己的软件,用户、其他开发者、分发商甚至律师,所有接触它的人都将受益。我们希望您能在您下一个分发的软件中使用GPLv3。
如果您想了解更多关于升级您的项目到GPLv3,自由软件基金会条例实验室会很高兴为您提供帮助。在我们的网站上,您可以找到许可证的许多基本使用指令,以及一个常见问题地址,指向人们共同关心的问题和解决方案。如果您的情况复杂的多,请与我们联系,我们将尽全力帮助您度过难关。总之,我们可以帮助保护所有用户的自由。