search A mídia que reinventa a empresa

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? Definição e tipos de licença

Por Maëlys De Santis

Em 28 de outubro de 2024

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

Tipos de software 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?

Artigo traduzido do francês