Você está na página 1de 10

Software livre.

O que é o software livre?


Por “software livre” devemos entender aquele software que respeita a liberdade e
senso de comunidade dos usuários. Grosso modo, isso significa que os usuários possuem
a liberdade de executar, copiar, distribuir, estudar, mudar e melhorar o software.
Assim sendo, “software livre” é uma questão de liberdade, não de preço. Para
entender o conceito, pense em “liberdade de expressão”, não em “cerveja grátis”. Por
vezes chamamos de “libre software” para mostrar que livre não significa grátis, pegando
emprestado a palavra em francês ou espanhol para “livre”, para reforçar o entendimento
de que não nos referimos a software como grátis.
Você pode ter pago dinheiro por suas cópias de software livre, ou você pode tê-
las obtido a custo zero, mas independentemente de como você conseguiu suas cópias,
você sempre deve ter a liberdade para copiar e mudar o software, ou mesmo para vender
cópias.
Nós fazemos campanha por essas liberdades porque todo mundo merece. Com
essas liberdades, os usuários (tanto individualmente quanto coletivamente) controlam o
programa e o que ele faz por eles. Quando os usuários não controlam o programa, o
programa controla os usuários. O desenvolvedor controla o programa e, por meio dele,
controla os usuários. Esse programa não livre é “privativo” e, portanto, um instrumento
de poder injusto.
“Código aberto” (ou open source) é algo diferente: tem uma filosofia muito
diferente baseada em valores diferentes. Sua definição prática também é diferente, mas
quase todos os programas de código aberto são de fato livres. Nós explicamos a diferença
em Por que o “Código Aberto” não compartilha dos objetivos do Software Livre.

A Definição de Software Livre

A definição de software livre apresenta os critérios utilizados para definir se um


programa de computador em particular se qualifica como software livre ou não. De
tempos em tempos nós revisamos essa definição, para esclarecê-la ou para resolver
questões mais sutis.

As quatro liberdades essenciais


Um programa é software livre se os usuários possuem as quatro liberdades
essenciais:
▪ A liberdade de executar o programa como você desejar, para qualquer propósito
(liberdade 0).
▪ A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades
(liberdade 1). Para tanto, acesso ao código-fonte é um pré-requisito.
▪ A liberdade de redistribuir cópias de modo que você possa ajudar outros (liberdade
2).
▪ A liberdade de distribuir cópias de suas versões modificadas a outros (liberdade 3).
Desta forma, você pode dar a toda comunidade a chance de beneficiar de suas
mudanças. Para tanto, acesso ao código-fonte é um pré-requisito.

Um programa é software livre se ele dá aos usuários todas essas liberdades de


forma adequada. Do contrário, ele é não livre. Enquanto nós podemos distinguir vários
esquemas de distribuição não livres em termos de eles falham em serem livres,
consideramos todos eles igualmente antiéticos.
Em qualquer cenário, essas liberdades devem ser aplicadas em qualquer código
do qual planejamos fazer uso, ou que levamos outros a fazer uso. Por exemplo, considere
um programa A que automaticamente inicia um programa B para lidar com alguns casos.
Se nós planejamos distribuir A como está, isso significa que usuários precisarão de B, de
forma que nós precisamos julgar se tanto A quanto B são livres. Porém, se nós planejamos
modificar A de forma que ele não use B, apenas A precisa ser livre; B não é pertinente
àquele planejamento.

Software livre pode ser comercial

“Software livre” não significa “não comercial”. Ao contrário, um programa livre


deve estar disponível para uso comercial, desenvolvimento comercial e distribuição
comercial. Essa política é de fundamental importância – sem ela, o software livre não
poderia atingir seus objetivos.
Queremos convidar a todos a usar o sistema GNU, incluindo empresas e seus
funcionários. Isso requer permissão para uso comercial. Esperamos que os programas de
substituição gratuita suplantem os programas privativos comparáveis, mas eles não
podem fazer isso se as empresas forem proibidas de usá-los. Queremos que os produtos
comerciais que contêm software incluam o sistema GNU, e isso constituiria uma
distribuição comercial por um preço. O desenvolvimento comercial de software livre não
é mais incomum; tal software livre comercial é muito importante. O suporte profissional
pago para software livre atende a uma necessidade importante.
Portanto, excluir o uso comercial, o desenvolvimento comercial ou a distribuição
comercial atrapalharia a comunidade do software livre e obstruiria seu caminho para o
sucesso. Devemos concluir que um programa licenciado com tais restrições não se
qualifica como software livre.
Um programa livre deve oferecer as quatro liberdades a qualquer usuário que
obtenha uma cópia do software, que cumpriu até o momento com as condições da licença
livre que cobre o software em qualquer distribuição anterior dele. Colocar algumas das
liberdades fora dos limites para alguns usuários, ou exigir que os usuários paguem, em
dinheiro ou em espécie, para exercê-las, equivale a não conceder as liberdades em questão
e, portanto, torna o programa não livre.

Esclarecendo a fronteira entre livre e não livre

No resto deste artigo, vamos explicar mais precisamente quão longe as várias
liberdades precisam ser estendidas, em várias questões, para um programa ser livre.

A liberdade de executar o programa como você desejar


A liberdade de executar o programa significa que qualquer tipo de pessoa ou
organização é livre para usá-lo em qualquer tipo de sistema computacional, ou para
qualquer tipo de trabalho e propósito, sem que seja necessário comunicar ao
desenvolvedor ou qualquer outra entidade específica. Nessa liberdade, é o propósito do
usuário que importa, não aquele do desenvolvedor; você, como usuário, é livre para rodar
o programa para seus propósitos e, caso você o distribua a outra pessoa, ela também será
livre para executá-lo com os propósitos dela, mas você não é intitulado a impor seus
propósitos sobre ela.
A liberdade de executar o programa como você deseja significa que você não está
proibido ou impedido de executá-lo. Isso não tem nada a ver com qual funcionalidade o
programa possui, se ele é tecnicamente capaz de funcionar em qualquer ambiente dado
ou se ele é útil para alguma atividade computacional específica.
Por exemplo, se o código rejeitar arbitrariamente certos dados significativos – ou
mesmo falhar incondicionalmente – isso pode tornar o programa menos útil, talvez até
mesmo totalmente inútil, mas não nega aos usuários a liberdade de executar o programa,
por isso não entra em conflito com a liberdade 0. Se o programa for livre, os usuários
podem superar a perda de utilidade, porque as liberdades 1 e 3 permitem que usuários e
comunidades façam e distribuam versões modificadas sem o código arbitrário de
incômodo.
“Como você desejar” inclui, opcionalmente, “de forma alguma” se for isso que
você deseja. Portanto, não há necessidade de uma outra “liberdade para não executar um
programa”.

A liberdade de estudar o código-fonte e fazer alterações


Para que as liberdades 1 e 3 (a liberdade de modificar e a liberdade de publicar
versões modificadas) façam sentido, você precisa ter acesso ao código-fonte do programa.
Consequentemente, acesso ao código-fonte é uma condição necessária para o software
livre. Código-fonte “obscurecido” não é código-fonte real e não conta como código-fonte.
A liberdade 1 inclui a liberdade de usar sua versão modificada em lugar da
original. Se um programa é entregue num produto projetado para rodar a versão de outra
pessoa, mas se recusa a rodar a sua – prática conhecida como “tivoização”1, “travamento”
ou ainda (na terminologia perversa de seus praticantes) como “boot seguro” – a liberdade
1 se torna pretensão vazia ao invés de realidade prática. Esses binários não são software
livre mesmo que o código-fonte a partir do qual foram compilados seja livre.
Uma maneira importante de modificar um programa é agregar a ele módulos e
sub-rotinas livres. Se a licença do programa diz que você não pode agregar a ele um
módulo com uma licença adequada – por exemplo, se ele requer que você seja o detentor
dos direitos autorais de qualquer código que adicionar – então essa licença é muito
restritiva para ser qualificada como livre.
Se uma modificação constitui ou não um aperfeiçoamento é uma questão
subjetiva. Se o seu direito de modificar um programa é limitado, fundamentalmente, a
mudanças que outra pessoa considere um aperfeiçoamento, o programa não é livre.
Um caso especial de liberdade 1 é excluir o código do programa para que ele
retorne após não fazer nada, ou fazê-lo invocar algum outro programa. Portanto, a
liberdade 1 inclui a “liberdade de excluir o programa”.

A liberdade de redistribuir se assim desejar: requisitos básicos


Liberdade para distribuir (liberdades 2 e 3) significam que você é livre para
redistribuir cópias, modificadas ou não, gratuitamente ou cobrando uma taxa pela
distribuição, a qualquer um, em qualquer lugar. Ser livre para fazer tudo isso significa
(entre outras coisas) que você não deve ter que pedir ou pagar pela permissão para fazê-
lo.
Você também deve ter a liberdade de fazer modificações e usá-las de forma
privada ou em seu trabalho ou lazer, sem sequer mencionar que eles existem. Se publicar
suas modificações, você não deve ser obrigado a avisar ninguém em particular, ou de
qualquer modo em particular.
A liberdade 3 inclui a liberdade de publicar quaisquer versões modificadas como
software livre. Uma licença livre também pode permitir outras maneiras de liberá-las; em
outras palavras, ela não tem que ser uma licença copyleft. No entanto, a licença que requer
que modificações sejam não livres não se qualifica como uma licença livre.
A liberdade de redistribuir cópias deve incluir formas executáveis ou binárias do
programa, bem como o código-fonte, tanto da versão modificada quanto da inalterada.
(Distribuir programas em formato executável é necessário para sistemas operacionais
livres e convenientemente instaláveis.) Não há problemas se não for possível produzir
uma forma binária ou executável (pois algumas linguagens de programação não suportam
este recurso), mas deve ser concedida a liberdade de se redistribuir nessas formas caso
seja desenvolvido um meio de criá-las.

Copyleft
Certas regras sobre a maneira de distribuir o software são aceitáveis, quando elas
não entram em conflito com as liberdades centrais. Por exemplo, o copyleft (apresentado
de maneira muito simples) é a regra de que, quando redistribuindo um programa, você
não pode adicionar restrições quem neguem as liberdades centrais de outras pessoas. Essa
regra não entra em conflito com as liberdades centrais; na verdade, ela as protege.
No projeto GNU, nós usamos o copyleft para proteger legalmente as quatro
liberdades para todos. Nós acreditamos que existem razões importantes pelas quais é
melhor usar o copyleft. Porém, software livre que não faz uso do copyleft também é ético.
Veja Categorias de Software Livre para uma descrição de como “software livre” e
“copylefted software” e outras categorias de software se relacionam umas com as outras.

Regras sobre detalhes de empacotamento e distribuição


Regras sobre como empacotar uma versão modificada são aceitáveis, se elas não
limitam substantivamente sua liberdade de liberar versões modificadas, ou sua liberdade
de criar e usar modificações de forma privada. Portanto, é aceitável que uma licença
requira que você mude o nome do programa na versão modificada, remova um logo ou
identifique suas modificações como suas. Desde que esses requerimentos não sejam tão
penosos que eles efetivamente sejam um empecilho à distribuição de suas mudanças, eles
são aceitáveis; você já está fazendo outras modificações ao programa, não terá muitos
problemas em fazer algumas a mais.
Regras que dizem que “se você publicar sua versão de certa maneira, terá de
publicá-la dessa outra também” podem ser também aceitáveis, na mesma condição. Um
exemplo de regra aceitável é uma que diz que se você distribuiu uma versão modificada
e um desenvolvedor anterior pedir por uma cópia, você deve enviar uma. (Note que tal
regra ainda lhe deixa a possibilidade de distribuir ou não sua versão.) Regras que
requerem a liberação do código-fonte para os usuários para versões que você fez públicas
também são aceitáveis.
Uma questão especial surge quando uma licença requer a mudança do nome pelo
qual o programa é invocado por outros programas. Isso efetivamente cria obstáculos à
publicação de uma versão modificada que possa substituir a original quando invocada por
aqueles outros programas. Esse tipo de requerimento é aceitável apenas quando existe
uma maneira de especificar um nome substituto, de modo que o programa modificado
possa ser invocado.

Regulamentações de exportação
Algumas vezes, as regulamentações de controle de exportação governamentais e
sanções comerciais podem reprimir sua liberdade de distribuir cópias de programas
internacionalmente. Desenvolvedores de software não têm o poder para eliminar ou
passar por cima dessas restrições, mas o que eles podem e devem fazer é se recusar a
impô-las como condições para o uso do programa. Dessa maneira, restrições não irão
afetar as atividades e pessoas fora da jurisdição desses governos. Portanto, licenças de
software livre não devem requerer a obediência a quaisquer regulamentações não triviais
de exportação como uma condição para exercer qualquer das liberdades essenciais.
Meramente mencionar a existência de regulamentações de exportação, sem fazer
delas uma condição da licença em si, é aceitável desde que ela não restrinja os usuários.
Se uma regulamentação de exportação é, na verdade, trivial para o software livre, então
exigir ela como condição não é realmente um problema; porém, é um problema em
potencial, já que alteração posterior na lei de exportação poderia tornar os requerimentos
em não triviais e, portanto, tornar o software não livre.

Considerações legais
Para que essas liberdades sejam reais, elas devem ser permanentes e irrevogáveis
desde que você não faça nada de errado; se o desenvolvedor do software tiver o poder de
revogar a licença, ou adicionar restrições retroativamente a seus termos, sem que você
faça nada errado para dar um motivo, o software não é livre.
Uma licença livre pode não exigir conformidade com a licença de um programa
não livre. Então, por exemplo, se uma licença exigir de você conformidade com as
licenças de “todos os programas que você use”, no caso de um usuário que roda
programas não livres isso resultaria em exigir conformidade com as licenças daqueles
programas não livres; isso faz da licença não livre.
É aceitável para uma licença livre especificar a lei de qual jurisdição se aplica, ou
onde a litigância deve ser feita, ou ambos.

Licenças baseadas em contratos


A maioria das licenças de software livre são baseadas no copyright, e existem
limites para que tipo de requerimentos podem ser impostos por meio do copyright. Se
uma licença baseada no copyright respeita a liberdade nas maneiras descritas acima, é
improvável que ela possua algum outro tipo de problema nunca antes antecipado (embora
isso ocorra ocasionalmente). No entanto, algumas licenças de software livre baseadas em
contratos e contratos podem impor uma lista muito maior de restrições possíveis. Isso
significa que existem muitas maneiras nas quais tal licença pode ser inaceitavelmente
restritiva e não livre.
Não podemos listar tudo o que pode acontecer. Se uma licença baseada em
contrato restringe o usuário de uma maneira incomum que as licenças baseadas no
copyright não podem, e que não é mencionada aqui como legítima, nós teremos que
pensar sobre isso, e provavelmente iremos concluir que ela é não livre.

A definição de software livre na prática


Como nós interpretamos esses critérios

Note que os critérios como aqueles exprimidos nessa definição de software livre
requerem cuidadosa deliberação quanto a sua interpretação. Para decidir se uma licença
de software específica se qualifica como uma licença de software livre, nós a julgamos
baseado nesses critérios para determinar se ela se encaixa no espírito bem como nas
palavras precisas. Se uma licença incluem impensadas, nós a rejeitamos, mesmo que não
tenhamos antecipados o problema nesses critérios.
Algumas vezes, algum requerimento de uma licença cria um problema que requer
extensiva reflexão, incluindo discussões com um advogado, antes que possamos decidir
se o requerimento é aceitável. Quando chegamos a uma conclusão sobre uma nova
questão, nós frequentemente atualizamos estes critérios para tornar mais fácil determinar
se uma certa licença se qualifica ou não.

Histórico

De tempos em tempos, revisamos essa Definição de Software Livre. Aqui está


uma lista de mudanças substanciais, juntamente com links para mostrar exatamente o que
foi modificado.

▪ Versão 1.169: Explica com mais clareza por que as quatro liberdades devem se
aplicar a atividade comercial. Explica por que as quatro liberdades implicam na
liberdade de não executar o programa e na liberdade de excluí-lo, portanto, não há
necessidade de declarar esses requisitos separados.

▪ Versão 1.165: Esclarece que aborrecimentos arbitrários no código não negam a


liberdade 0 e que as liberdades 1 e 3 permitem que os usuários os removam.

▪ Versão 1.135: Deixa claro que a liberdade de executar o programa significa que
nada impede você de executá-lo.

▪ Versão 1.141: Esclarece qual código precisa ser livre.

▪ Versão 1.135: Informa toda situação em que liberdade 0 é a liberdade de executar


o programa desejado.

▪ Versão 1.134: liberdade 0 não é uma questão de funcionalidade do programa.

▪ Versão 1.131: Uma licença livre pode não exigir conformidade com uma licença
não livre de um outro programa.
▪ Versão 1.129: Declara explicitamente que a escolha da lei e escolha de
especificação do foro são permitidas. (Essa sempre foi nossa política.)

▪ Versão 1.122: Um requerimento de controle de exportação é um problema rela se


o requerimento for não trivial; do contrário, ele é apenas um problema potencial.

▪ Versão 1.118: Esclarecimento: o problema é os limites do seu direito de modificar,


e não quais modificações você fez. E modificações não estão limitadas a
“melhorias”

▪ Versão 1.111: Esclarece 1.77 ao adicionar que apenas restrições retroativas são
inaceitáveis. Os detentores dos direitos autorais podem sempre
garantir permissões adicionais de uso do trabalho ao liberar o trabalho de outra
maneira, em paralelo.

▪ Versão 1.105: Reflete, numa breve afirmação da liberdade 1, a ideia (já discutida
na versão 1.80) de que ela inclui realmente o ato de usar versões modificadas para
seus interesses.

▪ Versão 1.92: Esclarece que código obscurecido não qualifica como código-fonte.

▪ Versão 1.90: Esclarece que a liberdade 3 significa o direito de distribuir cópias que
você modificou ou suas versões aperfeiçoadas, não o direito de participar no
desenvolvimento do projeto de outra pessoa.

▪ Versão 1.89: A liberdade 3 inclui o direito de liberar versões modificadas como


software livre.

▪ Versão 1.80: A liberdade 1 deve ser prática, não somente teórica, i.e., sem
tivoização.

▪ Versão 1.77: Esclarece que todas as mudanças retroativas a uma licença são
inaceitáveis, mesmo que ela não seja descrita como uma substituição total.

▪ Versão 1.74: Quatro esclarecimentos sobre pontos não suficientemente explícitos,


ou expostos em alguns lugares, mas não refletidos em todos os lugares:

o “Melhorias” não significa que a licença pode substantivamente limitar que


tipo de versões modificadas você pode liberar. A liberdade 3 inclui distribuir
versões modificadas, não somente mudanças.
o O direito de agregar módulos existentes se refere àqueles que são
adequadamente licenciados.

o Explicitamente expõe a conclusão do argumento sobre o controle de


exportações.

o Impor uma mudança de licença constitui revogar uma licença antiga.

▪ Versão 1.57: Adiciona a seção “Além do Software”.

▪ Versão 1.46: Esclarece o propósito de quem é importante na liberdade de executar


o programa para qualquer propósito.

▪ Versão 1.41: Esclarece a redação sobre licenças baseadas em contratos.

▪ Versão 1.40: Explica que uma licença livre deve permitir que você use software
livre disponível para criar suas modificações.

▪ Versão 1.39: Nota que é aceitável que uma licença requeira que você forneça o
código-fonte para versões do software que você colocou em uso público.

▪ Versão 1.31: Nota que é aceitável que uma licença requeira que você se identifique
como o autor de modificações. Outros esclarecimentos menores por todos texto.

▪ Versão 1.23: Discute problemas potenciais relacionados a licenças baseadas em


contratos.

▪ Versão 1.16: Explica por que a distribuição de binários é importante.

▪ Versão 1.11: Nota que uma licença livre pode requerer que você mande uma cópia
das versões que você distribui para desenvolvedores antigos ao ser requisitado.

Existem lacunas nos números das versões mostrados acima, pois existem outras
mudanças para essa página que não afetam a definição ou suas interpretações. Por
exemplo, a lista não inclui alterações a comentários, de formatação, de ortografia,
pontuação ou outras partes da página.

Você também pode gostar