In this article
Licenças de código aberto: tipos e comparação
Muitos compradores de software — até mesmo desenvolvedores iniciantes — entendem o termo “código aberto” como se significasse que o software pode ser usado, copiado, modificado e distribuído à vontade. Essa interpretação pode surgir da confusão entre código aberto, domínio público e shareware, que podem ser usados e modificados gratuitamente, sem permissões ou licenças específicas.
A verdade é que, na maioria dos casos, o software de código aberto está sujeito a um dos vários tipos de licenças de código aberto e nem sempre é gratuito.
Ao contrário do software proprietário, cujo código-fonte os fornecedores geralmente impedem que seja acessado, copiado ou modificado, o código aberto permite que o código seja usado, reutilizado, compartilhado, modificado e distribuído em outros programas ou aplicações. Mas, assim como no licenciamento de software proprietário, o software de código aberto está sujeito a diferentes termos e restrições legais, conforme o tipo de licença em vigor. Por isso, é importante manter a conformidade com os termos das licenças de software de código aberto. Você também deve estar ciente dos outros riscos associados ao uso de software de código aberto.
Este artigo descreve os diferentes tipos de licenças de código aberto e como todas buscam proteger tanto os autores quanto os usuários do software, controlando o uso indevido e não autorizado do código aberto.
O que é uma licença de código aberto?
As licenças de software de código aberto determinam como outras pessoas — além do criador — podem usar, modificar ou distribuir o código do software. Elas concedem a outros usuários permissão e direitos para usar ou adaptar o código em novas aplicações ou incluí-lo em outros projetos.
Uma das principais vantagens do código aberto é sua visibilidade, que facilita a resolução de problemas e ajuda a entender melhor como algo funciona quando a documentação está incompleta ou incorreta.
Dependendo do tipo de licença de código aberto, você pode até ter permissão para modificar o código-fonte original e adaptá-lo às suas necessidades ou corrigir problemas encontrados. A licença determina se isso é possível e sob quais condições. Por exemplo, pode ser necessário disponibilizar publicamente todas as modificações.
Saiba mais sobre segurança de código aberto com a Snyk
Confira nosso relatório State of Open Source Security 2023 ou leia sobre as 10 principais vulnerabilidades de código aberto
Quais são os diferentes tipos de licenças de código aberto?
Existem mais de 80 variações de licenças de código aberto, mas elas geralmente se enquadram em duas categorias principais: copyleft e permissivas:
Licença copyleft é um tipo de licença segundo a qual o código derivado do código aberto original herda os termos da licença.
Licença permissiva é um tipo de licença que oferece mais liberdade para reutilizar, modificar e distribuir o código.

Licenças copyleft
As licenças copyleft de código aberto mais populares, da mais restritiva à menos restritiva, são AGPL, GPL, LGPL, EPL e Mozilla:
A GNU General Public License (GPL) preserva os avisos de licença e os termos de direitos autorais, além de ser adequada para uso comercial, privado e relacionado a patentes. Todo software que utiliza código GPL deve distribuir todo o seu código-fonte sob a mesma licença. Portanto, se você usar código GPL no seu software (por exemplo, uma biblioteca GPL) e distribuir sua aplicação, todo o seu código-fonte deverá ser disponibilizado sob a mesma licença GPL. Essa restrição faz da GPL uma licença copyleft forte.
A Affero GPL (AGPL) acrescenta apenas uma cláusula, mas importante para certos tipos de software. Como a licença GPL só se aplica quando o software é distribuído, há uma brecha para softwares disponibilizados apenas pela rede, ou seja, que não são explicitamente “distribuídos”. A licença AGPL fecha essa brecha ao incluir uma cláusula de interação remota pela rede, que faz a licença GPL se aplicar a qualquer software usado por meio de uma rede.
A Lesser General Public License (LGPL) estabelece termos semelhantes aos das licenças copyleft de código aberto AGPL e GPL, incluindo a preservação dos avisos de direitos autorais e de licença. A principal diferença é que projetos ou objetos menores acessados por meio de obras maiores licenciadas não exigem a distribuição do projeto maior. Além disso, o código-fonte modificado não precisa ser distribuído sob os mesmos termos aplicáveis ao projeto de código maior.
A Eclipse Public License (EPL) é muito usada em software empresarial. Com a EPL, softwares desenvolvidos com código EPL, não EPL e até mesmo proprietário podem ser combinados e sublicenciados, desde que os elementos que não sejam EPL permaneçam independentes, em módulos ou objetos separados. As modificações podem ser feitas sob a licença EPL, mas devem ser disponibilizadas sob os mesmos termos.
A Mozilla Public License (MPL) é a licença de software copyleft de código aberto menos restritiva. Ela facilita a modificação e o uso do código em softwares de código fechado e/ou proprietários, desde que todo código licenciado sob a MPL permaneça em arquivos separados e esses arquivos sejam distribuídos com o software. A MPL também concede direitos de patente e exige a preservação dos avisos de direitos autorais.
Licenças permissivas
As licenças permissivas de código aberto mais populares são Apache, MIT, BSD e Unlicense.
A Apache License exige avisos de licença e direitos autorais no código distribuído e/ou em um aviso incluído no software. No entanto, obras derivadas, projetos maiores e modificações podem adotar termos de licenciamento diferentes ao serem distribuídos e não precisam fornecer o código-fonte. As licenças Apache incluem concessão de direitos de patente.
A MIT License, que leva o nome da famosa universidade onde foi criada, talvez seja a licença de código aberto mais usada no mundo — possivelmente por ser curta, clara e fácil de entender. Ela permite que qualquer pessoa faça o que quiser com o código original, desde que o aviso original de direitos autorais e licença seja incluído no código-fonte ou software distribuído. Ela isenta os autores de qualquer responsabilidade e não inclui explicitamente uma concessão de direitos de patente.
A Berkeley Source Distribution (BSD) License é outra licença permissiva de código aberto que preserva os avisos de licença e direitos autorais, mas permite que obras maiores ou licenciadas sejam distribuídas sem o código-fonte e sob termos de licença diferentes. A BSD License de 2 cláusulas é muito parecida com a licença de código aberto MIT, enquanto as licenças BSD de 3 e 4 cláusulas acrescentam mais requisitos ou restrições relacionados à reutilização e a outros termos.
Unlicense: como o nome indica, é a licença de código aberto menos restritiva, pois disponibiliza o código aberto em domínio público. Não há condições: essas obras sem licença podem ser distribuídas sem o código-fonte e sob termos diferentes.
Qual é a melhor licença de código aberto?
A escolha do tipo de licença de código aberto depende principalmente da intenção do licenciante ou desenvolvedor quanto ao uso do software. Veja alguns fatores a considerar ao comparar licenças:
É preciso ter cuidado ao escolher uma licença copyleft. Se a licença original for muito permissiva, o código modificado também terá poucas restrições, o que pode não ser vantajoso para o autor.
Dito isso, as licenças copyleft geralmente impõem mais restrições — e talvez menor exposição a responsabilidades legais — do que as licenças permissivas.
Se a intenção é tornar o código o mais reutilizável e compartilhável possível, uma licença permissiva provavelmente é a melhor escolha.
Se você desenvolve software usado por meio de uma rede, escolher a AGPL pode trazer grandes vantagens. Um exemplo comum são os bancos de dados de código aberto: sem uma licença AGPL, qualquer empresa (como um grande provedor de nuvem) poderia aprimorar seu produto e monetizá-lo sem precisar distribuir as modificações.
Há duas versões principais da licença GPL: GPLv2 e GPLv3. A GPLv3 tem muitas diferenças, a maioria voltada a questões não contempladas pela GPLv2, como patentes. A GPLv3 também melhora a compatibilidade com outras licenças de código aberto, como a Apache License v2. Porém, vale lembrar que as duas versões da GPL são incompatíveis entre si.
Como as licenças MIT são muito usadas, elas são amplamente reconhecidas e compreendidas. O uso de software sob a licença MIT não impõe restrições à redistribuição ou monetização, o que torna essas licenças muito atraentes para diversos usos. Elas também são compatíveis com muitas outras licenças de código aberto, permitindo que código licenciado sob a MIT seja usado em outros projetos de código aberto com licenças diferentes.
Gestão de licenças de código aberto
Muitos desenvolvedores, empresas e companhias de software comercial trabalham com uma combinação de vários tipos de licenças de código aberto. Manter o controle dessas licenças pode se tornar cada vez mais complexo à medida que o software é desenvolvido, adquirido e distribuído:
Manutenção dos tipos de licença derivados com base nas licenças do software original
Atenção às datas de vigência e aos requisitos de renovação
A Snyk oferece uma solução completa para conformidade de licenças que ajuda você a manter o ritmo acelerado de desenvolvimento sem deixar de cumprir os termos das licenças de software de código aberto nos seus projetos.
“Como a ferramenta da Snyk identifica problemas relacionados a licenças de código aberto, nossos desenvolvedores conseguem gerar um relatório claro e fácil de gerenciar para enviar à equipe jurídica, economizando muitos dias de trabalho.”
Scott Mitchell, gerente de segurança de aplicações na Blue Prism.
Agende uma demonstração ao vivo do Snyk para segurança de código aberto
Converse com nossos especialistas em segurança e veja como o Snyk pode ajudar você a usar código aberto com segurança