GNU通用公共许可协议

第二版,1991年6月
版权所有(C)1989, 1991 自由软件基金会
51 Franklin Street, Fifth Floor, Boston, MA 02110‐1301, USA
任何人皆可复制和发布本协议的完整副本,但不得修改

【译者声明】

  This is an unofficial translation of the GNU General Public License into Chinese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help Chinese speakers understand the GNU GPL better.
  这是GNU通用公共许可协议的一份非官方中文翻译,并非自由软件基金会所发表,不适用于使用GNU通用公共许可协议发布的软件的法律声明——只有GNU通用公共许可协议英文原版才具有法律效力。不过我们希望本翻译能够帮助中文读者更好地理解GNU通用公共许可协议。

本译作采用CC BY-ND 3.0国际许可协议发布。

【引言】

  就多数软件而言,许可协议被设计用于剥夺你分享和修改软件的自由。相反,GNU通用公共许可协议力图保障你分享和修改自由软件的权利——确保自由软件对其用户来说是自由的。本GNU通用公共许可协议用于自由软件基金会的大多数软件(自由软件基金会的有些软件受GNU宽松通用公共许可协议保护),以及那些作者声明使用此协议的软件。你也可以将本协议用于你的程序。
  所谓自由软件,强调自由,而非免费。本GNU通用公共许可协议设计用于确保你享有分发自由软件的自由(你可以为此服务收费),确保你可以在需要的时候获得这些软件的源码,确保你可以修改这些软件或者在新的自由软件中复用其中某些片段,并且确保你在这方面享有知情权。
  为保障你的权益,我们需要作一些限定:禁止任何人否认你的上述权利,或者要求你放弃它们。当你分发或修改这些软件时,这种限定就变成你的义务。如果你分发这种程序的副本,无论收费还是免费,你必须给予与你同等的权利。你还要确保他们也能收到源码并了解他们的权利。
  我们通过两步保障你的权益:其一,赋予软件著作权;其二,通过本协议使你可以合法地复制、分发和修改该软件。同时,为了保护每一位作者以及我们自己,我们向所有人指明如下一点:自由软件并不提供品质担保。如果软件被修改并继续传播,我们希望接收者知道获得的不是原版,后来引入的任何问题不应该影响原作者的声誉。
  最后,自由软件还持续受到软件专利的威胁。我们希望避免再发布者以个人名义取得专利,即将程序据为己有。为防止此类情况发生,我们需要澄清:专利必须为保障每个人的自由使用而申请,否则不应该存在。

  下文是关于复制、分发和修改的严谨描述和实施条件。

【关于复制、分发和修改的术语和条件】

  〇、但凡版权持有人在他的程序或其他作品中声明该作品可在GNU通用公共许可协议约束下发布,本协议便对之适用。下文中所说的“程式”指任何程序或作品,而“程式的派生作品”指该程式或者版权法认定的派生作品,即全部或部分包含了该程式的作品,无论是原样包含或做了修改,乃至翻译成了其他语言(后文中“修改”涵盖翻译)。每个许可获得者称作“你”。
  除复制、分发和修改外的行为超出了本协议的约束范围。执行程式的行为并不受限,程式的输出一般不在约束之内,除非其内容构成了本程式的派生作品(并非单纯地作为本程式的运行结果),判别取决于此程式的具体用途。

  一、只要你做到为每一个副本醒目而恰当地发布版权与免责声明,原封不动地保留本协议及免责声明,并将本协议连同程式发予接收者,你可以通过任何媒介完整地复制和分发你收到的本程式的源码。
  你可以就传输副本的具体行为收费,也可以选择提供品质担保以换取收入。

  二、你可以修改你的程式副本的任意部分,以构成本程式的派生作品,并在满足上述条款及以下三点要求的前提下复制和分发该修改版:
  a)你必须在你修改了的文件中醒目地声明你的修改及标注修改日期。
  b)你必须使你分发或发布的作品,部分或全部包含本程式或其派生作品,允许第三方在本协议约束下使用,并不得就授权收费。
  c)如果修改后的程序通常在运行时通过交互方式获取命令,你应该让它进入交互模式时显示简要的版权声明和免责声明(抑或者你的品质担保声明),以及告诉用户可以在本协议约束下再发布该程序并提供查阅本协议的途径。(例外:如果本程式有交互式执行却通常不显示任何声明,则对你的派生作品也不作此要求。)
  上述要求对修改后的作品整体有效。如果该作品中某些可划定的部分并非派生自本程式,并可以被合理地看作是从中分离的独立作品,则当你将它们分开发布时,这种独立部分可以不受本协议约束。但是,在你将这些部分和你修改后的作品一起发布时,整个套件将受本协议约束,本协议对其他许可获得者的授权将延伸至整个作品,即套件的每一部分,不管是谁写的。

  三、你可以在上述条款约束下以目标码或可执行文件的形式复制和分发本程式(或条款二所说的派生作品),不过你还要满足以下要求之一:
  a)附上相应的源码。源码要求完整且机器可读,并在条款一、二的约束下通过常用的软件交换媒介分发。
  b)附上至少三年有效的书面报价表以供第三方付费获取相应的源码。源码要求完整且机器可读,并在条款一、二的约束下通过常用的软件交换媒介分发,费用不得超过实际的分发成本。
  c)附上你所收到的获取源码途径的信息。(该选择只适用于非商业分发,并且你只收到目标码或可执行文件以及满足b项要求的报价单的情况下。)
  作品的源码指其可修改的首选形式。对可执行的作品而言,完整的源码指其包含的所有模块的源码、相关接口定义文档以及编译和安装所需脚本。然而,有一种例外情况,分发的源码不必包含那些通常会随会目标运行环境的操作系统的主要部件(编译器、内核等)发布的内容(以源码或二进制形式),除非这些部件自身是本程式的一部分。
  如果以指定特定复制地点的形式分发可执行文件或目标码,则在同一地点提供对等源码复制途径也算一种源码分发手段,即便不强求第三方在复制目标码的同时复制源码。

  四、在本协议授权之外,你不能复制、修改、再授权或分发本程式。任何用其他方法复制、修改、再授权或分发本程式的企图都是无效的,并使你从本协议获得的权利自动终止。然而从你那按本协议获得副本和许可的人,只要继续遵守协议,他们获得的许可并不会终止。

  五、你没有在此协议上签字,也不是非要接受它不可。但是,此外没人可授权你去修改或分发本程式或其派生作品。此种行为为法律所不容,除非你接受本协议。因此,修改或发布本程式(或本程式的任何派生作品),就表明你已经接受本协议,即接受它的所有关于复制、分发和修改本程式及其派生的条款。

  六、每当你再发布本程式(或本程式的任何派生作品),接收者自动从原始权利人获得本许可,以复制、分发和修改本程式。你不可以对他们获得的权利加以进一步的限制,你也没有要求第三方遵守该协议的义务。

  七、如果因为法庭裁决或专利侵权指控或其他原因(不限于专利事宜),你面临与本协议条款冲突的条件(来自于法庭要求、协议或其他),那也不能成为你违背本协议的理由。倘若你不能在发布本程式时同时满足本协议和其他文件的要求,你就不能发布本程式。例如某专利授权不允许通过你直接或间接地获得本程式的人在不付授权费的前提下再发布本程式,唯一能同时满足它和本协议要求的做法便是不发布本程式。
  如果本条款在特定环境下无效或无法实施,本条款的其他部分仍适用且本条款整体在其他环境下仍适用。
  本条款的目的不在于诱使你去侵犯专利或其他产权要求,抑或者对之抗辩。本条款的根本目的是保护自由软件发布系统的完整性,而这要通过应用公共许可证实现。借助同样出自该系统的应用程序,许多人已经对在该系统上发布的软件作出了广泛而慷慨的贡献。作者/捐赠人有权确定是否通过其他渠道发布软件,被授权人不得干预其选择。
  本条款旨在彻底阐明其余条款所带来的当然结果。

  八、如果由于专利或受版权保护的接口的问题,分发或使用本程式在某些国家受到限制,原始版权持有人在其程式中使用本协议时可以附加明确的区域分发限制以排除那些国家,以支持此外地区的分发。在此情况下,这种限制条款将纳入协议之中。

  九、自由软件联盟可能会不定时发布GNU通用公共许可协议的修订版或新版。新版将秉承当前版本的精神,但对问题或事项的描述细节不尽相同。
  每一版都会有不同的版本号,如果本程式指定其使用的协议版本以及“任何更新的版本”,你可以选择遵守该版本或者任何更新的版本的条款。如果本程式没有指定协议版本,你可以选用自由软件联盟发布的任意版本。

  十、如果你希望将本程式的某部分并入采取不同发布条件的自由软件中,应书面请求其作者的许可。对于自由软件联盟持有版权的软件,还应向联盟提出书面请求,我们有时会作例外处理。在处理这种事情时我们秉承两大宗旨:保持所有自由软件派生作品的自由属性,以及在整体上促进软件的共享和复用。

不提供品质担保

  十一、本程式为免费授权,故在适用法律范围内不提供品质担保。除非另作书面声明,版权持有人及其他程式提供者“概”不提供任何显式或隐式的品质担保,品质担保所指包括而不仅限于有经济价值和适合特定用途的保证。全部风险,如程式的质量和性能问题,皆由你承担。若程式出现缺陷,你将承担所有必要的修复和更正服务的费用。

  十二、除非适用法律或书面协议要求,任何版权持有人或本程式按本协议可能存在的第三方修改和再发布者,都不对你的损失负有责任,包括由于使用或者不能使用本程式造成的任何一般的、特殊的、偶发的或重大的损失(包括而不仅限于数据丢失、数据失真、你或第三方的后续损失、其他程序无法与本程序协同运作),即使那些人声称会对此负责。

【附录:如何将上述条款应用到你的新程序】

  如果你开发了一个新程序,并希望它能最大限度地为公众所使用,最好的办法是将其作为自由软件,以使每个人都能在本协议约束下对其再发布及修改。
  为此,请在附上以下声明。最安全的做法是将其附在每份源码的开头,以便于最有效地传递免责信息。同时,每个文件至少包含一处“版权”声明和一个协议全文的链接。

  用一行来标明程序名及其作用。

  版权所有(C)年份 姓名
  本程序为自由软件,在自由软件联盟发布的GNU通用公共许可协议的约束下,你可以对其进行再发布及修改。协议版本为第二版或(随你)更新的版本。
  我们希望发布的这款程序有用,但不保证,甚至不保证它有经济价值和适合特定用途。详情参见GNU通用公共许可协议。
  你理当已收到一份GNU通用公共许可协议的副本,如果没有,请致信自由软件基金会:51 Franklin Street, Fifth Floor, Boston, MA 02110‐1301, USA

  同时提供你的电子邮件地址或传统的邮件联系方式。

  如果该程序是交互式的,让它在交互模式下输出类似下面的一段声明:

  Gnomovision 第69版,版权所有(C)年份 姓名
  Gnomovision从未提供品质担保,输入'show w'可查看详情。这是款自由软件,欢迎你在满足一定条件后对其再发布,输入'show c'可查看详情。

  例子中的命令'show w'和'show c'应用于显示GNU通用公共许可协议相应的部分。当然你也可以因地制宜地选用别的命令乃至点击操作。

  如果你之上存在雇主(你是码农)或校方,你还应当让他们在必要时为此程序签署放弃版权声明。以下有例子:

  Yoyodyne公司,在此放弃对James Hacker所写的'Gnomovision'程序所享有的版权利益。
  Ty Coon 签字,1989年4月1日
  Ty Coon 副总裁

  本GNU通用公共许可协议不允许把你的程序并入私有程序。如果你的程序是某种库,且你想允许它被私有程序链接而使之更有用,请使用GNU较宽松通用公共许可协议。



翻译:阮坤良<peterrk@pku.edu.cn>
校对:汪蔚<soulww@163.com>,和丹<hedan1229@163.com>

译注:
[1] distribute既译作分发也译作发布,前者强调转发,后者强调公布。
[2] license既译作协议也译作许可,前者强调此文本,后者强调内容。
[3] 首字母大写的Program译作程式,首字母小写的program译作程序。

参考:
[繁体中文译本] https://www.gnu.org/licenses/old-licenses/gpl-2.0-translations.html