开发人员通常认为软件许可要求是法律部门的明确责任。有这么多可用的开源组件和许可要求的含义,每个开发人员都应该至少对这些许可是什么以及每个许可如何影响他们的软件有一个大致的了解。

考虑到项目可能遇到的下游影响,每个团队都需要审查其软件的所有许可要求。在发布任何更新或修改的软件之前,组织需要进行完整的许可证合规性审计,在项目的每个阶段都这样做可以避免将来出现问题。其中一个应该研究的许可证条款是GNU Affero 通用公共许可证(AGPL)。

标题什么是AGPL?

在讨论 AGPL 许可证之前,了解它的来源很重要。1988 年,理查德·斯托曼 (Richard Stallman) 编写了他的通用公共许可证 (GPL),旨在赋予创作者始终保持其软件开源的权利。GPL 目前处于其第三版 (GPLv3) 中,因为之前的文本存在一些问题,造成了一些漏洞。

作为GPLv3的一部分,自由软件基金会 (FSF) 提供了两种额外类型的许可证,即较小的通用公共许可证(LGPLv3) 和 Affero 通用公共许可证 (AGPLv3)。通用公共许可证的 AGPL 版本旨在对使用它的所有软件强制执行完整的版权。

AGPL 许可证的优点和缺点是什么?

在标准 GPL 许可中,互惠条款在开发人员发布软件时生效。Copyleft 原则旨在将所有源代码提供给更广泛的开源社区。使用 AGPL,软件团队可以确保对代码库的所有更改都可供公众使用,即使在服务器端应用程序上也是如此。

确定 AGPL 3.0、LGPL 3.0 还是标准 GPL 3.0 是否最适合团队取决于软件的最终意图。Copyleft 许可证非常适合希望确保所有后续更改都可供社区使用的开发人员,而像MIT许可证这样的许可许可证使他们在未来可以更自由地进行修改。

AGPL 的一些优点包括:

  • 迫使团队在项目早期考虑他们的许可理念并接受他们的决定。
  • 确保开源社区开发的任何代码片段保持可用,并防止其他人重新打包和销售开源软件。

AGPL 的缺点是:

  • 由于开源软件包迫使所有其他代码成为GPL软件,因此使一些团队放弃了开源软件包。
  • 一些人认为这是过度的,因为任何使用AGPL的依赖包中的任何模块都会使所有其他软件受到类似的限制。
  • 取消了团队在未来使软件成为专有软件的选择。

公司可以使用 AGPL 软件吗?

尽管任何人都可以使用AGPL V3许可证,但它在组织中并不流行。对AGPL软件的任何后续版本施加的限制使得在存在竞争性商业利益时难以采用。
大多数公司更喜欢允许他们自由使用开源组件的使用许可证,并在未来将其软件版本转化为商业产品,而不是使用像AGPL这样的版权保留许可证。

与使用 AGPL 等 Copyleft 许可证相比,大多数公司更喜欢使用允许他们自由使用开源组件并在未来仍将其软件版本转变为商业产品的许可许可证。

什么是 copyleft 许可证?

Copyleft许可证执行了Stallman在其GNU宣言中首先支持的原则。在20世纪60年代,开发人员公开共享所有帮助他人的源代码是很常见的,这创造了一种社区和协作的感觉。到了20世纪80年代,随着组织开始在其源代码上应用版权,这一趋势不再受欢迎。Copyleft与版权相反,它强制执行使用、修改和重新分发任何具有Copyleft许可证(如GPL)的源代码的权利。

可以将 AGPL 与闭源应用程序一起使用吗?

AGPL V3许可证是一个强大的copyleft许可证,它在从任何以前的工作派生的所有组件上强制实施开源。它弥补了服务器端的漏洞,即如果软件不发布,源代码就不可获得。AGPL将用户定义为访问服务器端应用程序(如果它是面向公众的)的任何人。对于驻留在组织网络内的应用程序,AGPL不会触发源代码的发布。

AGPLv3 许可证是否与 GPLv3 兼容?

将GPLv3许可证下的作品与AGPL软件相结合的用户可以保留GPLv3许可证对未修改作品的权利。GPLv3工作的任何修改版本都必须使用AGPLv3许可证。

AGPL由于其激进的开源许可,目前只在不到1%的开源项目中使用。

AGPL使用案例分析

材料来源于 跳转

假设您正在使用 AGPL 库 iText 创建 PDF 文档。iText 是一个允许人们创建 PDF 文档(通常)的库,您正在使用 iText jar 创建 PDF 发票(一个非常具体的用例)。通过这样做,您创建了一个派生作品。如果您删除 iText,您的代码将不再有意义:它不再创建发票。如果您将 iText 替换为其他内容(例如 PdfBox),它也不再起作用。

您需要公开自己的源代码吗?

这取决于。

假设您正在批量使用您的应用程序。每天,您都会创建前一天的所有发票,并将它们存储在服务器上。想要查看发票的人可以上网并从该服务器获取发票。

在这种情况下,您可以在不启动 AGPL 的情况下使用 iText,因为您以完全隔离的方式使用该库:您根本没有分发它,因此也没有要分发的源代码。

您不会批量创建发票,而是即时创建它们:例如,每当用户购买东西时,他都会触发创建 PDF 的流程。

该过程涉及要执行的 iText 代码。如果 iText 是 GPL,则不必分发代码,因为您不是分发副本,但由于 iText 是 AGPL,copyleft 适用:

Copyleft 允许每个收到作品副本的人复制、改编或分发该作品,只要任何由此 产生的副本或改编作品 也受相同的 Copyleft 许可方案的约束。

您的 衍生作品 (例如创建 PDF 发票)是对 iText(创建 PDF)的改编,并且您的作品受相同的 copyleft 许可证的约束

在法庭上,法官将查看用户的参与情况。

  • 如果 用户没有以任何方式触发受版权保护的软件 ,则您不必透露您作品的源代码。
  • 如果 用户触发执行受版权保护的软件 ,则 适用许可证 。在 AGPL 的情况下,您必须向用户披露您的源代码。

这不是我的观点,这是不同的律师教给我的,例如(Crealaw、Stibbe、Portelio)。

例如,参见 CreaLaw 的以下幻灯片:软件受版权法保护。

如果用户满足特定条件,GPLv3 会授予用户权限:

  • 仅仅运行 GPLv3 软件并不会“激活”这些条件:
  • 将 GPLv3 软件集成到应用程序中、分发……只有在 GPLv3 被接受的情况下才能完成。

换句话说: copyleft 启动了,即使应用程序在网络上运行,AGPL 也会启动 copyleft

在这种情况下,您必须在 (A)GPLv3 下分发您的应用程序:这是 copyleft 概念所固有的。

假设我写的不是真的,那么 AGPL 软件就有可能成为闭源软件的一部分。这与 FSF 的精神背道而驰。

原文链接:
https://snyk.io/learn/agpl-license/ GPL 协议: 即通用性公开 许可证 (General Public License,简称 GPL )。 GPL 同其它的自由软件 许可证 一样, 许可 社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 GPL 还规定:只要这种修改文本在整体上或者其某个部分来源于遵循 GPL 的程序,该修改文本的 整体就必须按照 GPL 流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制。因此,一项遵循 GPL 流通 的程序不能 一、 开源 许可证 的分类 开源 许可证 分为2种类型:宽松型和著佐权型。1、宽松型(Permissive):该类 许可证 往往只要求被 许可 方保留原作品的版权信息,对用户施加的限制较少,衍生软件可以成为私有软件,如Apache、MIT、BSD系列 许可证 。由于这类 许可证 允许衍生软件闭源,对商业化非常友好,因此广受欢迎。2、著佐权型(copyleft):也称为互惠型、强保护型,要求对软件的修改和扩展,必须按照获得该... 即通用性公开 许可证 (General Public License,简称 GPL )。 GPL 同其它的自由软件 许可证 一样, 许可 社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 GPL 还规定:只要这种修改文本在整体上或者其某个部分来源于遵循 GPL 的程序,该修改文本的 整体就必须按照 GPL 流通,不 GPL :GNU通用公共 许可证 (GNU General Public License)       A GPL :The GNU Affero General Public License GPL v3协议,意味着修改和使用其代码都需要 开源 ,但是这是建立在软件分发的基础上,如果使用代码作为服务提供,而不分发软件,则不需要 开源 。这实际上是 GPL 协议本身的缺陷。 a gpl v3 GNU Affero通用公共 许可证 版本3 (A GPL v3)是与 GPL v3几乎相同的copyleft 许可证 。 两种 许可证 具有相同的版权保留范围,但在一个重要方面存在实质性差异。 A GPL v3的第13节规定了 GPL v2或 GPL v3中不存在的其他条件: 尽管本 许可 协议有其他规定,但如果您修改本程序,则修改后的版本必须显着地为所有通过计算机网络与它进行远程交互的用户(如果您的版本支持这... A GPL GPL 的一个补充, 在 GPL 的基础上加了一些限制。 A GPL 这个协议的制定是为了避免一个 GPL /L GPL 协议中的漏洞,称之为 Web Service Loopwhole。 这主要是由于 GPL 是针对传统的软件分发模式的商业模式(以微软为代表), 如果你使用的 GPL 的代码作为 基础完成你自己的软件,如果你要分发... oca所有模块都是a gpl ,依赖这些模块的模块都必须a gpl 。gooderp早期版本为了支持列表excel导出,其core模块依赖了oca的模块,所以整个模块依赖树都必须遵守a gpl 协议。 a gpl 允许非 开源 软件远程调用的。只是不允许基于gooderp封装成另一个产品非 开源 的发布。抵制a gpl 的想干啥大家都清楚。 mangodb就是a gpl ,并没有要求用到mangodb的软件和服务都向最终用户 开源 。 只是你别把mangodb换个lo...   自由软件基金会发布了一种新的开放源代码软件 许可 。新 许可 面向其代码被用作软件服务化(SaaS)应用的开发人员。新 许可 将确保对开放源代码SaaS应用代码的修改会反馈给自由软件社区。 新 许可 名称为GNU Affero General Public License version 3(GNU A GPL v3),基于6月份刚刚完成的 GPL v3。GNU GPL 是自由软件运动的核心。采用GNU... GNU Affero 通用公共 许可证 版本 3(A GPL v3)是与 GPL v3 几乎相同的左版copyleft 许可证 。两个 许可证 具有相同的公共版权范围,但在一个重要方面有重大差异。 A GPL v3 的第 13 节规定了 GPL v2 或 GPL v3 中不存在的附加条件: 在本 许可证 的其它条款之外,如果你修改了程序,你必须把你修改的版本,给你的那些使用计算机网络远程(如果你的版本支持此类交互)与之交互的用户,明确提供一个通过一些标准或者常规的复制手段,从网络服务器上免费获得与你所修改的版本相匹配的源码的机会。 a gpl 许可证 The advent of open-source changed the entire software industry, for once and for ever. But the control on who can do what with open-sourced code, has been a challenge, and is still a challenge.... Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 每个人都被允许复制和分发本 许可证 文件的逐字副本,但不允许进行更