GNU Affero 通用公共许可证 第 3 版

版本 3.0提交日期: 2008 年 1 月 30 日提交者:Stefano Maffulli批准日期:2008 年 3 月 3 日 董事会会议纪要 SPDX 短标识符:AGPL-3.0-only

Open Source Initiative Approved License

版权所有 (C) 2007 自由软件基金会有限公司 <http://fsf.org/>
允许任何人复制和分发此许可证文件的完整副本,但不允许更改它。

序言

GNU Affero 通用公共许可证是一个自由的、著作权强制许可的软件和其他类型作品的许可证,专门设计用于确保在网络服务器软件的情况下与社区合作。

大多数软件和其他实用作品的许可证旨在剥夺您共享和更改作品的自由。相比之下,我们的通用公共许可证旨在保证您共享和更改程序所有版本的自由——以确保它对所有用户保持自由软件。

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

使用我们通用公共许可证的开发者通过两个步骤保护您的权利:(1)声明软件的版权,以及(2)向您提供本许可证,授予您复制、分发和/或修改软件的法律许可。

捍卫所有用户自由的次要好处是,程序替代版本中进行的改进如果得到广泛使用,将可供其他开发者合并。许多自由软件开发者因由此产生的合作而感到鼓舞和激励。然而,在网络服务器上使用的软件的情况下,这种结果可能无法实现。GNU 通用公共许可证允许制作修改后的版本,并让公众在服务器上访问它,而无需向公众发布其源代码。

GNU Affero 通用公共许可证专门设计用于确保在这种情况下,修改后的源代码能够提供给社区。它要求网络服务器的运营者向该服务器的用户提供在那里运行的修改后版本的源代码。因此,在公共可访问的服务器上公开使用修改后的版本,使公众可以访问修改后版本的源代码。

一个较旧的许可证,称为 Affero 通用公共许可证,由 Affero 发布,旨在实现类似的目标。这是一个不同的许可证,不是 Affero GPL 的一个版本,但 Affero 已经发布了 Affero GPL 的新版本,该版本允许在本许可证下重新许可。

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

条款和条件

0. 定义。

“本许可证”指的是 GNU Affero 通用公共许可证的第 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 通用公共许可证一起使用。

尽管本许可证的任何其他规定,如果您修改程序,您的修改版本必须显着地向所有通过计算机网络远程与其交互的用户(如果您的版本支持此类交互)提供机会,通过从网络服务器免费提供相应源代码来接收您的版本的相应源代码,通过一些标准的或习惯性的软件复制便利方式。此相应源代码应包括根据以下段落合并的 GNU 通用公共许可证第 3 版涵盖的任何作品的相应源代码。

尽管本许可证的任何其他规定,您有权将任何受保护作品与根据 GNU 通用公共许可证第 3 版许可的作品链接或组合成单个组合作品,并传递由此产生的作品。本许可证的条款将继续适用于作为受保护作品的部分,但与之组合的作品将继续受 GNU 通用公共许可证第 3 版的管辖。

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

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

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

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

更高版本的许可证可能会给您额外的或不同的许可。但是,由于您选择遵循更高版本,因此不会对任何作者或版权持有人施加额外的义务。

15. 免责声明。

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

16. 责任限制。

在任何情况下,除非适用法律要求或另有书面约定,否则任何版权持有人或任何其他以上述允许的方式修改和/或传递程序的一方均不对您承担损害赔偿责任,包括因使用或无法使用程序而引起的任何一般、特殊、偶然或间接损害(包括但不限于数据丢失或数据变得不准确或您或第三方遭受的损失或程序未能与任何其他程序一起运行),即使该持有人或其他方已被告知可能发生此类损害。

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

如果以上提供的保证免责声明和责任限制无法根据其条款获得当地法律效力,则审查法院应适用最接近于绝对放弃与程序相关的任何民事责任的当地法律,除非保证或责任承担伴随程序的副本以换取费用。

条款和条件结束

如何将这些条款应用于您的新程序

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

为了做到这一点,请将以下声明附加到程序中。最安全的做法是将它们附加到每个源文件的开头,以最有效地声明免责声明;并且每个文件都应至少包含“版权”行以及指向完整声明位置的指针。

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://gnu.ac.cn/licenses/>.

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

如果您的软件可以通过计算机网络与用户远程交互,您还应确保它为用户提供获取其源代码的方式。 例如,如果您的程序是一个 Web 应用程序,则其界面可以显示一个“源代码”链接,引导用户访问代码存档。 您可以通过多种方式提供源代码,不同的解决方案更适合不同的程序;有关具体要求,请参见第 13 节。

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