Permissões, condições e limitações em resumo
Condições
- Divulgar o código-fonteAo distribuir, é preciso fornecer o código-fonte.
- Aviso de copyright e licençaAo distribuir, é preciso incluir uma cópia da licença e o aviso de direitos autorais.
- Mesma licença (por arquivo)Modificações em arquivos existentes devem ser distribuídas sob a mesma licença.
Limitações
- Limitação de responsabilidadeDeclara expressamente que não há responsabilidade por danos.
- Uso de marcasDeclara expressamente que não concede direitos de marca.
- Sem garantiaDeclara expressamente que não oferece nenhuma garantia.
Classificação de permissões, condições e limitações: dados do choosealicense.com (GitHub, licença MIT).
Que licença é esta
A MPL 2.0 foi publicada pela Mozilla Foundation em janeiro de 2012. É usada por produtos da Mozilla, como Firefox e Thunderbird, e se caracteriza por definir o alcance do copyleft por arquivo. Os arquivos sob MPL (e as partes modificadas desses arquivos) devem ter o código-fonte divulgado sob a MPL, mas arquivos novos e separados podem ter outra licença, e o 'Larger Work' (seção 3.3) que combina código MPL pode ser distribuído como um todo nas condições que você quiser. Também há concessão explícita de patentes e cláusula que a encerra em caso de litígio de patentes.
O que cumprir ao distribuir
- Ao distribuir executáveis, informe como obter o código-fonte dos arquivos sob MPL (seção 3.2).
- Não remova nem altere os avisos de licença dos arquivos MPL.
- Se modificar um arquivo MPL, esse arquivo continua sendo distribuído sob a MPL-2.0.
Secondary License e compatibilidade com a GPL
A seção 1.12 da MPL-2.0 define a GPL-2.0, a LGPL-2.1, a AGPL-3.0 e suas versões posteriores como 'Secondary License'. Pela seção 3.3, um Larger Work que combina código MPL com código sob licença GNU pode ser distribuído sob a licença GNU. Mas, se o autor original tiver colocado no arquivo o aviso do Exhibit B ('Incompatible With Secondary Licenses'), essa compatibilidade não se aplica. A MPL-1.1 não tinha esse mecanismo e era incompatível com a GPL; isso foi corrigido na 2.0.
Equívocos comuns
- "Se uso uma biblioteca MPL, meu app também vira MPL" — não. Os arquivos novos que você cria não precisam ser MPL.
- "A MPL não pode ser misturada com a GPL" — a partir da 2.0 pode, desde que não haja Exhibit B.
- "Se eu copiar um arquivo MPL e colar no meu arquivo, meu arquivo continua livre" — a parte transplantada do código MPL continua sendo MPL. O limite do arquivo é o limite da obrigação, então o mais seguro é não misturar código e mantê-lo em arquivos separados.
Como aplicar
Coloque o texto em LICENSE e, de preferência, o aviso do Exhibit A ('This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0…') no topo de cada arquivo-fonte. Se for difícil colocá-lo no arquivo, pode ser em um lugar onde o destinatário provavelmente procuraria, como o arquivo LICENSE do diretório correspondente. O identificador SPDX é MPL-2.0 (com Exhibit B, MPL-2.0-no-copyleft-exception).
Quando faz sentido
É um bom meio-termo quando você quer receber de volta as melhorias da biblioteca ou do motor em si, sem restringir a licença dos produtos que o usam. As condições são mais simples que as da LGPL e não há o problema da vinculação estática. Houve também o caso em que a HashiCorp trocou a licença do Terraform de MPL-2.0 para BUSL em 2023, e a comunidade fez o fork da versão MPL-2.0 como OpenTofu.
Posso colocar código MPL-2.0 em outro projeto?
Avaliação geral para quando você pega código publicado sob esta licença e o distribui combinado com um projeto sob as licenças abaixo. Ver outras combinações no verificador de compatibilidade →
| Projeto de destino | Resultado | Observação |
|---|---|---|
| Software proprietário (comercial) | Permitido com condições | Os arquivos MPL mantêm a MPL-2.0 arquivo por arquivo, e é preciso fornecer o código-fonte desses arquivos. O restante do código pode ficar sob outra licença. |
| MIT | Permitido com condições | Os arquivos MPL mantêm a MPL-2.0 arquivo por arquivo, e é preciso fornecer o código-fonte desses arquivos. O restante do código pode ficar sob outra licença. |
| Apache-2.0 | Permitido com condições | Os arquivos MPL mantêm a MPL-2.0 arquivo por arquivo, e é preciso fornecer o código-fonte desses arquivos. O restante do código pode ficar sob outra licença. |
| LGPL-2.1 | Permitido com condições | A MPL-2.0 reconhece a GPL-2.0 ou posterior, a LGPL-2.1 ou posterior e a AGPL-3.0 ou posterior como 'Secondary License', permitindo distribuir a obra combinada sob a licença GNU. Isso não vale se o autor original tiver incluído 'Incompatible With Secondary Licenses' (Exhibit B). |
| LGPL-3.0 | Permitido com condições | A MPL-2.0 reconhece a GPL-2.0 ou posterior, a LGPL-2.1 ou posterior e a AGPL-3.0 ou posterior como 'Secondary License', permitindo distribuir a obra combinada sob a licença GNU. Isso não vale se o autor original tiver incluído 'Incompatible With Secondary Licenses' (Exhibit B). |
| GPL-2.0 | Permitido com condições | A MPL-2.0 reconhece a GPL-2.0 ou posterior, a LGPL-2.1 ou posterior e a AGPL-3.0 ou posterior como 'Secondary License', permitindo distribuir a obra combinada sob a licença GNU. Isso não vale se o autor original tiver incluído 'Incompatible With Secondary Licenses' (Exhibit B). |
| GPL-3.0 | Permitido com condições | A MPL-2.0 reconhece a GPL-2.0 ou posterior, a LGPL-2.1 ou posterior e a AGPL-3.0 ou posterior como 'Secondary License', permitindo distribuir a obra combinada sob a licença GNU. Isso não vale se o autor original tiver incluído 'Incompatible With Secondary Licenses' (Exhibit B). |
| AGPL-3.0 | Permitido com condições | A MPL-2.0 reconhece a GPL-2.0 ou posterior, a LGPL-2.1 ou posterior e a AGPL-3.0 ou posterior como 'Secondary License', permitindo distribuir a obra combinada sob a licença GNU. Isso não vale se o autor original tiver incluído 'Incompatible With Secondary Licenses' (Exhibit B). |
O conteúdo deste site é informação geral e não constitui aconselhamento jurídico. Para decisões reais de distribuição, contratos ou disputas, consulte um advogado ou outro profissional.