查看原文
其他

AGPL人话解读

卫剑钒 卫sir说 2024-04-24

AGPL人话解读

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

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

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

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

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

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

AGPL和GPL的主要差别

主要差别有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/agpl-3.0.html

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

序言中的差异

在序言部分,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的。

和GPLv3第13条的呼应

注意:下面是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就一点也不难。

作者:卫剑钒
首发:2023.11.28


继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存