Pular para o conteúdo

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

Permissiva, com concessão de patentes. Id SPDX: Apache-2.0

A Apache-2.0 permite uso comercial, modificação e distribuição, como a MIT, e acrescenta uma concessão expressa de patentes dos colaboradores. Em troca, exige manter os avisos e indicar as mudanças.

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

  • Manter o aviso de copyright e a licençaUma cópia da licença e do aviso de copyright precisa acompanhar o código.
  • Registrar as mudançasQuem alterar o código precisa documentar o que mudou.

Não pode

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

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

Em português simples

É permissiva: quem recebe o código pode usá-lo em projeto aberto ou fechado. Cada colaborador concede uma licença de patente sobre a sua contribuição (seção 3). Se alguém processar outra pessoa alegando que o software infringe patente, as licenças de patente que ela recebeu para aquele software terminam na data do processo.

Quem redistribui precisa entregar uma cópia da licença, manter os avisos de copyright, patente, marca e atribuição do código-fonte, indicar de forma visível os arquivos que modificou e, se o projeto trouxer um arquivo NOTICE, repassar os avisos dele (seção 4). A seção 6 diz que a licença não dá permissão de usar nomes, marcas e logotipos do licenciante.

Tipo
Permissiva, com concessão de patentes
Copyleft (pelas condições)
Não
Texto oficial
1.581 palavras
Aprovada pela OSI
Sim
Dados coletados em
11/10/2026

Quando a Apache 2.0 faz sentido, e o que observar

Faz sentido quando

  • Projeto em que várias pessoas ou empresas vão contribuir e a clareza sobre patentes importa.
  • Quando você quer uma licença permissiva mais completa do que a MIT ou a BSD.
  • Projeto que precisa conviver com a GPL-3.0: o GNU diz que a Apache-2.0 é compatível com a versão 3 da GPL (veja a página de compatibilidade).

Observe que

  • O texto é bem mais longo do que o da MIT: vale ler a seção 4 antes de redistribuir.
  • Segundo a lista do GNU, a Apache-2.0 não é compatível com a GPL versão 2. Veja a citação completa em /compatibilidade/.
  • A Apache Software Foundation recomenda, além do arquivo LICENSE, um aviso padrão no cabeçalho de cada arquivo-fonte; o modelo está no apêndice do texto oficial.

Exemplo resolvido

Exemplo: uma empresa contribui com o seu projeto
  1. Uma empresa envia ao seu projeto Apache-2.0 um módulo que usa uma técnica patenteada por ela.
  2. Ao contribuir, ela concede aos usuários uma licença de patente sobre essa contribuição.
  3. Se depois ela processar um usuário por patente envolvendo o software, as licenças de patente que ela mesma recebeu sobre aquele software terminam.
  4. Ninguém precisa abrir o código de produtos próprios que usem o projeto.

Como aplicar a licença Apache 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.apache.org/licenses/LICENSE-2.0.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": "Apache-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: Apache-2.0
Python, Shell, Ruby, YAML…
# SPDX-License-Identifier: Apache-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 Apache Software Foundation recommends taking the additional step of adding a boilerplate notice to the header of each source file. You can find the notice in the appendix at the very end of the license text.

Texto oficial e fontes

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

Projetos que usam Apache-2.0, exemplos do choosealicense: Kubernetes, PDF.js, Swift.

Perguntas frequentes

A Apache-2.0 obriga a abrir o código de quem usa?

Não. Não há copyleft e dá para usar em produto fechado. As exigências são manter a licença e os avisos, indicar os arquivos modificados e repassar o NOTICE, se o projeto tiver um.

O que é o arquivo NOTICE da Apache-2.0?

Quando o projeto traz um arquivo NOTICE, quem redistribui precisa incluir uma cópia legível dos avisos de atribuição dele (seção 4, item d). Para quem publica, o arquivo é opcional.

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

Segundo a lista de licenças do projeto GNU, é compatível com a versão 3 da GPL e não é compatível com a versão 2. A página de compatibilidade traz a citação.

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

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