Copyleft débil

Mozilla Public License 2.0

Copyleft por archivo: solo hay que publicar los archivos MPL modificados y el resto del código puede tener cualquier licencia. También puede combinarse con la GPL.

SPDXMPL-2.0

Permisos, condiciones y limitaciones de un vistazo

Permisos

  • Uso comercialEl original y las obras derivadas pueden usarse con fines comerciales.
  • ModificaciónSe puede modificar el código.
  • DistribuciónSe puede distribuir el código.
  • Uso de patentesLos contribuidores conceden expresamente derechos de patente.
  • Uso privadoSe puede usar y modificar internamente sin publicarlo.

Condiciones

  • Divulgar el código fuenteAl distribuir hay que proporcionar el código fuente.
  • Aviso de copyright y licenciaAl distribuir hay que incluir una copia de la licencia y el aviso de copyright.
  • Misma licencia (por archivo)Las modificaciones de archivos existentes deben distribuirse con la misma licencia.

Limitaciones

  • Limitación de responsabilidadIndica expresamente que no se asume responsabilidad por daños.
  • Uso de marcasIndica expresamente que no concede derechos de marca.
  • 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 Mozilla Foundation publicó la MPL 2.0 en enero de 2012. La usan productos de Mozilla como Firefox y Thunderbird, y su rasgo distintivo es que el alcance del copyleft es por archivo. Los archivos bajo MPL (y las modificaciones de esos archivos) deben publicarse con su código bajo MPL, pero los archivos nuevos e independientes pueden tener otra licencia, y el 'Larger Work' (sección 3.3) que combina código MPL con otro puede distribuirse en su conjunto con las condiciones que quieras. También incluye una licencia de patentes explícita y una cláusula de terminación en caso de litigio de patentes.

Qué hay que cumplir al distribuir

Secondary License y compatibilidad con la GPL

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'. Según la sección 3.3, un Larger Work que combine código MPL con código bajo licencias GNU puede distribuirse bajo la licencia GNU. Sin embargo, si el autor original añadió al archivo el aviso del Exhibit B ('Incompatible With Secondary Licenses'), esta compatibilidad no se aplica. La MPL-1.1 no tenía este mecanismo y no era compatible con la GPL; la 2.0 lo mejoró.

Malentendidos frecuentes

Cómo aplicarla

Se recomienda poner el texto en LICENSE y añadir al principio de cada archivo fuente el aviso del Exhibit A ('This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0…'). Si es difícil ponerlo en el archivo, puede colocarse donde el receptor probablemente lo busque, como un archivo LICENSE en ese directorio. El identificador SPDX es MPL-2.0 (con Exhibit B, MPL-2.0-no-copyleft-exception).

Cuándo encaja

Es un buen término medio cuando quieres que te devuelvan las mejoras de la biblioteca o el motor, pero no quieres restringir la licencia de los productos que lo usan. Sus condiciones son más sencillas que las de la LGPL y no tiene el problema del enlace estático. Un caso conocido: en 2023, cuando HashiCorp pasó Terraform de MPL-2.0 a BUSL, la comunidad bifurcó la versión MPL-2.0 como OpenTofu.

¿Puedo incluir código MPL-2.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 destinoResultadoNota
Software privativo (comercial) Sí, con condicionesLos archivos MPL deben mantenerse bajo MPL-2.0 archivo por archivo, y hay que proporcionar su código fuente. El resto del código puede tener otra licencia.
MIT Sí, con condicionesLos archivos MPL deben mantenerse bajo MPL-2.0 archivo por archivo, y hay que proporcionar su código fuente. El resto del código puede tener otra licencia.
Apache-2.0 Sí, con condicionesLos archivos MPL deben mantenerse bajo MPL-2.0 archivo por archivo, y hay que proporcionar su código fuente. El resto del código puede tener otra licencia.
LGPL-2.1 Sí, con condicionesMPL-2.0 reconoce GPL-2.0 o posterior, LGPL-2.1 o posterior y AGPL-3.0 o posterior como 'Secondary License', por lo que la obra combinada puede distribuirse bajo una licencia GNU. No es posible si el autor original añadió 'Incompatible With Secondary Licenses' (Exhibit B).
LGPL-3.0 Sí, con condicionesMPL-2.0 reconoce GPL-2.0 o posterior, LGPL-2.1 o posterior y AGPL-3.0 o posterior como 'Secondary License', por lo que la obra combinada puede distribuirse bajo una licencia GNU. No es posible si el autor original añadió 'Incompatible With Secondary Licenses' (Exhibit B).
GPL-2.0 Sí, con condicionesMPL-2.0 reconoce GPL-2.0 o posterior, LGPL-2.1 o posterior y AGPL-3.0 o posterior como 'Secondary License', por lo que la obra combinada puede distribuirse bajo una licencia GNU. No es posible si el autor original añadió 'Incompatible With Secondary Licenses' (Exhibit B).
GPL-3.0 Sí, con condicionesMPL-2.0 reconoce GPL-2.0 o posterior, LGPL-2.1 o posterior y AGPL-3.0 o posterior como 'Secondary License', por lo que la obra combinada puede distribuirse bajo una licencia GNU. No es posible si el autor original añadió 'Incompatible With Secondary Licenses' (Exhibit B).
AGPL-3.0 Sí, con condicionesMPL-2.0 reconoce GPL-2.0 o posterior, LGPL-2.1 o posterior y AGPL-3.0 o posterior como 'Secondary License', por lo que la obra combinada puede distribuirse bajo una licencia GNU. No es posible si el autor original añadió 'Incompatible With Secondary Licenses' (Exhibit B).

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.