执照

GNU 通用公共许可证

第 3 版,2007 年 6 月 29 日

版权所有 © 2007 自由软件基金会 <https://fsf.org/>

任何人都可以复制和分发本许可文档的逐字副本,但不允许更改。

前言

GNU 通用公共许可证是针对软件和其他类型作品的免费、copyleft 许可证。

大多数软件和其他实际作品的许可证旨在剥夺您共享和更改作品的自由。相比之下,GNU 通用公共许可证旨在保证您可以自由地共享和更改程序的所有版本,以确保它对于所有用户来说仍然是免费软件。我们,自由软件基金会,对我们的大部分软件使用 GNU 通用公共许可证;它也适用于其作者以这种方式发布的任何其他作品。您也可以将其应用到您的程序中。

当我们谈论自由软件时,我们指的是自由,而不是价格。我们的通用公共许可证旨在确保您可以自由分发免费软件的副本(如果您愿意,也可以收费)、您可以收到源代码或可以在需要时获取它、您可以更改软件或者在新的免费程序中使用它的一部分,并且您知道您可以做这些事情。

为了保护您的权利,我们需要防止其他人否认您的这些权利或要求您放弃这些权利。因此,如果您分发该软件的副本或对其进行修改,您就承担一定的责任:尊重他人自由的责任。

例如,如果您分发此类程序的副本,无论是免费还是收费,您都必须向接收者传递您所获得的相同自由。您必须确保他们也收到或可以获得源代码。您必须向他们展示这些条款,以便他们了解自己的权利。

使用 GNU GPL 的开发人员通过两个步骤保护您的权利:(1) 主张软件的版权,以及 (2) 向您提供此许可证,授予您复制、分发和/或修改该软件的合法许可。

为了保护开发者和作者,GPL 明确说明对本免费软件不提供任何保证。为了用户和作者的利益,GPL 要求修改后的版本被标记为已更改,这样他们的问题就不会被错误地归咎于先前版本的作者。

有些设备被设计为拒绝用户安装或运行其内部软件的修改版本,尽管制造商可以这样做。这与保护用户更改软件自由的目的根本不相容。这种系统性的滥用行为发生在个人使用的产品领域,而这恰恰是最不可接受的地方。因此,我们设计了这个版本的GPL来禁止这些产品的做法。如果此类问题在其他领域大量出现,我们随时准备在未来版本的 GPL 中将此规定扩展到这些领域,以保护用户的自由。

最后,每个程序都不断受到软件专利的威胁。各国不应允许专利限制通用计算机上软件的开发和使用,但在允许的情况下,我们希望避免应用到自由程序的专利可能使其实际上成为专有的特殊危险。为了防止这种情况发生,GPL 确保专利不能被用来使程序变得不自由。

复制、分发和修改的确切条款和条件如下。

条款和条件

0. 定义。

“本许可证”是指 GNU 通用公共许可证的第 3 版。

“版权”还指适用于其他类型作品(例如半导体掩模)的类似版权的法律。

“程序”是指根据本许可证许可的任何受版权保护的作品。每个被许可人都被称为“您”。 “被许可方”和“接收方”可以是个人或组织。

“修改”作品是指以需要版权许可的方式复制或改编作品的全部或部分,而不是制作精确的副本。由此产生的作品被称为早期作品的“修改版本”或“基于”早期作品的作品。

“涵盖的作品”是指未经修改的程序或基于该程序的作品。

“传播”作品是指在未经许可的情况下对其进行任何可能使您根据适用的版权法直接或间接承担侵权责任的行为,但在计算机上执行该作品或修改私人副本除外。传播包括复制、分发(无论是否修改)、向公众提供,以及在某些国家还包括其他活动。

“传播”作品是指使其他方能够制作或接收副本的任何形式的传播。仅仅通过计算机网络与用户交互,而不传输副本,并不是传达。

交互式用户界面显示“适当的法律声明”,其范围包括方便且显眼的功能,该功能 (1) 显示适当的版权声明,以及 (2) 告诉用户该作品不存在任何保证(除非在提供保证的范围内),被许可人可以根据本许可证转让作品,以及如何查看本许可证的副本。如果界面呈现用户命令或选项的列表(例如菜单),则列表中的突出项目满足此标准。

1. 源代码。

作品的“源代码”是指对其进行修改的作品的首选形式。 “目标代码”是指作品的任何非源形式。

“标准接口”是指由公认的标准机构定义的官方标准,或者对于为特定编程语言指定的接口,是指在使用该语言的开发人员中广泛使用的接口。

可执行作品的“系统库”包括除整个作品之外的任何内容,(a) 包含在打包主要组件的正常形式中,但不是该主要组件的一部分,并且 (b)仅用于启用该主要组件的工作,或实现标准接口,其实现以源代码形式向公众提供。在这种情况下,“主要组件”是指运行可执行工作的特定操作系统(如果有)的主要基本组件(内核、窗口系统等),或用于生成该工作的编译器,或用于运行它的目标代码解释器。

目标代码形式的作品的“相应源代码”是指生成、安装和(对于可执行作品)运行目标代码以及修改作品所需的所有源代码,包括控制这些活动的脚本。但是,它不包括作品的系统库,或通用工具或普遍可用的免费程序,这些程序在执行这些活动时未经修改而使用,但不属于作品的一部分。例如,对应源包括与作品的源文件关联的接口定义文件,以及作品专门设计需要的共享库和动态链接子程序的源代码,例如通过这些子程序之间的密切数据通信或控制流和工作的其他部分。

对应源不需要包含用户可以从对应源的其他部分自动重新生成的任何内容。

源代码形式的作品的对应源代码是同一作品。

2. 基本权限。

根据本许可证授予的所有权利均在程序的版权期限内授予,并且在满足规定条件的情况下不可撤销。本许可证明确确认您拥有运行未经修改的程序的无限权限。仅当输出(给定其内容)构成涵盖作品时,运行涵盖作品的输出才受本许可证的保护。本许可证承认您的合理使用权或版权法规定的其他同等权利。

只要您的许可证仍然有效,您就可以无条件地制作、运行和传播您未传播的涵盖作品。您可以将涵盖的作品转让给其他人,其唯一目的是让他们专门为您进行修改,或者为您提供运行这些作品的设施,前提是您在转让您无法控制的所有材料时遵守本许可证的条款版权。那些为您制作或运行受保护作品的人必须在您的指导和控制下专门代表您这样做,并遵守禁止他们在与您的关系之外制作您受版权保护的材料的任何副本的条款。

仅在满足下述条件的情况下才允许在任何其他情况下进行输送。不允许再许可;第 10 节使其变得不必要。

3、反规避法保护用户合法权益。

根据履行 1996 年 12 月 20 日通过的 WIPO 版权条约第 11 条规定的义务的任何适用法律,或禁止或限制规避此类措施的类似法律,任何涵盖的作品均不得被视为有效技术措施的一部分。

当您转让涵盖的作品时,您放弃任何禁止规避技术措施的法律权力,只要此类规避是通过行使本许可证下与涵盖的作品相关的权利而实现的,并且您不打算限制该作品的操作或修改。作品作为针对作品用户强制执行您或第三方禁止规避技术措施的合法权利的手段。

4. 传送逐字副本。

您可以在收到本程序源代码时通过任何媒介传送该程序源代码的逐字副本,前提是您在每个副本上显着且适当地发布适当的版权声明;完整保留所有说明本许可证和根据第 7 节添加的任何非许可条款适用于代码的声明;完整保留所有不存在任何保证的通知;并向所有接收者提供本许可证的副本以及程序。

您可以对您传送的每个副本收取任何价格或免费,并且您可以付费提供支持或保修保护。

5. 传送修改后的源版本。

您可以根据第 4 节的条款以源代码的形式传达基于本程序的作品,或根据本程序生成该作品的修改,前提是您还满足所有这些条件:

  • a) 该作品必须带有明显的通知,说明您对其进行了修改,并给出了相关日期。
  • b) 该作品必须带有显着的通知,表明它是根据本许可证以及根据第 7 节添加的任何条件发布的。此要求修改了第 4 节中的要求,以“保持所有通知完整”。
  • c) 您必须根据本许可证将整个作品作为一个整体许可给任何拥有副本的人。因此,本许可连同任何适用的第 7 条附加条款将适用于整个作品及其所有部分,无论它们如何打包。本许可证不授予以任何其他方式许可该作品的许可,但如果您单独收到该许可,则不会使该许可无效。
  • d) 如果作品具有交互式用户界面,则每个界面都必须显示适当的法律声明;但是,如果该程序具有不显示适当法律声明的交互界面,则您的工作不需要让它们这样做。

涵盖的作品与其他单独和独立的作品的汇编,这些作品本质上不是涵盖的作品的扩展,并且不会与其组合以形成更大的程序,在存储或分发的卷中或卷上如果汇编及其产生的版权不用于限制汇编用户超出单个作品允许的访问或合法权利,则称为“集合”。将涵盖的作品包含在集合中并不导致本许可证适用于集合的其他部分。

6. 传达非来源表格。

您可以根据第 4 节和第 5 节的条款以目标代码形式传达涵盖的作品,前提是您还根据本许可的条款通过以下方式之一传达机器可读的对应源代码:

  • a) 在物理产品(包括物理分发介质)中传送或包含目标代码,并附有固定在通常用于软件交换的耐用物理介质上的相应源代码。
  • b) 在实体产品(包括物流介质)中传达或包含目标代码,并附上书面报价,有效期至少三年,并且只要您为此提供备件或客户支持就有效产品模型,向拥有目标代码的任何人提供 (1) 本许可证涵盖的产品中所有软件的相应源代码的副本,位于通常用于软件交换的耐用物理介质上,价格不超过您实际执行此源传送的合理成本,或 (2) 免费从网络服务器复制相应源。
  • c) 传达目标代码的单独副本以及提供相应源代码的书面报价副本。这种替代方案仅偶尔且非商业性地允许,并且仅当您根据第 6b 款收到带有此类要约的目标代码时。
  • d) 通过提供从指定地点(免费或收费)的访问来传送目标代码,并通过同一地点以相同方式提供对相应源的同等访问,无需进一步付费。您不需要要求接收者将相应源代码与目标代码一起复制。如果复制目标代码的位置是网络服务器,则对应的源可能位于支持等效复制设施的不同服务器(由您或第三方操作)上,前提是您在目标代码旁边保留明确的指示,说明在哪里复制找到相应的来源。无论哪个服务器托管相应源,您都有义务确保它在满足这些要求所需的时间内可用。
  • e) 使用点对点传输来传达目标代码,前提是您告知其他同行,在哪里根据第 6d 款免费向公众提供作品的目标代码和相应源代码。

目标代码的可分离部分,其源代码作为系统库被排除在对应源之外,不需要包含在传送目标代码工作中。

“用户产品”是指 (1) “消费品”,即通常用于个人、家庭或家居目的的任何有形个人财产,或 (2) 为纳入住宅而设计或出售的任何物品。在确定产品是否为消费品时,应解决有疑问的情况以支持承保。对于特定用户收到的特定产品,“正常使用”是指该类产品的典型或常见使用,无论特定用户的状态或特定用户实际使用、期望或的方式如何。预计会使用该产品。产品是消费品,无论该产品是否具有实质性商业、工业或非消费者用途,除非这些用途代表该产品的唯一重要使用方式。

用户产品的“安装信息”是指从其相应源的修改版本安装和执行该用户产品中所涵盖作品的修改版本所需的任何方法、过程、授权密钥或其他信息。该信息必须足以确保修改后的目标代码的继续运行在任何情况下都不会仅仅因为进行了修改而被阻止或干扰。

如果您根据本节在用户产品中、或与用户产品一起、或专门用于用户产品中传送目标代码作品,并且该传送作为交易的一部分发生,在该交易中,用户产品的占有和使用权转让给永久或固定期限的接收者(无论交易的特征如何),根据本节传送的对应源必须附有安装信息。但如果您或任何第三方均不保留在用户产品上安装修改后的目标代码的能力(例如,作品已安装在 ROM 中),则此要求不适用。

提供安装信息的要求不包括继续为已由接收者修改或安装的作品或已修改或安装的用户产品提供支持服务、保修或更新的要求。当修改本身对网络的运行产生重大不利影响或违反网络通信的规则和协议时,对网络的访问可能会被拒绝。

根据本节传达的相应源代码和提供的安装信息必须采用公开记录的格式(并且以源代码形式向公众提供实现),并且必须不需要特殊的密码或密钥来解包、读取或复制。

7. 附加条款。

“附加许可”是通过排除其中一项或多项条件来补充本许可条款的条款。适用于整个程序的附加权限应被视为包含在本许可证中,只要它们根据适用法律有效。如果附加权限仅适用于本程序的一部分,则该部分可以在这些权限下单独使用,但整个程序仍受本许可证管辖,而不考虑附加权限。

当您传送所涵盖作品的副本时,您可以选择删除该副本或其任何部分的任何附加权限。 (在某些情况下,当您修改作品时,可能会写入附加权限,要求自行删除。)您可以对由您添加到涵盖作品中的材料设置附加权限,您已经或可以为其授予适当的版权许可。

尽管本许可证有任何其他规定,对于您添加到涵盖作品中的材料,您可以(如果得到该材料的版权所有者授权)用以下条款补充本许可证的条款:

  • a) 与本许可第 15 条和第 16 条的条款不同的免责保证或限制责任;或者
  • b) 要求在该材料或包含该材料的作品所显示的适当法律声明中保留指定的合理法律声明或作者归属;或者
  • c) 禁止歪曲该材料的来源,或要求该材料的修改版本以合理的方式标记为与原始版本不同;或者
  • d) 限制出于宣传目的使用材料的许可方或作者姓名;或者
  • e) 拒绝根据商标法授予使用某些商号、商标或服务标志的权利;或者
  • f) 要求任何传送该材料(或其修改版本)的人对该材料的许可方和作者进行赔偿,并对接收者承担合同假设,以免这些合同假设直接强加给这些许可方和作者的任何责任。

所有其他非许可性附加条款均被视为第 10 节含义内的“进一步限制”。如果您收到的程序或其任何部分包含声明其受本许可证管辖的通知以及以下条款:是进一步的限制,您可以删除该术语。如果许可文档包含进一步的限制,但允许根据本许可进行再许可或转让,则您可以添加到受该许可文档的条款管辖的涵盖工作材料中,前提是进一步的限制在此类再许可或转让后不再有效。

如果您根据本节向涵盖的作品添加条款,则必须在相关源文件中放置适用于这些文件的附加条款的声明,或指示在哪里可以找到适用条款的通知。

附加条款,无论是许可的还是非许可的,都可以以单独书面许可的形式说明,或作为例外情况说明;上述要求无论哪种方式均适用。

8. 终止。

除非本许可证明确规定,否则您不得传播或修改涵盖的作品。任何以其他方式传播或修改本许可的尝试均无效,并将自动终止您在本许可下的权利(包括根据第 11 条第三段授予的任何专利许可)。

但是,如果您停止违反本许可证的所有行为,则特定版权所有者向您授予的许可证将被恢复 (a) 临时恢复,除非版权所有者明确并最终终止您的许可证,以及 (b) 如果版权所有者未能终止您的许可证,则永久恢复在停止后 60 天内通过某种合理方式通知您违规行为。

此外,如果版权所有者通过某种合理方式通知您违规行为,则您从特定版权所有者获得的许可证将被永久恢复,这是您第一次收到该版权所有者违反本许可证(针对任何作品)的通知,并且您在收到通知后 30 天内纠正了违规行为。

终止您在本节下的权利不会终止已收到您根据本许可提供的副本或权利的各方的许可。如果您的权利已被终止且未永久恢复,则您没有资格根据第 10 条获得相同材料的新许可。

9. 拥有副本无需接受。

您无需接受本许可证即可接收或运行本程序的副本。仅由于使用点对点传输接收副本而发生的所涵盖作品的辅助传播同样不需要接受。但是,除了本许可证之外,没有其他任何内容授予您传播或修改任何涵盖的作品的权限。如果您不接受本许可,这些行为就会侵犯版权。因此,通过修改或传播涵盖的作品,即表示您接受本许可证。

10. 下游接收者的自动许可。

每次您传送涵盖的作品时,接收者都会自动从原始许可人处收到许可证,以根据本许可证运行、修改和传播该作品。您不负责强制第三方遵守本许可证。

“实体交易”是指转让一个组织的控制权或一个组织的几乎所有资产、或细分一个组织、或合并组织的交易。如果涵盖作品的传播是由实体交易产生的,则收到该作品副本的该交易的每一方也将收到该方的前任拥有或可能根据上一段授予的任何作品许可,以及占有权感兴趣的前任作品的相应来源,如果前任拥有或可以通过合理的努力获得它。

您不得对本许可证授予或确认的权利的行使施加任何进一步的限制。例如,您不得因行使本许可证授予的权利而征收许可费、特许权使用费或其他费用,并且您不得提起诉讼(包括诉讼中的交叉索赔或反索赔),指控任何专利主张受到侵犯。通过制作、使用、销售、许诺销售或导入本程序或其任何部分。

11. 专利。

“贡献者”是指根据本许可授权使用程序或程序所基于的作品的版权所有者。由此获得许可的作品称为贡献者的“贡献者版本”。

贡献者的“基本专利声明”是贡献者拥有或控制的所有专利声明,无论是已经获得的还是以后获得的,在本许可证允许的情况下,制作、使用或销售其贡献者版本都会受到某种方式的侵犯,但是不包括仅因进一步修改贡献者版本而受到侵权的声明。就本定义而言,“控制”包括以符合本许可要求的方式授予专利分许可的权利。

每个贡献者根据贡献者的基本专利声明授予您非排他性、全球性、免版税的专利许可,以制作、使用、销售、要约销售、导入和以其他方式运行、修改和传播其贡献者版本的内容。

在以下三段中,“专利许可”是指不执行专利的任何明确协议或承诺,无论其名称如何(例如明确许可实施专利或不起诉专利侵权的契约)。向一方“授予”此类专利许可意味着做出不针对该方执行专利的协议或承诺。

如果您故意依赖专利许可来传达涵盖的作品,并且任何人都无法根据本许可条款通过公开网络服务器或其他易于访问的方式免费复制该作品的相应源代码意味着,那么您必须 (1) 使相应源如此可用,或 (2) 安排剥夺您自己从该特定作品的专利许可中获得的利益,或 (3) 以与根据本许可证的要求,将专利许可证扩展到下游接收者。 “故意依赖”是指您实际知道,如果没有专利许可,您在某个国家/地区传送所涵盖的作品,或者您的接收者在某个国家/地区对所涵盖的作品的使用,将侵犯您在该国家/地区的一项或多项可识别的专利。有理由相信是有效的。

如果根据单一交易或安排或与之相关,您转让或通过促成转让来传播所涵盖的作品,并向某些接收所涵盖作品的各方授予专利许可,授权他们使用、传播、修改或传达所涵盖作品的特定副本,则您授予的专利许可将自动扩展到所涵盖作品和基于该作品的所有接收者。

如果专利许可不包括其覆盖范围、禁止行使或以不行使根据本许可特别授予的一项或多项权利为条件,则该专利许可具有“歧视性”。如果您是与从事软件分发业务的第三方达成协议的一方,您不得转让涵盖的作品,根据该协议,您根据您转让作品的活动范围向第三方付款,并且根据该协议,第三方向将从您处接收所涵盖作品的任何一方授予歧视性专利许可 (a) 与您所传送的所涵盖作品的副本(或由这些副本制作的副本)有关,或( b) 主要用于包含所涵盖作品的特定产品或汇编并与其相关,除非您在 2007 年 3 月 28 日之前达成该安排或授予专利许可。

本许可中的任何内容均不得解释为排除或限制您根据适用专利法可能获得的任何默示许可或其他侵权辩护。

12. 不放弃他人的自由。

如果向您强加的条件(无论是通过法院命令、协议还是其他方式)与本许可证的条件相抵触,它们并不能免除您遵守本许可证的条件。如果您无法转让涵盖的作品以同时满足您在本许可下的义务和任何其他相关义务,那么您可能根本无法转让它。例如,如果您同意条款规定您有义务向您向其传送程序的对象收取进一步传送使用费,那么您满足这些条款和本许可的唯一方法就是完全避免传送程序。

13. 与 GNU Affero 通用公共许可证一起使用。

尽管本许可证有任何其他规定,您仍有权将任何涵盖的作品与根据 GNU Affero 通用公共许可证第 3 版许可的作品链接或组合成单个组合作品,并传达最终的作品。本许可证的条款将继续适用于所涵盖的作品部分,但 GNU Affero 通用公共许可证第 13 节中有关通过网络交互的特殊要求将适用于此类组合。

14. 本许可证的修订版本。

自由软件基金会可能会不时发布 GNU 通用公共许可证的修订版和/或新版本。此类新版本在精神上与当前版本相似,但在解决新问题或疑虑方面可能在细节上有所不同。

每一个版本都有不同的版本号。如果程序指定 GNU 通用公共许可证“或任何更高版本”的某个编号版本适用于它,您可以选择遵循自由软件发布的该编号版本或任何更高版本的条款和条件基础。如果本程序未指定 GNU 通用公共许可证的版本号,您可以选择自由软件基金会曾经发布的任何版本。

如果本程序指定代理可以决定可以使用哪些 GNU 通用公共许可证的未来版本,则该代理接受版本的公开声明将永久授权您为本程序选择该版本。

更高版本的许可证可能会为您提供额外或不同的权限。但是,任何作者或版权所有者不会因您选择遵循更高版本而承担任何额外义务。

15. 免责声明。

在适用法律允许的范围内,对本程序不提供任何保证。除非另有书面说明,版权所有者和/或其他方“按原样”提供程序,不提供任何明示或暗示的保证,包括但不限于适销性和特定用途适用性的暗示保证。本计划的质量和性能的全部风险由您承担。如果该程序被证明有缺陷,您将承担所有必要的维修、修理或纠正的费用。

16. 责任限制。

在任何情况下,除非适用法律要求或书面同意,否则任何版权持有者或修改和/或传送上述允许的程序的任何其他方均不对您的损害承担责任,包括任何一般、特殊、附带或后果性损害因使用或无法使用本程序而造成的损害(包括但不限于数据丢失或数据不准确或由您或第三方承受的损失或本程序无法与任何其他程序一起运行),即使该持有人或其他方已被告知发生此类损害的可能性。

17. 第 15 条和第 16 条的解释。

如果上述免责声明和责任限制不能根据其条款在当地具有法律效力,则复审法院应适用最接近绝对放弃与本计划有关的所有民事责任的当地法律,除非有保证或假设责任书附有该计划的副本,但需付费。

条款和条件结束

如何将这些条款应用于您的新计划

如果您开发一个新程序,并且希望它对公众有最大的用途,那么实现这一目标的最佳方法是使其成为免费软件,每个人都可以根据这些条款重新分发和更改。

为此,请将以下通知附加到程序中。最安全的做法是将它们附加到每个源文件的开头,以最有效地声明保修的排除;每个文件至少应该有“版权”行和一个指向完整通知位置的指针。

    版权所有 (C)该程序是自由软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证(许可证的第 3 版)或(由您选择)任何更高版本的条款重新分发和/或修改它。分发此程序的目的是希望它有用,但不提供任何保证;甚至没有适销性或特定用途适用性的默示保证。有关更多详细信息,请参阅 GNU 通用公共许可证。您应该随该程序一起收到 GNU 通用公共许可证的副本。如果没有,请参阅。

另请添加有关如何通过电子邮件和纸质邮件与您联系的信息。

如果程序进行终端交互,请使其在以交互模式启动时输出如下简短通知:

    版权所有 (C)该程序不附带任何保证;有关详细信息,请输入“show w”。这是免费软件,欢迎您在一定条件下重新分发它;输入“show c”了解详细信息。

假设的命令“show w”和“show c”应该显示通用公共许可证的相应部分。当然,您的程序的命令可能会有所不同;对于 GUI 界面,您可以使用“关于框”。

如有必要,您还应该让您的雇主(如果您是程序员)或学校(如果有)签署该程序的“版权免责声明”。有关此内容以及如何应用和遵循 GNU GPL 的更多信息,请参阅<https://www.gnu.org/licenses/>。

GNU 通用公共许可证不允许将您的程序合并到专有程序中。如果您的程序是子例程库,您可能会认为允许将专有应用程序与该库链接更有用。如果您想要这样做,请使用 GNU Lesser General Public License 而不是本许可证。但首先,请阅读<https://www.gnu.org/licenses/why-not-lgpl.html>。