跳转到主要内容
Chinese, Simplified

顾名思义,GNU Affero通用公共许可证(AGPL)是GNU GPL系列的一部分,它还包括LGPL许可证、GPL v2和GPL v3。所有这些开源许可证都是Richard Stallman的GNU项目的一部分,这是一个免费的开源操作系统,并伴随着软件共享和修改的理念。

与GPL一样,AGPL也是一个强大的copyleft许可证。最初的Afelo GPL是基于GPL V2并在2002发布的,而不是由Richard Stallman,而是由Henry Poole为他的软件启动,Afro,Inc.然而,Stalman的自由软件基金会发布了自己的版本,这一次基于GPL V3,在2007,保持“AFEROO”的名义作为对这一历史的点头。新版本包含了在AGPL和GNU GPL v3之间建立兼容性的措辞。如今,版本3是使用的主要版本。

AGPL主要适用于通过网络提供服务的软件,与其他强版权许可证一样,它有严格的要求。继续阅读,了解更多关于GNU AGPL、其条款和用户义务,以及在OSS社区中的受欢迎程度。

AGPL许可:概述

AGPL许可背后的想法是解决“应用程序服务提供商(ASP)漏洞”,亨利·普尔(Henry Poole)和史泰尔曼(Stallman)都认为GPL中存在这个漏洞。ASP漏洞意味着软件即服务(SaaS)提供商和主要通过网络运行的其他软件不受GPL许可证条款的约束(或可能会提出豁免)。这是因为他们并没有按照传统意义上的技术“分发”它。

为了弥补这一漏洞,GNU AGPL明确表示,网络使用被视为软件的分发。具体而言,许可证规定:

“GNU Affero通用公共许可证[…]要求网络服务器的操作员向该服务器的用户提供运行在该服务器上的修改版本的源代码。因此,在可公开访问的服务器上公开使用修改过的版本,可以让公众访问修改过的版本的源代码。”

假设你创建了一个软件程序。另一个开发人员获取并修改它,然后通过软件即服务模式向付费客户提供对该修改的访问。在GPLv3下,这种修改基本上将成为专有的,因为它不是技术上分发的。然而,在AGPL下,开发人员需要提供修改后的源代码供下载。

AGPL许可证要求

AGPL许可证基于GPL v3。它有同样的要求,加上关于通过网络远程访问的声明。

AGPL许可代码的用户必须:

  • 包括一份完整的许可证文本和版权声明原件
  • 说明对原始软件所做的所有重大更改
  • 发布基于许可软件的任何作品时,请提供源代码
  • 如果该程序被用作消费类设备的一部分,则包括更新和重新安装软件所需的任何安装信息

这些要求与GPL v3的要求相同,不同的是,当代码被修改并通过网络远程提供时,需要共享源代码。AGPL增加了一项要求:

  • 如果通过网络让用户可以访问修改后的软件,则必须让这些用户可以使用源代码。

使用许可代码

AGPL许可证允许许可代码的用户:

  • 将代码用于商业目的:与GPL v2和GPL v3一样,AGPL对在商业销售的软件中使用代码不施加任何条件。
  • 修改代码:用户可以更改或返工代码,但如果他们以任何公开方式(包括通过服务器)发布这些更改/修改,他们必须在AGPL许可下以源代码形式发布这些更新。
  • 分发代码的副本或修改/更新版本:只要这些修改也在GNU AGPL下发布,它们就可以分发给其他人。
  • 地方保修:原始代码的分销商可以对许可软件提供他们自己的保修。

AGPL许可证不允许代码的再许可;也就是说,您不能对代码进行返工或添加,然后将这些更改公开。原始代码的“开源性”遵循任何更新或添加。GPL v2和GPL v3都包含此规定。

专利权

与GPLv3(但不同于GPLv2)一样,AGPL许可包括明确授予专利权。本质上,这意味着任何创建或贡献原始许可代码的人都“放弃”了他们在该许可下对软件的任何后续重用的专利权。

兼容性

AGPL在技术上与其他许可证不兼容,包括GPLv3。然而,正如GNU上解释的那样。org,开发者可以将GPLv3和AGPL下许可的独立源文件和/或模块组合到一个程序中。

AGPL许可证的使用

由于AGPL对许可代码的重用有很大的限制,开发人员在选择该许可之前,必须仔细考虑他们希望其他人如何与他们的软件交互。他们是否希望自己的代码被其他公司广泛采用?他们是否希望对代码进行任何更改,以保持其最纯粹意义上的公开性或“开源”?

GNU项目建议,任何想要构建通常在网络上运行的软件的程序员都要考虑AGPL。然而,做出这个决定确实有潜在的缺点。在选择这个特定的许可证时,开发人员基本上是确保未来的版本不能成为专有版本,这可能不会使他们的代码在商业软件企业中流行。(例如,谷歌有一项严格的政策,禁止使用AGPL许可代码。)而且,随着SaaS作为一种商业模式的日益流行,该开发人员可能正在将自己从一大片市场中剔除。

以前使用AGPL的一家知名公司是流行的NoSQL数据库程序MongoDB。2018年10月16日之前发布的所有版本均根据GNU AGPL获得许可。然而,在那之后发布的所有内容,该公司都转而使用自己的服务器端公共许可证。

AGPL许可证的未来

总的来说,AGPL并不是比较流行的开源软件许可证之一。目前,只有不到1%的开源项目使用它。不过,目前尚不清楚什么趋势可能会推动AGPL更受欢迎。其他GNU许可证仍然是开源软件生态系统的关键部分,因此AGPL不太可能很快消失。

原文:https://fossa.com/blog/open-source-software-licenses-101-agpl-license/

本文:https://jiagoushi.pro/node/1823

Article
知识星球
 
微信公众号
 
视频号