O que é uma licença de código aberto? Definição e tipos de licença
O que é uma licença de código aberto? Essas licenças, também conhecidas como licenças de código aberto, regem o uso de software de código aberto. O código-fonte desse software pode ser reutilizado e as versões modificadas podem ser redistribuídas sob determinadas condições.
GNU GPL, MIT, Apache, com ou sem copyleft ? Como você escolhe uma licença? Analisamos as licenças de código aberto mais comumente usadas para ajudar os desenvolvedores a escolher a mais adequada ao seu projeto.
Licenças de código aberto: definição
O que é uma licença de código-fonte aberto?
Uma licença de código aberto é uma licença de software cujo código-fonte é "aberto". Em outras palavras, o código é disponibilizado para o público em geral e pode ser compartilhado e modificado. Ela também é chamada de software livre ou licença livre.
Esse tipo de licença não remove de forma alguma os direitos autorais do autor sobre a licença; simplesmente, o autor concede aos usuários o direito de usar a licença e explorar seu trabalho.
A Open Source Initiative é uma organização que promove o uso de software de código aberto em todo o mundo.
©️ guidecms.com
Por que adotar o código aberto?
A ideia original era oferecer uma alternativa às licenças proprietárias protegidas por direitos autorais. Esses direitos são detidos por uma empresa ou por um programador.
Hoje, o código aberto é baseado em uma comunidade sólida.
©️ Anybox
Quais são os quatro critérios que definem o software livre?
Pode-se dizer que um software é livre se ele oferecer as seguintes liberdades:
- liberdade de usar o software,
- liberdade de modificar o software para atender a necessidades específicas,
- liberdade de copiar e compartilhar o software,
- a liberdade de modificar o software e compartilhar versões modificadas.
Qual é a diferença entre software livre e software de código aberto?
Em inglês, o termo "free software" é ambíguo, pois "free" significa tanto "livre" quanto "gratuito". Foi esse duplo significado que levou a comunidade de desenvolvedores a fazer uma distinção entre software livre e software de código aberto.
A expressão "código-fonte aberto" foi proposta em 1998 por Christine Peterson para transmitir essa realidade em palavras. O objetivo é lembrar às pessoas que o software tem um custo.
O software de código aberto, assim como o software livre, não é um software gratuito. Ele exige recursos, sejam eles humanos, financeiros ou materiais, para :
- desenvolver o software
- modificá-lo e fazê-lo atender às necessidades de uma empresa ou organização,
- mantê-lo atualizado
- resolver problemas na ausência de suporte,
- hospedá-lo em servidores.
Tudo isso tem um custo: não se pode confundir software de código aberto com software livre, mesmo que os usuários possam ter acesso ao código-fonte.
Os diferentes tipos de licença de código-fonte aberto
Há centenas de licenças de código-fonte aberto diferentes. Algumas são compatíveis entre si, outras não. Se forem compatíveis, isso significa que é possível mesclar códigos de diferentes programas.
Vamos dar uma olhada nos tipos mais comuns de licença para ajudá-lo a entender as coisas.
Copyleft
Copyleft é traduzido para o francês como "gauche d'auteur", em referência aos direitos autorais. É a permissão do autor para "usar, estudar, modificar e distribuir seu trabalho", seja ele um texto, uma obra de arte ou um programa de computador.
Isso significa que um usuário de uma obra protegida por copyleft pode modificá-la, reutilizá-la e distribuí-la, mas é obrigado a respeitar as mesmas liberdades que se aplicam à obra original. Em outras palavras, se um desenvolvedor desejar modificar um software e compartilhá-lo novamente, o software modificado estará necessariamente sujeito ao copyleft.
Não é possível distribuir software com uma licença copyleft sob uma licença proprietária.
©️ Wikipedia
Há vários níveis de copyleft:
- copyleft estrito: o software, modificado ou não, e seus componentes só podem ser redistribuídos sob a licença original;
- copyleft padrão ou baixo: o software, modificado ou não, só pode ser redistribuído sob a licença inicial, mas novos componentes podem ser adicionados e redistribuídos sob outra licença, ou mesmo sob uma licença proprietária.
As licenças de copyleft mais conhecidas são as seguintes:
- MPL,
- DSL,
- ODbL,
- GFDL,
- GNU,
- OLD,
- Licença de fonte aberta SIL,
- CC-BY-SA,
- CeCILL,
- licença de arte livre.
Licenças públicas gerais GPL ou GNU GPL
Essas são as licenças de software livre mais amplamente usadas: mais da metade do software livre distribuído atualmente é licenciado sob a GNU GPL.
As licenças GPL (General Public License ) são recomendadas se você quiser tornar seu código acessível e reutilizável pelo maior número possível de pessoas. Elas se beneficiam de um forte copyleft.
Há várias versões disponíveis: GPL 2, GPL 3, sendo a última versão a mais completa, pois lida especialmente com o problema da tivoização ("a criação de um sistema que inclui software livre, mas usa hardware eletrônico para proibir que os usuários executem versões modificadas nele", de acordo com a Wikipedia).
Existem licenças derivadas da GPL, também elaboradas pela Free Software Foundation:
- LGPL, Lesser General Public License (Licença Pública Geral Menor): essa licença é derivada da GNU GPL e tem como objetivo ser menos restritiva com softwares proprietários. Ela é frequentemente aplicada a bibliotecas.
- a licença AGPL, ou GPL Affero, é derivada da versão 3 da GNU GPL. Ela tem um requisito: "se você executar um programa modificado em um servidor e permitir que outros usuários se comuniquem com ele, seu servidor também deverá permitir que eles baixem o código-fonte da versão modificada em execução" (fonte: gnu.org).
A licença do MIT
Essa licença leva o nome do Instituto de Tecnologia de Massachusetts, MIT. O termo é enganoso porque, na realidade, o MIT usa várias licenças.
A licença do MIT é uma licença muito permissiva, com poucas restrições à reutilização do código e sem copyleft. Ela é compatível com um grande número de licenças, incluindo a GNU GPL.
Ela inclui vários modelos de licença, em particular a licença Expat e a licença X11.
A licença MIT é semelhante, em muitos aspectos, à nova licença BSD.
A licença BSD
A licença BSD é uma licença de código aberto permissiva e sem copyleft, compatível com a GNU GPL.
Recomenda-se não usar a versão original devido a uma cláusula de publicidade restritiva: o aviso de direitos autorais é obrigatório em qualquer anúncio ou documento fornecido com o software. A nova versão da licença BSD não contém mais essa cláusula.
Entre as licenças BSD mais populares está a licença Apache. Essa é uma licença permissiva, compatível com a GNU GPL v3, mas não com a v2. Recomenda-se usar a licença Apache 2.0 para programas grandes, especialmente para evitar as armadilhas associadas a patentes.
Tabela de diferentes licenças de código aberto
Nome da licença | Copyleft | Compatibilidade GNU GPL |
---|---|---|
GNU, GNU GPL | Sim | SIM |
MIT | Não | Sim |
BSD | Não | Sim |
Apache | Não | Sim com GNU GPL v3 |
Os softwares de código aberto mais populares
Aqui estão alguns exemplos de software de código aberto por categoria:
- Estrutura: Angular (MIT),
- FTP/cliente de transferência de arquivos: FileZilla (GNU GPL),
- CMS: Drupal (GNU),
- CRM: SuiteCRM (AGPL),
- Gerenciamento de banco de dados: mySQL (GNU),
- Editor de texto: Notepad2 (GNU),
- ERP: Odoo (GNU GPL),
- Forja: GitLab (MIT),
- Navegador da Web: Mozilla Firefox (GNU GPL),
- Sistema operacional: Red Hat Enterprise Linux,
- Servidor HTTP: Apache HTTP Server (Apache).
Dicas finais: como você escolhe uma licença de código aberto?
- O copyleft é um critério obrigatório?
- Quão reutilizável você deseja que seu código seja?
- Você precisa de uma licença que permita o trabalho em comunidade com outros desenvolvedores?
- Você precisa de uma licença permissiva e, em caso afirmativo, quão permissiva ela deve ser?
- Você precisa de uma grande comunidade de suporte?