Tudo o que você precisa saber sobre as licenças de projetos open source

Diego Martins de Pinho
Training Center
Published in
5 min readOct 24, 2017

Desde que o Facebook mudou a licença dos projetos React, Flow, Jest e Immutable.js de BSD-3+Patents para MIT, a discussão sobre licenças open source entrou em alta. Essa mudança foi um grande alívio para a comunidade e o mercado. Isso porque a licença anterior tinha algumas cláusulas que poderiam causar problemas aos projetos (veremos o porque no final do artigo). Tanto que o Wordpress anunciou, um pouco antes da licença mudar, que eles abandonaram o React por causa dela.

Para que possamos entender melhor como as licenças open source funcionam, vou te dar uma ideia geral das mais conhecidas: GPLv3, Apache License 2.0, BSD e MIT.

As licenças open source

Mesmo tendo suas particularidades, grande maior parte das licenças de código aberto seguem os mesmos princípios, e isso não é por acaso. Esses princípios são:

  1. Software pode ser modificado, usado comercialmente e distribuído.
  2. Software pode ser modificado e usado de forma privada.
  3. A licença e os direitos precisam ser incluídos no software.
  4. Os autores dos software não provêm garantias.

Todas elas possuem um aspecto importante em comum: A Open Source Initiative (OSI) (Iniciativa pelo código aberto) aprovaram elas. A OSI é uma organização fundada em 1998 com a meta de definir o que significa código livre.

Com isso em mente, vamos dar uma olhada nas principais “regras” de cada uma delas.

GNU General Public License, version 3 (GPLv3)

Esta é a opção para quem quer deixar o seu código aberto mas ao mesmo tempo quer segurança. Das mais famosas, esta é a licença mais restritiva. As suas principais regras são:

  • O código-fonte obrigatoriamente deve ser público sempre que uma distribuição do software é feita. Ou seja, se você lançar um produto que é uma modificação de um projeto deste tipo, você precisa tornar o seu código público também.
  • Modificações do software devem ser lançadas sob a mesma licença.
  • Mudanças feitas no código-fonte precisam obrigatoriamente ser documentadas.
  • Se material patenteado for usado na criação do software, ele concede o direito aos usuários de usá-lo. Se o usuário processar qualquer pessoa com o uso do material patenteado, eles perderão o direito de usar o software.

Alguns projetos famosos com esta licença são o Bash, GIMP e o Linux (GPLv2).

Apache License 2.0

Esta licença já oferece bem mais flexibilidade aos usuários. Isso porque:

  • O código-fonte não precisa ser necessariamente público quando a distribuição do software é feita.
  • Modificações podem ser lançadas sob qualquer licença.
  • Mudanças feitas no código-fonte precisam ser documentadas.
  • Oferece a mesma proteção de uso de patente da GPLv3 que vimos acima.
  • Proíbe explicitamente o uso de nomes de marcas registradas encontrados no projeto.

Alguns projetos famosos com esta licença são o Android, Apache e o Swift.

Berkeley Software Distribution (BSD)

Esta é a licença que o React estava adotando até então. Ela possui duas versões principais: 2-clause e 3-clause. Vamos dar uma olhada no que ela oferece:

  • O código-fonte não precisa ser necessariamente público quando a distribuição do software é feita.
  • Modificações podem ser lançadas sob qualquer licença.
  • Mudanças feitas no código-fonte não precisam ser documentadas.
  • Não tem nenhuma posição em relação ao uso de patentes.
  • A licença e os direitos de uso precisam ser incluídos na documentação da versão compilada do código-fonte.
  • O BSD 3-clause afirma que os nomes dos autores e colaboradores nãopodem ser usados ​​para promover produtos derivados do software sem permissão explícita.

Alguns projetos famosos com esta licença são o Go, Pure.css e o Sentry.

MIT License

Por fim, a licença MIT. Dentre todas as que listamos, ela é a mais permissiva de todas, além de ser a mais famosa. Comparado às demais, ela oferece pouquíssima proteção aos autores do software. Vamos dar uma olhada nas principais cláusulas:

  • O código-fonte não precisa ser necessariamente público quando a distribuição do software é feita.
  • Modificações podem ser lançadas sob qualquer licença.
  • Mudanças feitas no código-fonte não precisam ser documentadas.
  • Não tem nenhuma posição em relação ao uso de patentes.

Um grande projeto com essa licença é o próprio Training Center! Além disso, há outros famosos como o: jQuery, Bootstrap e o Rails.

Em resumo, temos o seguinte:

Diagrama das principais licenças open source

No final das contas, o que mudou no Facebook?

Os produtos do Facebook eram distribuídos sob a licença BSD-3 com algumas proteções a mais de patentes. Com isso, caso o seu projeto se envolvesse em uma ação legal contra o Facebook (ou suas empresas subsidiárias), você perderia o direito de usar a tecnologia. Em empresas com operações gigantes — como o já citado Wordpress — isso poderia ser fatal. Com a mudança da licença para MIT, isso não é mais um problema :) (ou não, rs)

Conclusão

Agora que você já conhece melhor o funcionamento das principais licenças para projetos open source disponíveis, pode escolher com muito mais consciência a licença para o seu projeto.

E este artigo também quase é um caso de open source! Ele é uma versão modificada do artigo publicado na Code Prestige! ;)

Referências

Gostou? Recomende 👏 este artigo , comente, acompanhe nossa publicação e compartilhe!

--

--

Diego Martins de Pinho
Training Center

Professor de tecnologia, desenvolvedor de software e escritor