AGPL-3.0(GNU Affero 通用公共许可证 v3.0)

约 29 分钟阅读 阅读

AGPL v3.0 许可证的开源豁免仅限于公司内部直签员工自用。由于公司混编了第三方外包人员,在法律主体上已被视作向外部第三方提供服务;一旦我们修改了该项目的核心代码,将直接触发强制开源机制,导致公司相关的商业源代码面临被迫向全社会彻底公开的重大合规风险。

AGPL-3.0

GNU AFFERO通用公共许可证 第三版,2007年11月19日

版权所有 (C) 2007 Free Software Foundation, Inc. https://fsf.org/ 允许每个人复制和分发本许可证文档的完整副本,但不得修改它。

                       序言

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

大多数软件的许可证旨在剥夺您分享和修改软件的自由。相反,我们的通用公共许可证旨在保证您分享和修改程序所有版本的自由——确保它对所有用户来说都是自由软件。

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

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

捍卫所有用户自由的另一个好处是,程序的替代版本中所做的改进(如果得到广泛使用)可供其他开发者采用。许多自由软件的开发者因由此产生的合作而感到振奋和鼓励。然而,对于网络服务器上使用的软件,可能无法产生这种结果。GNU通用公共许可证允许制作修改版本,并允许公众在服务器上访问它,而无需向公众发布其源代码。

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

一个较早的许可证,名为Affero通用公共许可证,由Affero发布,旨在实现类似的目标。这是一个不同的许可证,不是Affero GPL的一个版本,但Affero已经发布了Affero GPL的新版本,允许根据本许可证进行再许可。

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

                  条款和条件

0. 定义。

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

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

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

“修改”作品是指以需要版权许可的方式(制作完整副本除外)复制或改编作品的全部或部分。所产生的作品称为先前作品的“修改版本”或“基于”先前作品的作品。

“覆盖作品”指要么是未修改的本程序,要么是基于本程序的作品。

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

“传递”作品是指任何使其他方能够制作或接收副本的传播。仅仅通过计算机网络与用户互动,没有传输副本,不属于传递。

交互式用户界面显示“适当的法律声明”,前提是它包含一个方便且显眼可见的功能,该功能(1)显示适当的版权声明,以及(2)告诉用户作品没有保修(除非提供保修),被许可人可以根据本许可证传递作品,以及如何查看本许可证的副本。如果界面显示用户命令或选项列表,例如菜单,那么列表中突出显示的项目符合此标准。

  1. 源代码。

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

“标准接口”是指要么是由公认的标准机构定义的官方标准,要么是针对特定编程语言指定的接口,是该语言开发者中广泛使用的接口。

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

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

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

源代码形式作品的对应源代码就是该作品本身。

  1. 基本许可。

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

您可以制造、运行和传播您不传递的覆盖作品,只要您的许可证仍然有效,就没有条件。您可以将覆盖作品传递给他人,唯一目的是让他们专门为您进行修改,或为您提供运行这些作品的设施,前提是您遵守本许可证中关于传递您不拥有版权的所有材料的规定。那些为您制造或运行覆盖作品的人必须完全代表您,在您的指导和控制下,按照禁止他们在与您的关系之外制作您的受版权保护材料的任何副本的条款进行。

在任何其他情况下的传递仅允许在下面规定的条件下进行。不允许再许可;第10节使其变得不必要。

  1. 保护用户的法律权利不受反规避法律的影响。

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

当您传递覆盖作品时,您放弃任何禁止规避技术措施的法律权力,只要这种规避是通过就覆盖作品行使本许可证下的权利来实现的,并且您放弃任何意图限制操作或修改作品,以此作为针对作品用户强制执行您或第三方禁止规避技术措施的法律权利的手段。

  1. 传递完整副本。

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

您可以对您传递的每个副本收取任何费用或不收费,并且您可以提供支持或保修保护以换取费用。

  1. 传递修改后的源代码版本。

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

  • a) 作品必须带有显眼的声明,说明您修改了它,并给出相关日期。
  • b) 作品必须带有显眼的声明,说明它是在本许可证和根据第7节添加的任何条件下发布的。此要求修改了第4节中“完整保留所有声明”的要求。
  • c) 您必须将整个作品作为整体,根据本许可证许可给任何获得副本的人。因此,本许可证以及任何适用的第7节附加条款将适用于整个作品及其所有部分,无论它们是如何打包的。本许可证不允许以任何其他方式许可作品,但如果您单独获得了此类许可,则不会使其无效。
  • d) 如果作品具有交互式用户界面,每个界面都必须显示适当的法律声明;但是,如果本程序具有不显示适当法律声明的交互式界面,则您的作品不需要让它们显示。

将覆盖作品与其他单独且独立的作品(这些作品本质上不是覆盖作品的扩展,也没有与覆盖作品组合成一个更大的程序)一起编译在存储或分发媒介的卷上或卷中,如果编译及其产生的版权不用于限制编译用户的访问或法律权利(超出单个作品允许的范围),则称为“聚合”。将覆盖作品包含在聚合中不会导致本许可证适用于聚合的其他部分。

  1. 传递非源代码形式。

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

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

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

“用户产品”是 (1) “消费品”,指通常用于个人、家庭或家居目的的任何有形个人财产,或 (2) 任何设计或销售用于纳入住宅的物品。在确定产品是否为消费品时,有疑问的情况应以覆盖为准。对于特定用户收到的特定产品,“通常使用”指该类产品的典型或常见使用方式,无论特定用户的状况或特定用户实际使用、期望或被期望使用该产品的方式如何。无论产品是否具有重大的商业、工业或非消费者用途,它都是消费品,除非这些用途代表了该产品唯一的重要使用方式。

用户产品的“安装信息”是指从修改后的对应源代码在用户产品中安装和执行修改后的覆盖作品版本所需的任何方法、程序、授权密钥或其他信息。这些信息必须足以确保修改后的目标代码的持续功能绝不会仅仅因为进行了修改而受阻或受到干扰。

如果您在本节下传递目标代码作品,其目的是在用户产品中使用,或与其一起使用,或专门为其使用,并且传递是作为交易的一部分进行的,在该交易中,用户产品的占有权和使用权永久或在固定期限内(无论交易如何描述)转让给接收者,则根据本节传递的对应源代码必须附带安装信息。但是,如果您或任何第三方都不能在用户产品上安装修改后的目标代码(例如,作品已安装在ROM中),则此要求不适用。

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

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

  1. 附加条款。

“附加权限”是通过对本许可证一个或多个条件的例外来补充本许可证条款的条款。适用于整个本程序的附加权限,在适用法律下有效的前提下,应被视为包含在本许可证中。如果附加权限仅适用于本程序的一部分,则该部分可以在这些权限下单独使用,但整个本程序仍受本许可证约束,而不考虑附加权限。

当您传递覆盖作品的副本时,您可以选择从该副本或其任何部分中删除任何附加权限。(附加权限可能被编写为在您修改作品时在某些情况下要求将其删除。)您可以对您添加到覆盖作品中的材料施加附加权限,您拥有或可以授予适当的版权许可。

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

  • a) 以不同于本许可证第15和第16条的方式免除保修或限制责任;或
  • b) 要求保留该材料中或包含该材料的作品所显示的适当法律声明中的特定合理法律声明或作者归属;或
  • c) 禁止歪曲该材料的来源,或要求以合理方式标记此类材料的修改版本以区别于原始版本;或
  • d) 限制将许可方或作者的姓名用于宣传目的;或
  • e) 拒绝根据商标法授予使用某些商品名、商标或服务标志的权利;或
  • f) 要求任何传递材料(或其修改版本)的人,如果通过合同对接收者承担了责任,则必须对材料的许可方和作者进行赔偿,以防这些合同假设直接对这些许可方和作者施加的任何责任。

所有其他非许可性的附加条款均被视为第10节含义内的“进一步限制”。如果您收到的本程序或其任何部分包含声明,说明它受本许可证以及属于进一步限制的条款的约束,您可以删除该条款。如果许可证文件包含进一步限制,但允许根据本许可证进行再许可或传递,您可以向覆盖作品添加受该许可证文件条款约束的材料,前提是该进一步限制在此类再许可或传递后不再有效。

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

附加条款,无论是许可性的还是非许可性的,都可以以单独编写的许可证的形式陈述,或者作为例外陈述;上述要求无论哪种方式都适用。

  1. 终止。

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

但是,如果您停止所有违反本许可证的行为,则您从特定版权持有人处获得的许可将 (a) 暂时恢复,除非且直到版权持有人明确且最终终止您的许可,以及 (b) 永久恢复,如果版权未能在停止后60天内通过合理方式通知您违规行为。

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

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

  1. 拥有副本无需接受许可。

您不需要接受本许可证即可接收或运行本程序的副本。仅仅因使用点对点传输接收副本而导致的覆盖作品的附带传播同样不需要接受。但是,除本许可证外,没有任何东西授予您传播或修改任何覆盖作品的权限。如果您不接受本许可证,这些行为就侵犯了版权。因此,通过修改或传播覆盖作品,您表示您接受本许可证以这样做。

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

每次您传递覆盖作品时,接收者会自动从原始许可方处获得一个许可,允许其根据本许可证运行、修改和传播该作品。您不负责强制第三方遵守本许可证。

“实体交易”是指转让组织的控制权,或组织几乎所有资产,或分立组织,或合并组织的交易。如果覆盖作品的传播源于实体交易,则该交易的每一方(如果收到作品副本)也将获得该方的前任利益相关者根据前一段拥有或可能给予的关于该作品的任何许可,以及从该前任利益相关者处获得该作品对应源代码的权利(如果前任利益相关者拥有或可以通过合理努力获得)。

您不得对根据本许可证授予或确认的权利的行使施加任何进一步的限制。例如,您不得对行使本许可证授予的权利收取许可费、版税或其他费用,也不得提起声称因制造、使用、销售、要约销售或进口本程序或其任何部分而侵犯任何专利主张的诉讼(包括诉讼中的交叉主张或反诉)。

  1. 专利。

“贡献者”是授权根据本许可证使用本程序或本程序所基于的作品的版权持有人。这样许可的作品称为贡献者的“贡献者版本”。

贡献者的“必要专利主张”是贡献者拥有或控制的所有专利主张,无论是已经获得的还是以后获得的,这些主张会以本许可证允许的方式(制造、使用或销售其贡献者版本)被侵犯,但不包括仅因贡献者版本的进一步修改而被侵犯的主张。为本定义的目的,“控制”包括以符合本许可证要求的方式授予专利再许可的权利。

每个贡献者根据其必要专利主张授予您非排他的、全球范围的、免版税的专利许可,以制造、使用、销售、要约销售、进口以及运行、修改和传播其贡献者版本的内容。

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

如果您传递覆盖作品,明知依赖于专利许可,并且该作品的对应源代码无法通过可公开访问的网络服务器或其他易于访问的方式,在本许可证条款下免费供任何人复制,那么您必须 (1) 使对应源代码如此可用,或 (2) 安排使自己丧失对该特定作品的专利许可的利益,或 (3) 以符合本许可证要求的方式,安排将专利许可扩展到下游接收者。“明知依赖”意味着您实际知道,如果没有该专利许可,您在该国传递覆盖作品,或者您的接收者在该国使用覆盖作品,将侵犯您有理由认为有效的一项或多项在该国可识别的专利。

如果根据或与单笔交易或安排相关,您传递或通过促使传递来传播覆盖作品,并向接收覆盖作品的某些方授予专利许可,授权他们使用、传播、修改或传递覆盖作品的特定副本,那么您授予的专利许可将自动扩展到所有接收覆盖作品和基于其的作品的接收者。

如果专利许可在其覆盖范围内不包括、禁止行使或依赖于不行使本许可证明确授予的一项或多项权利,则该专利许可具有“歧视性”。如果您是与第三方(从事分发软件业务)达成的安排的一方,根据该安排,您根据传递作品的活动程度向第三方付款,并且根据该安排,第三方向任何将从您处接收覆盖作品的方授予歧视性专利许可 (a) 与您传递的覆盖作品的副本(或从这些副本制作的副本)相关,或 (b) 主要针对包含覆盖作品的特定产品或编译,则您不得传递覆盖作品,除非您是在2007年3月28日之前达成该安排或该专利许可被授予。

本许可证中的任何内容均不得解释为排除或限制您在适用专利法下可能拥有的任何默示许可或其他对侵权的抗辩。

  1. 不放弃他人的自由。

如果对您施加的条件(无论是通过法院命令、协议还是其他方式)与本许可证的条件相矛盾,它们不能免除您遵守本许可证的条件。如果您无法同时满足本许可证下的义务和任何其他相关义务,那么您根本不能传递覆盖作品。例如,如果您同意条款,要求您为从您那里接收本程序的人进一步传递而收取版税,那么您同时满足这些条款和本许可证的唯一方法是完全避免传递本程序。

  1. 远程网络交互;与GNU通用公共许可证一起使用。

尽管本许可证有任何其他规定,如果您修改本程序,您的修改版本必须显着地为所有通过计算机网络远程与其交互的用户(如果您的版本支持此类交互)提供机会,通过某些标准或通常的促进软件复制的手段,从网络服务器免费提供对应源代码的访问,以接收您版本的对应源代码。此对应源代码应包括根据以下段落合并的、受GNU通用公共许可证第三版覆盖的任何作品的对应源代码。

尽管本许可证有任何其他规定,您有权将任何覆盖作品与根据GNU通用公共许可证第三版许可的作品链接或组合成一个单一的组合作品,并传递结果作品。本许可证的条款将继续适用于作为覆盖作品的部分,但与其组合的作品将继续受GNU通用公共许可证第三版的约束。

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

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

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

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

较新的许可证版本可能会授予您额外或不同的权限。但是,您选择遵循较新版本不会对任何作者或版权持有人施加任何额外义务。

  1. 免责声明。

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

  1. 责任限制。

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

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

如果上述免责声明和责任限制不能根据其条款产生本地法律效力,复审法院应适用最接近绝对免除与本程序相关的所有民事责任的地方性法律,除非随附本程序的副本附带有保修或责任承担以换取费用。

                条款和条件结束

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

如果您开发了一个新程序,并且希望它被公众尽可能广泛地使用,那么实现此目标的最佳方法是使其成为自由软件,每个人都可以根据这些条款重新分发和更改它。

为此,请将以下声明附加到程序上。最安全的方式是将它们附加到每个源文件的开头,以最有效地声明排除保修;并且每个文件至少应有“版权”行以及指向完整声明所在位置的指针。

<一行,提供程序的名称和其功能的简要说明。>
版权所有 (C) <年份> <作者姓名>

本程序是自由软件:您可以根据自由软件基金会发布的GNU Affero通用公共许可证的条款重新分发和/或修改它,要么是许可证的第三版,要么(由您选择)任何更高版本。

本程序的分发是希望它有用,但没有任何担保;甚至没有对适销性或特定用途适用性的暗示担保。有关详细信息,请参阅GNU Affero通用公共许可证。

您应该已经随本程序收到了一份GNU Affero通用公共许可证的副本。如果没有,请参阅 <https://www.gnu.org/licenses/>。

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

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

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

参考资料

相关文章