A licença MIT deixa você usar, modificar, vender e relicenciar o código, desde que mantenha o aviso de copyright e o texto da licença. A licença GPL deixa você usar e modificar, mas exige que, se você distribuir um programa derivado, ele saia também sob a GPL, com o código-fonte.
Para a software house que quer licenciar ou vender código próprio, a diferença é decisiva. MIT dentro do repositório quase nunca atrapalha. GPL dentro do repositório pode impedir uma licença proprietária.
Esta página trata de open source dentro do seu código, do ponto de vista de quem quer licenciar ou vender. Não é um guia para publicar projetos open source.
O que a licença MIT permite e exige
A MIT é curta. Ela dá permissão para:
- usar e copiar;
- modificar e mesclar;
- publicar e distribuir;
- sublicenciar e vender cópias do software.
Exige uma coisa: o aviso de copyright e o texto da licença acompanham todas as cópias ou partes substanciais do software. O software vem sem garantia.
Apache 2.0 e BSD funcionam de forma parecida, com algumas exigências a mais (a Apache 2.0 tem cláusula de patentes e pede aviso de modificações).
O que a licença GPL exige
A GPL é uma licença copyleft. Quem recebe o software tem liberdade de usar, estudar, modificar e redistribuir. Quem distribui uma versão modificada ou uma obra baseada no código GPL precisa distribuir sob a mesma GPL e oferecer o código-fonte.
Três pontos práticos:
- Distribuir é o gatilho. Usar internamente, sem entregar cópias a terceiros, não aciona a obrigação de liberar o fonte. Entregar o software ao cliente aciona.
- Combinação conta. Se o seu código e o código GPL formam um único programa (por exemplo, ligação estática ou integração estreita), o conjunto é tratado como obra derivada. Programas separados que conversam por linha de comando, socket ou API costumam ser tratados como obras separadas. A fronteira exata é discutida, e a própria FSF publica orientações sobre isso.
- LGPL é mais leve. A LGPL permite ligar uma biblioteca a um programa proprietário, desde que o usuário possa substituir a biblioteca. Muitas bibliotecas de sistema usam LGPL por esse motivo.
E a AGPL?
A AGPL acrescenta uma regra para software oferecido pela rede. Quem modifica código AGPL e deixa usuários interagirem com ele remotamente precisa oferecer o código-fonte a esses usuários.
Licenças mais comuns e o efeito no licenciamento
| Licença | Tipo | Pode entrar em produto licenciado como proprietário? | O que você precisa fazer |
|---|---|---|---|
| MIT | Permissiva | Sim | Manter aviso e texto da licença |
| BSD 2 e 3 cláusulas | Permissiva | Sim | Manter aviso e texto; na de 3 cláusulas, não usar o nome dos autores para promover |
| Apache 2.0 | Permissiva | Sim | Manter aviso, arquivo NOTICE e marcar arquivos modificados |
| LGPL | Copyleft fraca | Sim, com ligação que permita substituir a biblioteca | Entregar o fonte da biblioteca e suas modificações nela |
| GPL | Copyleft | Na prática, não, se houver distribuição de obra derivada | Distribuir o conjunto sob GPL com fonte |
| AGPL | Copyleft de rede | Na prática, não, nem como SaaS | Oferecer o fonte aos usuários da rede |
Como checar o repositório antes de licenciar ou vender
- Gere a lista de dependências. O gerenciador de pacotes (npm, pip, Composer, Maven, NuGet) mostra as dependências diretas e transitivas.
- Rode um scanner de licenças. Existem ferramentas open source que leem o manifesto e apontam a licença de cada pacote. Olhe também arquivos copiados à mão para dentro do repositório, que o scanner de pacotes não vê.
- Marque o que é copyleft. GPL, AGPL e LGPL vão para uma lista separada.
- Decida caso a caso. Trocar a biblioteca por uma alternativa permissiva, isolar o componente num processo separado ou, se não houver saída, licenciar aquela parte sob a licença original.
- Documente. O resultado vira um anexo do contrato de licença ou de venda.
Onde isso entra no valor do código
| Repositório | Efeito no valor |
|---|---|
| Com avisos de terceiros organizados e sem copyleft no núcleo | Vale mais e vende mais rápido |
| Com GPL no núcleo do produto | Reduz quem pode comprar |
Veja como isso entra no preço em quanto vale um código fonte. Para o contrato, veja contrato de licença de software.