Permisos, condiciones y limitaciones de un vistazo
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
- Si distribuyes en forma ejecutable, informar de cómo obtener el código fuente de los archivos bajo MPL (sección 3.2).
- No eliminar ni alterar los avisos de licencia de los archivos MPL.
- Si modificaste un archivo MPL, ese archivo debe seguir distribuyéndose bajo MPL-2.0.
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
- "Si uso una biblioteca MPL, mi aplicación también será MPL" — No. Los archivos nuevos que escribas no tienen por qué ser MPL.
- "La MPL no se puede mezclar con la GPL" — Desde la 2.0 sí se puede, salvo que haya un Exhibit B.
- "Si copio y pego código de un archivo MPL en mi archivo, mi archivo sigue siendo libre" — La parte de código MPL que trasladaste sigue siendo MPL. El límite del archivo es el límite de la obligación, así que lo seguro es no mezclar código y mantenerlo en archivos separados.
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 destino | Resultado | Nota |
|---|---|---|
| Software privativo (comercial) | Sí, con condiciones | Los 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 condiciones | Los 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 condiciones | Los 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 condiciones | MPL-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 condiciones | MPL-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 condiciones | MPL-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 condiciones | MPL-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 condiciones | MPL-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.