Artigo original: How open source licenses work and how to add them to your projects
Escrito por: Radu Raicea
Recentemente, tivemos algumas notícias empolgantes para os desenvolvedores em todo o mundo. O Facebook mudou a licença de várias bibliotecas que eles desenvolvem. Eles mudaram de patentes BSD-3+ para MIT (Massachusetts Institute of Technology).
Certo, mas o que significa? Quais são as implicações de diferentes licenças de código aberto?
Este artigo dará a você uma rápida compreensão das licenças populares. Ele também ensinará como aplicá-las aos seus projetos de código aberto no GitHub.
A autoridade
As licenças de código aberto mais populares têm um aspecto importante em comum. A Iniciativa de Código Aberto (OSI - Open Source Initiative) as aprovou.
A OSI foi formada em 1998 com o objetivo de promover o software de código aberto. Ela criou a Definição de Código Aberto (OSD - Open Source Definition) para definir o que significa um software de código aberto.
É assim que eles se descrevem:
A Iniciativa de Código Aberto (OSI - Open Source Initiative) é uma organização sem fins lucrativos com escopo global formada para educar e defender os benefícios do código aberto e construir pontes entre os diferentes círculos da comunidade de código aberto.
As licenças
A maioria das licenças de código aberto inclui as seguintes declarações:
- O software pode ser modificado, utilizado comercialmente e distribuído.
- O software pode ser modificado e utilizado em particular.
- Uma licença e um aviso de direitos autorais devem ser incluídos no software.
- Os autores do software não fornecem nenhuma garantia com o software e não são responsáveis por nada.
Passaremos pelas licenças mais populares, de modo a mostrar as mais restritivas e as mais permissivas (da perspectiva do usuário).
GNU (General Public License ) – Licença Pública Geral, versão 3 (GPLv3)
A GPLv3 é uma das licenças mais restritivas. Ela oferece alta proteção para o autor do software.
- O código-fonte deve ser tornado público sempre que uma distribuição do software for feita.
- As modificações do software devem ser liberadas sob a mesma licença.
- As alterações feitas no código-fonte devem ser documentadas.
- Se o material patenteado for usado na criação do software, ela concede aos usuários o direito de usá-lo. Se o usuário processar alguém pelo uso do material patenteado, ele perde o direito de usar o software.
A GPLv2 é também muito popular. A principal diferença em relação à GPLv3 é a cláusula sobre concessão de patentes.
Essa cláusula foi acrescentada na versão 3 para evitar que as empresas cobrassem dos usuários pelo uso de suas patentes (texto em inglês).
Projetos populares que usam GPLv3 são o Bash e o GIMP. O Linux utiliza a GPLv2.
Ezequiel Foncubierta apontou algo importante para as licenças GPL:
A licença do seu código-fonte deve ser compatível com a licença do código-fonte aberto ao qual você está vinculado. Por exemplo, se seu código for proprietário, você não terá permissão para usar uma biblioteca sob a licença GPL. É aqui que as pessoas tendem a cometer mais erros.
Licença Apache 2.0
A licença Apache 2.0 oferece mais flexibilidade para os usuários.
- O código-fonte não precisa ser público quando uma distribuição do software é feita.
- As modificações no software podem ser liberadas sob qualquer licença.
- As alterações feitas no código fonte devem ser documentadas.
- Ela oferece a mesma proteção de uso de patente que a GPLv3.
- Ela proíbe explicitamente o uso de nomes de marcas registradas encontradas no projeto.
Projetos populares usando a licença Apache 2.0 são o Android, o Apache e o Swift.
Distribuição de Software da Berkeley (BSD - Berkeley Software Distribution)
A BSD tem duas versões principais: a de 2 cláusulas e a de 3 cláusulas (textos em inglês). Ambas oferecem mais flexibilidade para os usuários do que a Licença Apache 2.0.
- O código-fonte não precisa ser público quando uma distribuição do software é feita.
- As modificações no software podem ser liberadas sob qualquer licença.
- As alterações feitas no código-fonte podem não ser documentadas.
- Ela não oferece nenhuma posição explícita sobre o uso da patente.
- A licença e o aviso de direitos autorais devem ser incluídos na documentação da versão compilada do código-fonte (em oposição a apenas no código-fonte).
- A BSD de 3 cláusulas afirma que os nomes do autor e dos colaboradores não podem ser usados para promover produtos derivados do software sem permissão.
Os projetos populares que usam a licença BSD são o Go (3 cláusulas), o Pure.css (3 cláusulas) e o Sentry (3 cláusulas).
Licença MIT (Massachusetts Institute of Technology)
A MIT é uma das licenças mais permissivas. É também a mais popular. Ela oferece uma proteção muito baixa para o autor do software.
- O código-fonte não precisa ser público quando uma distribuição do software é feita.
- As modificações no software podem ser liberadas sob qualquer licença.
- As alterações feitas no código-fonte podem não ser documentadas.
- Ele não oferece nenhuma posição explícita sobre o uso da patente.
Os projetos populares que utilizam a MIT são o Angular.js, o jQuery, o Rails, o Bootstrap e muitos outros.
O React.js do Facebook tinha uma licença de patente BSD-3+ até 25 de setembro de 2017. Ela combinava a licença do BSD-3 com uma cláusula adicional sobre o uso de patentes.
Em resumo, se você processar o Facebook ou qualquer uma de suas subsidiárias, perderá o direito de usar o React (ou qualquer outro software sob a mesma licença).
O React agora é licenciado pela MIT. Agora, você pode processar o Facebook e ainda usar o React. Que alívio!
Aplicando uma licença para os seus projetos de código aberto
Licenciar os seus projetos é fácil. Você precisa apenas adicionar um LICENSE
, LICENSE.txt
ou LICENSE.md
no diretório raiz do seu repositório.
O GitHub torna tudo ainda mais fácil:
- Abra o seu repositório GitHub em um navegador.
- No diretório raiz, clique em
Create new file
. - Nomeie o arquivo "LICENSE".
- Clique em
Choose a license template
. - Escolha uma das licenças (todas as mencionadas neste artigo estão lá).
- Uma vez escolhido, clique em
Review and submit
. - Faça o
commit
do arquivo.
Em resumo...
- Uma das licenças mais restritivas é a GPL
- Uma das licenças mais permissivas é a MIT.
- Outras licenças populares são a licença Apache 2.0 e a BSD.
- Para aplicar uma licença em seu projeto do GitHub, você precisa apenas criar um arquivo
LICENSE
usando os templates de licença do GitHub.
Confira também o artigo do autor sobre como ele usou o Python para encontrar pessoas interessantes para seguir no Medium (texto em inglês)!