Pular para o conteúdo

Licença MPL 2.0: o que pode, o que deve e o que não pode

Copyleft por arquivo. Id SPDX: MPL-2.0

A MPL-2.0 exige que os arquivos cobertos por ela, e as mudanças neles, continuem sob a MPL com o código-fonte à disposição. Mas permite combinar esses arquivos com código de outras licenças, inclusive fechadas, num trabalho maior.

Informação, não aconselhamento jurídico. Os resumos são nossos e simplificam; o texto oficial da licença é o que vale. Para decisões com consequência legal ou financeira, consulte um advogado.

Pode

O que a licença permite

  • Usar para fins comerciaisO código e os derivados podem ser usados em produto ou serviço comercial.
  • Modificar o códigoVocê pode alterar o código.
  • Distribuir o códigoVocê pode repassar o código a outras pessoas.
  • Receber concessão expressa de patentesA licença traz uma concessão expressa dos direitos de patente de quem contribuiu com o código.
  • Usar e modificar em particularVocê pode usar e alterar o código só para você, sem divulgar nada.

Deve

O que você precisa cumprir

  • Abrir o código-fonteAo distribuir o código, o código-fonte precisa ser disponibilizado.
  • Manter o aviso de copyright e a licençaUma cópia da licença e do aviso de copyright precisa acompanhar o código.
  • Manter a mesma licença nos arquivos modificadosAs modificações em arquivos existentes precisam sair sob a mesma licença. Arquivos novos podem ter outra.

Não pode

O que a licença não dá nem garante

  • Sem responsabilidade dos autoresA licença limita a responsabilidade dos autores: eles não respondem por danos do uso.
  • Sem direito de usar a marcaA licença diz expressamente que não concede direitos de marca.
  • Sem garantiaA licença diz expressamente que o código vem sem garantia.

Em português simples

O copyleft é por arquivo. Quem distribui o Software Coberto (os arquivos MPL e as modificações deles) deve disponibilizar o código-fonte desses arquivos sob a MPL (seção 3.1). Se distribui em forma executável, precisa informar como obter o código-fonte (seção 3.2). Arquivos novos, sem código MPL, podem ter outra licença: o texto trata disso como "trabalho maior" (Larger Work).

A MPL-2.0 traz concessão expressa de patentes dos colaboradores. Os dados do choosealicense marcam ainda que ela não concede direitos de marca, e a seção 2.3 diz que as licenças concedidas são os únicos direitos concedidos.

Tipo
Copyleft por arquivo
Copyleft (pelas condições)
Por arquivo
Texto oficial
2.435 palavras
Aprovada pela OSI
Sim
Dados coletados em
11/10/2026

Quando a MPL 2.0 faz sentido, e o que observar

Faz sentido quando

  • Você quer que as melhorias nos seus arquivos voltem, sem afastar quem mistura o código com código próprio fechado.
  • Meio-termo entre a MIT (nada volta) e a GPL (tudo volta).

Observe que

  • Quem distribui executáveis precisa dizer onde está o código-fonte dos arquivos MPL.
  • A compatibilidade com a GPL é indireta, pela seção 3.3, e tem uma condição: o GNU a descreve em detalhe. Veja /compatibilidade/.
  • O choosealicense recomenda colocar o aviso padrão no topo de cada arquivo (Exhibit A, no fim do texto oficial): é ele que mostra quais arquivos são MPL.

Exemplo resolvido

Exemplo: uma empresa corrige um bug
  1. O seu projeto tem os arquivos a.js e b.js sob MPL-2.0.
  2. Uma empresa corrige um bug em b.js e cria um c.js novo, só dela.
  3. Ao distribuir, ela publica o b.js corrigido sob a MPL e deixa o código-fonte acessível.
  4. O c.js, que não contém código MPL, pode ter outra licença, inclusive fechada.

Como aplicar a licença MPL 2.0 no seu projeto

Três passos, cada trecho com botão de copiar.

Passo 1. Arquivo de licença na raiz do projeto

LICENSE
curl -L -o LICENSE https://www.mozilla.org/media/MPL/2.0/index.txt
O texto vem pronto, sem lacunas a preencher. No PowerShell do Windows, use curl.exe no lugar de curl. Quer ler antes? Texto na lista SPDX ou página de quem mantém a licença.

Passo 2. Declarar a licença no package.json

package.json
{
  "license": "MPL-2.0"
}
Campo license com o id SPDX. Para um projeto que não pode ser usado por ninguém, o npm aceita o valor UNLICENSED.

Passo 3. Cabeçalho SPDX em cada arquivo de código (opcional)

JavaScript, TypeScript, C, Java, Go…
// SPDX-License-Identifier: MPL-2.0
Python, Shell, Ruby, YAML…
# SPDX-License-Identifier: MPL-2.0

Uma linha no topo do arquivo, com a etiqueta SPDX-License-Identifier, ajuda ferramentas a reconhecer a licença de cada arquivo.

Recomendação de quem mantém a licença (via choosealicense, em inglês): The Mozilla Foundation recommends taking the additional step of adding a boilerplate notice to the top of each file. The boilerplate can be found at the end of the license (Exhibit A).

Texto oficial e fontes

O texto jurídico não é traduzido aqui. O que vale é o original.

Projetos que usam MPL-2.0, exemplos do choosealicense: Servo, Syncthing, TimelineJS3.

Perguntas frequentes

A MPL-2.0 é copyleft forte?

Não. O choosealicense a descreve como copyleft fraco: a exigência vale para os arquivos licenciados e para as modificações deles, e não para o programa inteiro.

A MPL-2.0 é compatível com a GPL?

O GNU descreve uma compatibilidade indireta pela seção 3.3, com uma condição sobre os arquivos originalmente MPL. A página de compatibilidade traz a citação completa.

A MPL-2.0 dá concessão de patentes?

Sim. Os dados do choosealicense marcam a concessão expressa de patentes dos colaboradores entre as permissões da MPL-2.0.

Onde está o texto oficial da licença MPL 2.0?

A lista SPDX publica o texto de MPL-2.0 em https://spdx.org/licenses/MPL-2.0.html, e a página de quem mantém a licença está em https://www.mozilla.org/MPL/2.0/. O CódigoLivre não traduz nem republica o texto: resume e aponta para o original.