O que é Software Livre?
Este artigo vai ajudar a entender melhor o que é software livre, qual o significado de “Livre” em seu nome, sua relação com código aberto (open source) e o que você pode e não pode fazer com Software Livre.
O que é Software Livre?
A língua portuguesa é muito feliz na tradução do termo de “Free Software” para “Software Livre”, porque o sentido do termo “Free” em free software não tem nada a ver com preço mas sim com liberdade.
“Software livre” significa um software que respeite as liberdades e comunidade de seus usuários. Basicamente significa que seus usuários têm a liberdade de rodar, copiar, distribuir, estudar, modificar e melhorar o software. Portanto “software livre” é sobre liberdade, não preço. […]
Você pode ter pago dinheiro para obter cópias de um software livre, ou pode ter tido acesso a essas cópias sem pagar nada. Mas independentemente da forma como você conseguiu suas cópias, você sempre terá a liberdade de copiar e modificar o software, e até mesmo de vender outras cópias.
Trecho retirado do texto “What is Free Software?” disponível no site gnu.org, da Free Software Foundation.
Portanto software livre é também um software de código aberto, mas não apenas isso. É um software que pode ter seus fontes lidos e modificados por qualquer pessoa, e que permita a redistribuição por qualquer pessoa.
As quatro liberdades essenciais do software livre
A Free Software Foundation indica que para que um software seja considerado livre, ele deve respeitar quatro liberdades essenciais, são elas:
Liberdade 0 - liberdade de rodar o programa como você quiser, por qualquer motivo.
- Liberdade 1 - liberdade de estudar como o programa funciona, e modificá-lo para que faça a computação que você desejar. Ter acesso ao código-fonte é uma pré-condição para esta liberdade.
- Liberdade 2 - liberdade de redistribuir cópias para que você possa ajudar outrem.
- Liberdade 3 - liberdade de distribuir cópias das versões modificadas com outrem. Ao fazer isso você permite que toda a comunidade se beneficie com as suas alterações. Ter acesso ao código fonte é pré-condição para esta liberdade.
Com estas quatro liberdades essenciais fica claro que software livre (free software) não é sinônimo de software de código aberto (open source software). Visto que um software puramente de código aberto mas que não possui uma licença livre pode te proibir de executar alguma das liberdades acima: de redistribuir cópias do original, ou de distribuir modificações por exemplo.
Mas de toda forma não é possível existir um software livre e que não possua código aberto, porque isto violaria diretamente as liberdades 1 e 3.
Licenciamento de software livre
O segredo para entender se o software em questão é livre ou não está em sua licença de uso.
Softwares que são lançados com licenças como GNU GPL, GNU AGPL, GNU LGPL, licenças do tipo Copyleft, domínio público, etc., podem ser considerados livres. Mesmo que tenha sido desenvolvido por uma pessoa ou empresa.
Também é possível encontrar licenças de código aberto e que não são livres, como a JSON, Ms-SS da MicroSoft e a Open Public License. O motivo de não serem livres inclui restrições na redistribuição como proibição de venda ou restrição de uso como “somente para estudantes”.
Softwares com licenças do tipo Freeware ou Shareware não podem ser considerados livres: na maioria dos casos você não tem acesso aos fontes do software (liberdades 1 e 3) e há restrições de distribuição como proibido vender ou revender (liberdade 2).
Qualquer licença que limite o uso, modificação, distribuição e redistribuição do software não pode ser considerada livre.
A recomendação de licenciamento da FSF para software livre
Se você quer desenvolver um software e quer torná-lo livre, a recomendação geral da Free Software Foundation é de utilizar as licenças compatíveis com a GNU GPL - General Public License.
A licença mais utilizada pelo projeto GNU é a General Public License ou GPL, considerada uma “licença viral” porque obriga que quaisquer alterações do código fonte sejam também distribuídas com a mesma licença do original. De forma que toda modificação de um software GPL 3.0 precisa ser publicada sob licença GPL 3.0.
Por exemplo, se você disponibilizou uma biblioteca chamada libmaravilhosa via GPL 3.0, qualquer software que utilize esta biblioteca via link estático ou dinâmico, vira um derivado e, portanto, precisa ser distribuído através da licença GPL 3.0.
Outra licença que pode ser utilizada, principalmente por bibliotecas, é a licença GNU Lesser GPL ou LGPL que é um pouco mais permissiva que a GPL 3.0. A LGPL obriga que todo software que incorpore o software licenciado sob LGPL indique a origem e a licença deste software licenciado, e também permita que usuários modifiquem a parte licenciada.
Se a biblioteca libmaravilha estiver sob LGPL 3.0 e o software incrivel.exe utiliza esta biblioteca, ele precisa indicar que a biblioteca libmaravilha foi utilizada, que sua licença é a LGPL 3.0 e deve permitir que seus usuários modifiquem a libmaravilhosa. Portanto se você utilizou link dinâmico (arquivos .so, .dll ou mesmo código fonte) então tudo certo. Mas se você utilizou link estático, que incorpora a biblioteca ao seu binário final, você precisa distribuir seu código com LGPL.
Para serviços online (SaaS) também foi criada a licença GNU Affero GPL ou AGPL. Caso um serviço do tipo SaaS utilize software licenciado sobre AGPL, o provedor é obrigado a distribuir sua versão modificada do software.
Acesse lista completa de licenças compatíveis com a GNU GPL para descobrir mais e mais detalhes sobre cada uma.
Comentários