AGPL-您可以做什么和不能做什么


188

AGPL是一个相当新的许可证,旨在通过网络进行GPL。但是,由于不是律师,并且实际上没有阅读完整的许可证,所以我无法理解您可以自由地做什么以及使用AGPL不能做什么。

我对本文的不确定性来自有关MongoDB(AGPL)的帖子,甚至来自以下评论。

如果我们遵循这些评论,事实证明,只要不修改库,就可以将AGPL库与开源的商业服务器端软件一起使用。是这样吗 还是在使用AGPL许可的库时必须分发整个应用程序?

MongoDB的情况是它使用Apache许可证作为客户端代码,这带来了另一个问题。如果您使用AGPL软件,但将其部署为与闭源商业软件不同的应用程序,会发生什么?例如,以iText-它是一个AGPL库:

  • 如果使用它并对其进行修改,是否必须开源整个应用程序,或者仅重新分发iText中的更改?
  • 如果您使用它并且不对其进行修改,是否必须开源整个应用程序?
  • 如果将iText包装在另一个应用程序中,而该iText是作为一个单独的进程启动的,但又从主应用程序中使用它,则应该开源所有内容,还是仅包装应用程序?(包装器应用程序将是基于HTTP的API,它将接收pdf文件,并返回将iText作为JSON使用的结果)。可以用来规避AGPL许可证吗?

注意:问题是关于AGPLv3


Answers:


40

AGPL基于GPL,而不是LGPL。它不包含任何链接异常,并且任何使用AGPL代码的作品(链接或以其他方式,是否经过修改)也必须获得AGPL许可并分发。

使用单独的过程可以规避(A)GPL,但这是模糊的基础。如果您的最终应用程序依赖于外部流程,因此如果没有它,它将无法正常运行,那么它将被视为AGPL软件的衍生作品。

在大多数人在封闭源代码程序中使用单独的GPL应用程序的情况下,他们将GPL工作作为可选扩展或作为其他某些代码段的替代后端等提供。

(A)GPL作品不能与最终应用程序一起分发,即使是单独的应用程序(例如,将它们放入相同的存档或存储库中)也可以,尽管可以提供有关在何处找到GPL作品以及如何使用它的说明是很好的您的应用。


9
尽管您说的是正确的,但如果在网络上以交互方式使用代码,则GPL和AGPL之间的唯一区别就是要求提供代码。但是,涵盖此内容的条款指出,该条款仅适用于作品的“修改版本”,“修改版本”定义为需要版权的任何使用。仅运行未修改的版本不会创建“修改的版本”,因为版权仅涵盖发行。
Erik Funkenbusch 2011年

8
1.“链接或其他方式”是错误的。2.“将其视为衍生作品”是错误的。3.我认为“在大多数情况下”是错误的。4.“(A)GPL作品不能与最终应用程序一起分发,即使是单独的应用程序也完全错误”,例如Debian分发具有各种不同许可的内容,但并非所有许可都与GPL兼容。专有系统也可以做到这一点。从“问题已经出现”开始,查看本页的第3部分:ghostscript.com/doc/current/Commprod.htm请 不要阅读其余内容,它试图欺骗您购买它。
山姆·沃特金斯

由于授权,Debian实际上有3个独立的存储库。mainDFSG兼容程序包组成,该程序包不依赖此区域外的软件进行操作。这些是Debian发行版中唯一考虑的软件包contrib软件包包含兼容DFSG的软件,但主要不具有依赖项(可能是为非Debian打包的)。non-free包含不符合DFSG的软件
凯文·布雷

回复:“不能同时分发”-您能指出支持该许可证的特定许可证吗?我完全理解为什么您不希望将AGPL许可的代码发布到消费产品中,但这是一个相当狭窄的情况。
查尔斯·达菲

1
就像……w……所以现在所有带有Linux内核的Android手机都是非法的……
Antti Haapala

10

AGPL与GPL相同;因此,如果您的应用使用的是AGPL代码,则必须获得AGPL许可。

AGPL在GPL之上所做的就是重新定义用户。对于在服务器上运行的GPL程序,您是用户,对于AGPL,应用程序的真实用户是您的网站或服务的用户。因此,如果您使用的不是其他人,则您正在分发该应用程序。这当然意味着所有标准GPL要求。

至于Mongo,我假设使用它的应用程序不使用其代码,而仅使用未经AGPL许可的某些API。


一般来说,我也不使用iText的代码-我使用的是它的API,对于Mongo,它是二进制Java API,而不是JSON API。
博若

@Bozho而且该API在什么许可下?
Let_Me_Be 2011年

2
@Bozho Mongo DB驱动程序均已获得Apache许可(我引用您链接的网站)。
Let_Me_Be 2011年

2
好吧,这是狡猾的-我们要使用什么API和API客户端。顺便说一句,您能回答上述三个问题吗?
博若

2
毫无疑问,使用AGPL代码的作品已获得AGPL许可(GPLv3代码除外,在没有将AGPL条款适用于GPLv3代码的情况下,该代码特别允许混合)。问题在于网络使用情况的定义,该定义仅指“修改的版本”,而定义中的“修改的版本”的定义意味着它仅适用于需要版权(即分发)的内容。所以它还是很模糊。
Erik Funkenbusch 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.