1.更换软件协议为AGPL

2.切换项目名称为Hua.Todo
This commit is contained in:
ShaoHua
2026-04-06 22:06:30 +08:00
parent 40a91e39b6
commit 758f6772c6
147 changed files with 1203 additions and 644 deletions
+229
View File
@@ -0,0 +1,229 @@
GNU AFFERO 通用公共许可证
第 3 版,2007 年 11 月 19 日
版权所有 © 2007 自由软件基金会公司 <https://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 条的解释.
如果上述免责声明和责任限制无法根据其条款产生当地法律效力,审查法院应适用最接近于绝对放弃与程序相关的所有民事责任的当地法律,除非收费随附程序的副本提供保证或承担责任。
条款与条件结束
如何将这些条款应用于您的新程序
如果您开发了一个新程序,并且您希望它能给公众带来最大的用处,实现这一点的最好方法是使其成为自由软件,每个人都可以在这些条款下重新分发和更改它。
为此,请在程序中附上以下通知。最安全的方法是将它们附在每个源文件的开头,以最有效地陈述保证的排除;每个文件至少应该有“版权”行和指向完整通知位置的指针。
<给出程序名称及其用途的简要说明的一行内容。>
版权所有 (C) <年份> <作者姓名>
本程序是自由软件:您可以根据自由软件基金会发布的 GNU Affero 通用公共许可证的条款(许可证的第 3 版,或(由您选择)任何更高版本)重新分发和/或修改它。
发布本程序的目的是希望它有用,但不提供任何保证;甚至没有适销性或特定用途适用性的暗示保证。有关详细信息,请参阅 GNU Affero 通用公共许可证。
您应该已经随本程序收到了一份 GNU Affero 通用公共许可证的副本。如果没有,请参阅 <https://www.gnu.org/licenses/>。
还请添加如何通过电子邮件和信函与您联系的信息。
如果您的软件可以通过计算机网络与用户进行远程交互,您还应该确保它为用户提供了一种获取其源代码的方法。例如,如果您的程序是一个 Web 应用程序,其界面可以显示一个指向代码存档的“源代码”链接。提供源代码的方法有很多,不同的程序会有不同的解决方案;具体要求见第 13 条。
如果有必要,您还应该让您的雇主(如果您是程序员)或学校(如果有的话)为程序签署一份“版权免责声明”。有关这方面的更多信息,以及如何应用和遵循 GNU AGPL,请参阅 <https://www.gnu.org/licenses/>。
---
*注:这是 GNU Affero 通用公共许可证 (AGPL) 的非官方中文翻译。它不是由自由软件基金会发布的,也不具有法律效力。只有英文原文才具有法律效力。*