Permisos, condiciones y limitaciones de un vistazo
Condiciones
- Aviso de copyright y licenciaAl distribuir hay que incluir una copia de la licencia y el aviso de copyright.
- Indicar cambiosSi modificas el original, debes indicarlo.
- Divulgar el código fuenteAl distribuir hay que proporcionar el código fuente.
- Misma licenciaLas versiones modificadas y obras derivadas deben distribuirse con la misma licencia (o una compatible).
Limitaciones
- Limitación de responsabilidadIndica expresamente que no se asume responsabilidad por daños.
- Sin garantíaIndica expresamente que no ofrece ninguna garantía.
Fuente de la clasificación de permisos, condiciones y limitaciones: datos de choosealicense.com (GitHub, licencia MIT).
Qué es esta licencia
La GPL (GNU General Public License) 3.0 fue publicada por la Free Software Foundation (FSF) el 29 de junio de 2007. Su núcleo es el principio copyleft: cualquiera puede usar, estudiar, modificar y distribuir libremente, pero al distribuir hay que garantizar las mismas libertades a quien lo recibe. Si distribuyes un programa que incluye o se combina con este código, debes ofrecer todo el programa bajo la GPL junto con su código fuente correspondiente. GNU Bash, GIMP y GNU Emacs, entre otros, usan GPL-3.0-or-later.
Cambios respecto a GPL-2.0
- Licencia de patentes explícita (sección 11): los contribuidores conceden los derechos de patente necesarios para su contribución.
- Información de instalación (Installation Information): si distribuyes software GPL-3.0 dentro de un 'Producto de usuario (User Product)', como un aparato doméstico, también debes facilitar la información necesaria para instalar software modificado en ese dispositivo (claves de firma, etc.) (sección 6). Se la suele llamar 'protección contra la tivoización'.
- Plazo de subsanación (sección 8): si es la primera infracción y la corriges en los 30 días siguientes a la notificación del titular, recuperas los derechos. En GPL-2.0 los derechos se extinguían en el momento de la infracción.
- Mayor compatibilidad: admite código Apache-2.0 y puede combinarse con AGPL-3.0 (sección 13).
Qué hay que cumplir al distribuir
- Ofrecer todo el código fuente correspondiente (incluidos los scripts de compilación), o hacerlo por alguno de los medios de la sección 6, como una oferta por escrito.
- Conservar los avisos de copyright y licencia e indicar el hecho del cambio y su fecha (sección 5).
- No imponer condiciones adicionales que limiten los derechos que la GPL da a quien lo recibe (p. ej., contratos que prohíban redistribuir).
Malentendidos frecuentes
- "Si usas código GPL, siempre tienes que publicarlo" — La obligación surge al distribuir (conveying). Si solo lo usas dentro de la empresa o solo lo ejecutas en un servidor, no nace la obligación de ofrecer el código de GPL-3.0. Para abarcar también el uso en red hace falta AGPL-3.0.
- "El software GPL no se puede vender" — Se puede vender. Lo que no se puede es impedir que quien lo recibe lo vuelva a distribuir.
- "Mi programa, que funciona sobre un programa GPL, también pasa a ser GPL" — Cuando se ejecuta como programa independiente o se comunica por medios estándar, normalmente se considera un 'agregado'. Si hay combinación o no se interpreta de forma distinta según el tipo de enlace y el intercambio de datos.
- "GPL-3.0 y GPL-2.0 son compatibles" — Si la GPL-2.0 es only y no 'or later', no son compatibles (guía only vs or-later).
Cómo aplicarla
Pon el texto tal cual en LICENSE (o en COPYING, según la convención de GNU) y añade el aviso oficial de GNU al principio de cada archivo fuente. Con ese aviso se decide si es 'or later'. Los identificadores SPDX son GPL-3.0-only o GPL-3.0-or-later (el simple GPL-3.0 es un identificador obsoleto en SPDX).
Cuándo encaja
Encaja en aplicaciones, herramientas y proyectos comunitarios cuyo autor quiere que las mejoras basadas en su código no acaben en productos cerrados, sino que vuelvan a todos. Si es una biblioteca, considera también LGPL-3.0 para que puedan usarla aplicaciones cerradas.
¿Puedo incluir código GPL-3.0 en otro proyecto?
Resultado general al tomar código publicado bajo esta licencia y distribuirlo combinado en un proyecto con cada una de las licencias siguientes. Ver otras combinaciones en el comprobador de compatibilidad →
| Proyecto de destino | Resultado | Nota |
|---|---|---|
| Software privativo (comercial) | No | Todo el programa distribuido en conjunto debe publicarse con su código fuente bajo la misma licencia GNU, así que no puedes incluirlo manteniendo la licencia de tu proyecto. |
| MIT | No | Todo el programa distribuido en conjunto debe publicarse con su código fuente bajo la misma licencia GNU, así que no puedes incluirlo manteniendo la licencia de tu proyecto. |
| Apache-2.0 | No | Todo el programa distribuido en conjunto debe publicarse con su código fuente bajo la misma licencia GNU, así que no puedes incluirlo manteniendo la licencia de tu proyecto. |
| MPL-2.0 | No | Todo el programa distribuido en conjunto debe publicarse con su código fuente bajo la misma licencia GNU, así que no puedes incluirlo manteniendo la licencia de tu proyecto. |
| LGPL-2.1 | Sí, con condiciones | La obra combinada debe distribuirse bajo las condiciones de GPL-3.0. |
| LGPL-3.0 | Sí, con condiciones | La obra combinada debe distribuirse bajo las condiciones de GPL-3.0. |
| GPL-2.0 | No | El código de la versión 3.0 no es compatible con las condiciones de GPL-2.0 (only), así que no puede incluirse. |
| AGPL-3.0 | Sí | GPL-3.0 y AGPL-3.0 permiten combinarse mutuamente mediante su respectiva sección 13. En la obra combinada, la parte AGPL mantiene la obligación de ofrecer el código fuente por red. |
El contenido de este sitio es información general y no constituye asesoramiento jurídico. Para decisiones reales de distribución, contratos o litigios, consulta con un abogado u otro profesional.