La licencia Affero GPL o AGPL – en su versión 3 – es la licencia publicada por la Free Software Foundation para resolver el problema del copyleft “en la nube”.
 
Se basa en la GPLv3, por tanto comparte las características originales de la licencia GPLv2 (copyleft “fuerte”) así como los nuevos elementos de la GPLv3 (pactos anti-patentes de software, anti-DRM, y anti-Tivo para dispositivos para consumidores, y flexibilización mediante cláusulas adicionales). La AGPLv3 se diferencia de la GPLv3 por su cláusula 13, que se llama “Remote Network Interaction”, es decir, “interacción remota vía una red”.
 
La necesidad de esta cláusula surge de una característica del copyleft de la GPL, en combinación con la evolución de las tecnologías y la prestación de “servicios de software” (software as a service) mediante lo que se llamaban inicialmente “Application Service Providers” (ASP) y ahora lo llamamos software como servicio “en la nube”.
 
El efecto copyleft de la licencia GPL se activa en el momento de la distribución física o intangible (comunicación) del software a un tercero. En este momento, el que distribuye un programa bajo GPL, así como las obras derivadas de él, debe hacerlo bajo la misma licencia y asegurar que el destinatario del software tenga acceso al código fuente, para poder disfrutar de las libertades concedidas por la licencia GPL.
 
Pero si nunca se distribuye el software (original o derivado) a terceros, porque se aloja en un servidor web y los usuarios acceden a él mediante conexión remota, entonces el copyleft no se activa y los usuarios no tienen derecho a recibir el software bajo la GPL. Es decir, si alguien utiliza y mejora un software GPL para proporcionar servicios de software en modo SaaS, no está obligado a comunicar el software, junto con su código fuente, a estos usuarios.
 
Ya desde el 2002, el proyecto “Aferro” había agregado una cláusula especial a la GPLv2, para lidiar con este problema y asegurar que los usuarios del software del proyecto (un sistema de colaboración y rating en red) pudieran tener acceso al código fuente. Lo hicieron mediante el “truquillo” de agregar un botón de “descargar las fuentes” en el interfaz de usuario, y – en la licencia – prohibir la eliminación de esta funcionalidad. Esta licencia fue utilizada por CiviCRM, por ejemplo.
 
A la hora de redactar la nueva versión de la GPL, se pensaba originalmente que debía incluir una cláusula de este tipo, para resolver este problema (visto desde la perspectiva de la FSF, cuyos objetivos son asegurar y mantener la libertad del software). No obstante, después de los primeros borradores de la Versión 3 y muchas discusiones en la comunidad de SFA, la FSF decidió no incluir esta cláusula de la GPLv3 y crear la AferroGPL3 como licencia complementaria.
 
La redacción actual del primer apartado de la cláusula 13 “copyleft en la nube” dice:
 
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.
 
[No obstante cualquier otra disposición de esta Licencia, si se modifica el Programa, la versión modificada debe ofrecer de manera prominente a todos los usuarios que interactúan con él de forma remota a través de una red de ordenadores (si su versión soporta esa interacción) la oportunidad de recibir el Código Fuente Correspondiente de esta versión, proporcionando el acceso a dicho Código Fuente Correspondiente desde un servidor de red de forma gratuita, a través de un medio estándar o habitual para facilitar la descarga de software. Este Código Fuente Correspondiente deberá incluir el Código Fuente Correspondiente de cualquier obra cubierta por la versión 3 de la Licencia Pública General de GNU que se incorpora (en el software distribuido) de conformidad con el párrafo siguiente.]
 
Asimismo la licencia agregar un párrafo para asegurar la compatibilidad inversa con la GPL3.
 
La intención y la interpretación directa de esta cláusula es evidente: si un desarrollador modifica un programa bajo AGPL3 y pone las funcionalidades del programa a disposición de usuarios mediante conexión remota (conexión vía web, por ejemplo, pero la licencia es neutra en cuanto a la tecnología de la conexión remota), entonces el desarrollador deberá ofrecer a sus usuarios acceso al código fuente de la versión modificada… bajo la AGPL, ya que esta licencia es copyleft. Asimismo, si el programa incluye software bajo GPL (sin A), entonces esta parte también debe estar accesible.
 
La redacción no está exenta de problemas, en muchos casos levantados por cuestiones técnicas: ¿Cómo interpretar “users interacting with it remotely”? ¿Qué pasa si los usuarios no tienen acceso directo al programa bajo AGPLv3 sino solamente indirectamente a través de un portal web (bajo otra licencia)? Es decir, en los casos de usar el software AGPL modificado como el “back-office” del portal. ¿Habría que proporcionar acceso a la versión modificada del software AGPL? ¿Y si no lo modificas, no se aplica esta cláusula?
 
La licencia AferroGPL3 no ha tenido un gran éxito (en “cantidad” de proyectos que utilizan esta licencia) – la mayoría de los proyectos GPL han decidido quedarse con esta licencia (por decisión propia, o porque puede ser difícil cambiar la licencia de un proyecto de SFA). No obstante hay varios proyectos importantes que la utilizan, como MongoDB, Identi.ca, Co-ment, Funambol, iText, OpenERP, Launchpad, SugarCRM y muchos otros (ver una lista aquí).
 
La licencia ha suscitado discusión y preguntas sobre su utilización y utilidad, así como hay los que han criticado la introducción de una nueva licencia incompatible con la gran mayoría de las licencias de SFA. No obstante en determinadas condiciones, la AGPL puede ser la licencia “correcta” para evitar los “polizones”, como comenta Luis Villa, antes abogado con Mozilla Foundation y “steward” del proyecto de redacción de la licencia MPLv2.   
 
Otras licencias tienen pactos para aplicar el efecto copyleft en las mismas circunstancias, como la licencia Open Source License 3.0 (cl. 5 External Deployment.. “made available as an application intended for use over a network”) y la EUPL 1.1. (cl.1 definición de “Distribución y Comunicación”).