Guías · 07

Fundamentos de compatibilidad de licencias

Qué es la compatibilidad de licencias, por qué solo se da en una dirección y las combinaciones típicas: Apache-2.0 y GPL, la Secondary License de MPL-2.0, las condiciones de enlace de la LGPL y la combinación con AGPL.

Última revisión: 2026-09-23

Compatibilidad es 'poder distribuirlos juntos'

Que dos licencias sean compatibles significa que, al combinar en un solo programa código bajo cada una de ellas y distribuirlo, se pueden cumplir a la vez las condiciones de ambas. Si una prohíbe las condiciones de la otra, no son compatibles. Por ejemplo, la GPL exige 'no añadir restricciones adicionales', así que el código bajo una licencia con condiciones adicionales que la GPL no permite no puede entrar en un programa GPL.

La compatibilidad tiene dirección

El código permisivo puede entrar en proyectos copyleft, pero no al revés.

Por eso las tablas de compatibilidad siempre deben leerse como 'qué código → en qué proyecto'.

Combinaciones típicas

Apache-2.0 y GPL

La FSF considera que Apache-2.0 es compatible con GPL-3.0, pero no con GPL-2.0, porque sus cláusulas de terminación de patentes e indemnización son condiciones adicionales que GPL-2.0 no contempla. GPL-3.0 se diseñó para resolver este problema. Así, un proyecto GPL-2.0-or-later puede usar código Apache-2.0 si distribuye la obra combinada bajo GPL-3.0.

MPL-2.0 y las licencias GNU

La sección 1.12 de MPL-2.0 define GPL-2.0, LGPL-2.1, AGPL-3.0 y sus versiones posteriores como 'Secondary License', y la sección 3.3 permite distribuir bajo la licencia GNU un Larger Work que combine código MPL con código bajo esas licencias. La excepción es cuando el autor original añadió el Exhibit B ('Incompatible With Secondary Licenses').

Bibliotecas LGPL y aplicaciones cerradas

Una biblioteca LGPL puede usarse en aplicaciones cerradas. A cambio, el usuario debe poder sustituirla por una versión modificada (lo más fácil es el enlace dinámico) y hay que ofrecer el código fuente de la parte de la biblioteca y el aviso de licencia. Si copias y mezclas código LGPL en el código de la aplicación, la situación cambia y la obra combinada debe seguir las condiciones de la LGPL/GPL.

GPL-3.0 y AGPL-3.0

Ambas permiten expresamente combinarse mediante su respectiva sección 13. En la obra combinada, la parte GPL sigue las condiciones de la GPL y la parte AGPL sigue las de la AGPL, incluida la de ofrecer el código fuente por red.

EPL-2.0 y GPL

En principio EPL-2.0 no es compatible con la GPL, pero si el autor original designa GPL u otras como Secondary License mediante el Exhibit A, la combinación es posible.

Código que incorporasAplicación cerradaProyecto MITGPL-2.0-onlyGPL-3.0
MIT·BSD·ISCSí (aviso)
Apache-2.0Sí (aviso·NOTICE)No
MPL-2.0Con condiciones (publicar archivos)Con condicionesCon condiciones (Secondary)Con condiciones (Secondary)
LGPL-3.0Con condiciones (enlace)Con condiciones (enlace)No
GPL-3.0NoNoNo

Hasta dónde llega la 'combinación'

Los problemas de compatibilidad surgen cuando el código se combina en un solo programa. La FSF considera un único programa lo que se enlaza en el mismo ejecutable o comparte estructuras de datos internas complejas, mientras que la comunicación habitual entre programas independientes, como tuberías, sockets o argumentos de línea de comandos, suele considerarla un 'agregado (aggregate)' de programas distintos. No obstante, este límite no está fijado por jurisprudencia y las interpretaciones varían. Incluir varios programas en una misma distribución no es, por sí solo, una combinación.

Pasos en la práctica

  1. Obtén la lista de dependencias (con la función de informes de licencias del gestor de paquetes o herramientas SBOM).
  2. Anota la licencia de cada dependencia con su identificador SPDX.
  3. Comprueba en primera instancia las combinaciones con la licencia de tu proyecto en el comprobador de compatibilidad.
  4. En las combinaciones 'con condiciones', verifica las condiciones (aviso, forma de enlace, existencia de Secondary License) en el texto original.
  5. Si hay combinaciones imposibles, cambia la dependencia, separa el programa o ajusta tu licencia.
Este artículo es información general y no constituye asesoramiento jurídico. Para decisiones importantes, consulta con un profesional.

Fuentes