AGPL: lo que puedes hacer y lo que no puedes

188

AGPL es una licencia bastante nueva que estaba destinada a ir a través de redes GPL. Sin embargo, al no ser abogado, y al no haber leído toda la licencia, no puedo entender qué puede hacer libremente y qué no con AGPL.

Mi incertidumbre se alimenta de esta publicación sobre MongoDB (que es AGPL) y aún más por los comentarios a continuación.

Si seguimos los comentarios, resulta que puede usar las bibliotecas AGPL con su software comercial de código cerrado del lado del servidor, siempre que no modifique la biblioteca. ¿Es ese el caso? ¿O tiene que distribuir toda su aplicación cuando utiliza una biblioteca con licencia AGPL?

El caso con MongoDB es que usa la licencia de Apache para el código del cliente, lo que plantea otra pregunta. ¿Qué sucede si usa el software AGPL, pero lo implementa como una aplicación diferente a la comercial de código cerrado? Por ejemplo, tome iText : es una biblioteca AGPL:

  • si lo usa y lo modifica, ¿tiene que abrir el código fuente de toda su aplicación o debe redistribuir solo los cambios en iText?
  • si lo usa y no lo modifica, ¿tiene que abrir el código fuente de toda su aplicación?
  • Si envuelve iText en otra aplicación que comienza como un proceso separado, pero lo usa desde su aplicación principal, ¿debería abrir el código fuente de todo, o solo la aplicación de envoltura? (La aplicación de envoltura será una API basada en HTTP que tomará archivos pdf y devolverá los resultados del uso de iText como JSON). ¿Se puede usar para eludir la licencia AGPL?

Nota: La pregunta es sobre AGPLv3

Bozho
fuente
1
Vea también esta respuesta relacionada: opensource.stackexchange.com/questions/5003/…
Philippe Ombredanne

Respuestas:

40

La AGPL se basa en la GPL, no en la LGPL. No contiene ninguna excepción de enlace, y cualquier trabajo que use código AGPL (vinculado o no, modificado o no) también debe tener licencia y distribución de AGPL.

El uso de procesos separados puede eludir la (A) GPL, pero este es un terreno turbio. Si su aplicación final depende del proceso externo, de modo que no funcionaría correctamente sin ella, entonces se consideraría un trabajo derivado del software AGPL.

En la mayoría de los casos en que las personas usan aplicaciones GPL separadas en programas de código cerrado, proporcionan el trabajo GPL como una extensión opcional, o un back-end alternativo a algún otro fragmento de código, etc.

El trabajo (A) GPL no se puede distribuir junto con la aplicación final, incluso como una aplicación separada (por ejemplo, ponerlos en el mismo archivo o repositorio), aunque está bien proporcionar instrucciones sobre dónde encontrar el trabajo GPL y cómo usarlo con tu aplicación

Mark H
fuente
99
Si bien lo que usted dice es cierto, la única diferencia entre la GPL y la AGPL es el requisito de suministrar código si se usa de forma interactiva en una red. Sin embargo, la cláusula que cubre esto establece que solo se aplica a las "versiones modificadas" del trabajo, y las "versiones modificadas" se definen como cualquier uso que requiera derechos de autor. La simple ejecución de la versión no modificada no crea una "versión modificada", porque los derechos de autor solo cubren la distribución.
Erik Funkenbusch
8
1. "vinculado o no" está mal. 2. "se consideraría un trabajo derivado" está mal 3. Creo que "En la mayoría de los casos" está mal. 4. "El trabajo (A) GPL no puede distribuirse junto con la aplicación final, incluso como una aplicación separada" es totalmente erróneo, por ejemplo, Debian distribuye cosas con todo tipo de licencias diferentes juntas, no todas las cuales son compatibles con la GPL. Los sistemas propietarios también pueden hacer esto. Eche un vistazo a la sección 3 de esta página, comenzando por "Han surgido preguntas": ghostscript.com/doc/current/Commprod.htm No lea el resto, está tratando de engañarlo para que lo compre.
Sam Watkins
Debian en realidad tiene 3 repositorios separados debido a las licencias. mainconsiste en paquetes compatibles con DFSG , que no dependen de software fuera de esta área para operar. Estos son los únicos paquetes considerados parte de la distribución de Debian . contriblos paquetes contienen software compatible con DFSG , pero tienen dependencias que no están en main (posiblemente empaquetados para Debian en versiones no gratuitas). non-freecontiene software que no cumple con el DFSG .
Kevin Brey
Re: "no se puede distribuir junto", ¿puede señalar la provisión de licencia específica que respalda eso? Entiendo completamente por qué no querría enviar código con licencia AGPL en un producto de consumo, pero esa es una circunstancia bastante limitada.
Charles Duffy
1
Como ... wat ... así que ahora todos esos teléfonos Android con sus núcleos de Linux son ilegales ...
Antti Haapala
10

AGPL es lo mismo que GPL; por lo tanto, si su aplicación está usando el código AGPL, debe tener licencia AGPL.

Lo que AGPL hace además de GPL es la redefinición del usuario. Para los programas GPL que se ejecutan en su servidor, usted es el usuario, para AGPL, los usuarios reales de la aplicación son los usuarios de su sitio web o servicio. Por lo tanto, está distribuyendo la aplicación si alguien más que usted la está utilizando. Y eso, por supuesto, implica todos los requisitos estándar de GPL.

En cuanto a Mongo, supongo que las aplicaciones que lo usan no usan su código, solo algunas API, que no tienen licencia AGPL.

Déjame ser
fuente
en general, tampoco estoy usando el código de iText, estoy usando su API, que es una API binaria de Java en lugar de una API JSON en el caso de Mongo.
Bozho
@Bozho ¿Y bajo qué licencia está esa API?
Let_Me_Be
2
Los controladores de @Bozho Mongo DB tienen licencia de Apache (estoy citando el sitio web que ha vinculado).
Let_Me_Be
2
bueno, eso es dudoso: ¿qué hacemos con una API y qué cliente de API? Por cierto, ¿puedes responder las tres preguntas anteriores?
Bozho
2
No hay duda de que un trabajo que utiliza el código AGPL'd está licenciado bajo la AGPL (Excepto para el código GPLv3 que se permite específicamente mezclar sin los términos AGPL que se aplican al código GPLv3). El problema viene en la definición del uso de la red, que se refiere solo a "versiones modificadas", y la definición de "versiones modificadas" en las definiciones significa que solo se aplica a algo que requiere derechos de autor (es decir, distribución). Entonces todavía es bastante turbio.
Erik Funkenbusch