开源社KAIYUANSHE

以下文章来源于卫sir说 ,作者卫剑钒

[

卫sir说 .

说人话。

](#)

AGPL 使用量很大,尤其在云原生普及的今天。

很多人对 AGPL 不甚了了,本文用人话翻译和解读一下。

首先,你需要了解,AGPL 和 GPL 在正文中只有一条(第13条)有差别。

其次,本文说的 GPL 和 AGPL 都是指 V3 版本,即 GPLv3 和 AGPLv3。

最后,如果你完全不懂 GPL,估计会看不懂本文,如果需要,可对照看看 GPL。

BTW:我以前写过一个 GPLv3 的人话版:人话解读 GPLv3

主要差别有3块:

1、AGPL 在序言部分,介绍了为什么要有 AGPL。

2、AGPL 在正文部分,说明了程序作为网络服务时,要提供源码;AGPL 程序可以和 GPL 程序组合,但互不侵犯。

3、AGPL 在附录部分,强调了提供源码的方式。

AGPLv3 的全名是 GNU Affero General Public License v3.0,发布于:19 November 2007,全文见:

https://www.gnu.org/licenses/...

GPLv3 的全名是 GNU General Public License v3.0,发布于:29 June 2007,全文见:https://www.gnu.org/licenses/...

在序言部分,AGPL 强调了下面这几段( GPL 中没有这些)。

The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.

人话翻译:

AGPL 是一个自由的、copyleft 的许可证,可用于软件及其他类型作品,尤其是设计用来保障网络服务器软件的社区合作。

人话解读:

在网络服务这种应用场景下,我们也应该发挥开源的源码回馈效能,所以我们专门设计了 AGPL。(而 GPL 解决不了这个问题)

A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.

人话翻译:

捍卫所有用户自由还有一个好处:如果程序某个版本所做的改进流传开来,就可以让其他开发者采用。由此产生的合作,使自由软件的开发者们感到振奋和鼓舞。但是,对于运行在网络服务器上的软件,可能无法产生这种效果。GPL 允许修改程序并把它跑在服务器上让公众访问,而无需将源代码公开。

人话解读:

我们当初没想到,程序还可以这么玩(当服务,不发布),公开使用源码还可以不回馈,现在我们要专门解决这个问题。

The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.

人话翻译:

AGPL 正是为了解决这种问题而专门设计的,如果网络服务用了修改后的程序源码,网络服务的运营者要向用户提供修改后的程序源码。也就是说,在公开可访问的服务器上,公开地运行修改版本,那就需要向公众公开修改后的源码。

人话解读:

我们设计 AGPL 的目的就是,即便做为网络服务,你也要把你的源码贡献出来,对,主要是你修改的那部分,因为这里面可能有一些改良,会让他人受益,会让用户更自由。

An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.

人话翻译:

Affero 公司早先发布过一个许可证,名为 Affero GPL,目的是实现类似的目标。本许可证是另一个许可证,并非 Affero GPL 的某个版本;不过 Affero 公司已发布了 Affero GPL 的新版本,它允许以本许可证再许可(也就是再次发布程序时,可以用 AGPL)。

人话解读:

AGPL 是受之前 Affero GPL 启发而做出的,这两个许可证并不是一回事。

整个正文中,只有第13条有区别。(除了全文中许可证名称的差异)

AGPL 里面的第13条:

13.Remote Network Interaction; Use with the GNU General Public License.

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.

人话翻译:

AGPL 第13条:用于远程网络交互的情形;和 GPL 作品组合的情形。

不管本许可证的其他条款,但如果你修改了本程序(注意本程序使用 AGPL 发布的),又让用户通过计算机网络访问本程序,那你要让用户能够便利地下载到本程序源码,而且要免费。这个源码,要包含受 GPLv3 保护的作品的源码(如果你用了 GPLv3 保护的作品),如下面这段所述。

不管本许可证的其他条款,你可以将本作品与受 GPLv3 保护的作品进行链接或组合,生产一个组合作品,并可发布之。本许可证对本作品(及其衍生)的部分生效, GPLv3 那部分的作品(及其衍生)仍然受 GPLv3 的保护。

人话解读:

这条说了两件事:

第一件事说,AGPL 的作品,如果是是通过网络服务和用户交互的,那要给出源码。

第二件事说,AGPL 作品可以和 GPLv3 作品链接或组合在一起,但仍然是各许可证保护各自的作品,谁也不传染谁,只是作为网络服务和用户交互时,这两部分的源码都要给出。这种做法还是想尽量互不影响,免得 AGPL 吞并了 GPL(其实就是避免 AGPL 部分传染 GPL 那部分)。所以,即便 GPL 那部分为了组合做了一些修改,那也是 GPL 的,而不是 AGPL 的。

注意:下面是 GPL 的第13条:

13.Use with the GNU Affero General Public License.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

人话翻译:

GPL 第13条,和 AGPL 一起使用的情况。

不用管其他条款,你可以将本作品(GPL 保护的作品)和 AGPL 保护的作品进行链接或组合,形成一个组合作品,并发布它。本许可证的条款将继续适用于本作品(及其衍生作品),但 AGPL 第13条中关于作为网络服务时的特殊要求将适用于组合后的作品(也即,这个组合作品的源码要公开)。

人话解读:

其实,写 GPLv3(发布于2007年6月)的时候,Stallman 也在同步写 AGPLv3(发布于2007年11月),这条就是为了和 AGPL 的第13条作呼应,说的基本是一个事,没有冲突和矛盾。

在附录“如何将上述条款应用到你的新程序”中,AGPL 多了这么一句:

If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a Source link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.

人话翻译:

如果你的软件通过计算机网络和用户远程交互,你应该确保提供了让用户获得源码的方式。比如,如果该程序是一个 web 应用,在界面上应该有一个“源码”的链接,以便用户下载。当然,有多种方式可以提供源码,不同程序有其不同的适宜方式。具体要求见第13条。

人话解读:

总之,大方提供源码,不要遮遮掩掩,躲躲藏藏。

现在你知道了吧,AGPL 只是在 GPL 上加了一个特别要求而已,如果你了解 GPL,AGPL 就一点也不难。

作者丨卫剑钒

编辑丨邓子宜

相关阅读 | Related Reading

【深入探讨人工智能】网络研讨系列介绍

COSCon 的台前幕后:KCC@上海 12.2 活动总结

开源社简介

开源社(英文名称为“KAIYUANSHE”)成立于 2014 年,是由志愿贡献于开源事业的个人志愿者,依 “贡献、共识、共治” 原则所组成的开源社区。开源社始终维持 “厂商中立、公益、非营利” 的理念,以 “立足中国、贡献全球,推动开源成为新时代的生活方式” 为愿景,以 “开源治理、国际接轨、社区发展、项目孵化” 为使命,旨在共创健康可持续发展的开源生态体系。

开源社积极与支持开源的社区、高校、企业以及政府相关单位紧密合作,同时也是全球开源协议认证组织 - OSI 在中国的首个成员。

自2016年起连续举办中国开源年会(COSCon),持续发布《中国开源年度报告》,联合发起了“中国开源先锋榜”、“中国开源码力榜”等,在海内外产生了广泛的影响力。


开源社
1 声望1 粉丝

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联...