Copyleft: Idealismo pragmático
por Richard StallmanTodas as decisões tomadas pelas pessoas têm origem nos seus valores e objetivos. As pessoas podem ter muitos objetivos e valores diferentes; fama, lucro, amor, sobrevivência, diversão e liberdade são apenas alguns dos valores que uma pessoa correta pode ter. Quando o objetivo é uma questão de princípio, nós chamamos a isso idealismo.
Meu trabalho com software livre é motivado por um objetivo idealista: espalhar a liberdade e cooperação. Eu quero encorajar a difusão do software livre, substituindo o software privativo, que proíbe a cooperação, e assim tornando nossa sociedade melhor.
E esta é a razão principal pela qual a GNU GPL (Licença Pública Geral GNU) foi escrita como foi — como copyleft. Todo código-fonte adicionado a um programa coberto pela GPL tem que ser software livre, mesmo se colocado em um arquivo separado. Eu torno o meu código disponível para uso em software livre, e não em software privativo, a fim de encorajar outras pessoas que programam a deixar seu código livre também. Acho que, já que desenvolvedores de software privativo usam copyright a fim de nos impedir compartilhar código, nós colaboradores podemos usar copyright para dar uma vantagem a outros colaboradores: eles podem usar o nosso código.
Nem todos que usam a GNU GPL têm isso por objetivo. Há muitos anos atrás, pediram a um amigo meu que relançasse um programa seu, com copyleft, sob termos não copyleft, e ele respondeu mais ou menos assim:
“Às vezes eu trabalho desenvolvendo software livre, e às vezes eu trabalho desenvolvendo software privativo — mas quando eu desenvolvo software privativo, eu espero ser pago.”
Ele desejava compartilhar seu trabalho com uma comunidade que compartilha software, mas não via motivo para ajudar a desenvolver produtos de grandes empresas, o que estaria fora dos limites de nossa comunidade. Seu objetivo era diferente do meu, mas ele decidiu que a GNU GPL era útil para o seu objetivo também.
Se você quer realizar algo, idealismo não é o bastante — você precisa escolher um método que funcione de verdade para atingir o seu objetivo. Em outras palavras, você precisa ser “pragmático”. E a GPL, é pragmática? Vamos dar uma olhada em seus resultados.
Considere o GNU C++. Por que nós temos um compilador C++ livre? Somente porque a GNU GPL disse que ele teria que ser livre. O GNU C++ foi desenvolvido por um consórcio de empresas, o MCC, começando a partir do Compilador C GNU. O MCC normalmente lança seu trabalho como software privativo, tão privativo quanto este possa ser. Mas eles fizeram a interface para o C++ livre, porque a GNU GPL disse que esta era a única forma de fazê-lo. A interface para C++ incluiu muitos arquivos novos, mas já que eles seriam ligados ao GCC, a GPL se aplicava a eles. E o benefício para a nossa comunidade é evidente.
Considere o GNU Objective C. NeXT primeiramente quis fazer essa interface privativa; eles propuseram lançar isso como arquivos .o, e deixar que os usuários conectassem-nos com o resto do GCC, pensando que isso seria uma forma de burlar os requisitos impostos pela GPL. Mas nosso advogado disse que isso não os isentaria desses requisitos, que isso não era permitido. Então eles fizeram a interface para o Objective C ser software livre.
Estes exemplos aconteceram há anos atrás, mas a GNU GPL continua nos trazendo mais software livre.
Muitas bibliotecas do projeto GNU estão cobertas pela GNU LGPL (Licença Pública Geral Menor), mas não todas. Uma biblioteca GNU que é coberta pela GNU GPL é a Readline, que implementa edição pela linha de comando. Uma vez eu descobri um programa privativo que foi projetado para usar a Readline, e avisei o desenvolvedor que isso não era permitido. Ele poderia ter tirado a edição via linha de comando de seu programa, mas o que acabou acontecendo foi ele relançá-lo sob a GNU GPL. Agora este programa é software livre.
Os programadores que desenvolvem melhorias para o GCC (ou para o Emacs, ou Bash, ou Linux, ou qualquer programa coberto pela GPL) são, muito frequentemente, funcionários de empresas ou universidades. Quando o programador quer devolver suas melhorias para a comunidade, e ver o seu código na próxima versão do programa, seu chefe pode dizer, “Espere aí — seu código pertence a nós! Não queremos compartilhá-lo; nós decidimos transformar sua versão melhorada do programa em software privativo.”
E aqui a GNU GPL vem ajudar! O programador mostra ao seu chefe que lançar este programa como software privativo seria infringir direitos de propriedade autoral, e o chefe percebe que ele tem apenas duas opções: lançar o novo código como software livre ou simplesmente não lançá-lo. Quase sempre ele permite ao programador fazer o que este sempre quis, e o código é liberado na nova versão do programa.
Mas veja bem: a GNU GPL não é o Sr. Bonzinho. Ela diz não a algumas das coisas que as pessoas às vezes gostariam de fazer. Existem usuários que dizem que esta é uma coisa ruim — que a GPL “exclui” alguns desenvolvedores de software privativo que “precisam ser trazidos à comunidade do software livre.”
Mas nós não estamos excluindo-os de nossa comunidade; eles estão escolhendo não entrar. A sua decisão de desenvolver software privativo é a decisão de ficar de fora de nossa comunidade. Estar em nossa comunidade significa se juntar e cooperar conosco; não podemos “trazê-los para nossa comunidade” se eles não querem entrar.
O que nós podemos fazer é convidá-los, induzi-los a entrar. A GNU GPL foi projetada para isso, através do nosso software já existente: “Se você for tornar o seu software livre, você pode usar esse código.” É claro, isso não ganhará a todos, mas ganha em algumas vezes.
O desenvolvimento de software privativo não contribui com a nossa comunidade, mas seus desenvolvedores frequentemente querem a nossa ajuda. Usuários de software livre acabam motivando-nos através do nosso próprio ego — dando-nos reconhecimento e gratidão — mas pode ser muito tentador quando uma grande companhia lhe diz, “Apenas nos deixe colocar seu código em nosso programa privativo, e seu programa será usado por muitos milhares de pessoas!” A tentação pode ser poderosa, mas a longo prazo estaremos melhor se resistirmos a ela.
A tentação e pressão ficam mais difíceis de serem reconhecidas quando vêm indiretamente, através de organizações de software livre que adotaram a política de fornecerem também software privativo. O X Consortium (e seu sucessor, o Open Group) nos dá um exemplo: fundado por empresas que desenvolvem software privativo, eles lutaram por uma década para persuadir os programadores a não usarem copyleft. Agora que o Open Group fez do X11R6.4 software não livre, aqueles de nós que resistiram a essa pressão estão felizes por tê-lo feito.
Em Setembro de 1998, alguns meses depois do X11R6.4 ter sido lançado sob termos não livres para distribuição, o Open Group voltou atrás em sua decisão e o relançou sob a mesma licença de distribuição livre de software não copyleft que era usada para o X11R6.3. Muito obrigado, Open Group — mas a decisão destes de voltarem atrás não invalida as conclusões que tiramos, do fato de que adicionar essas restrições era possível.
Pragmaticamente falando, pensar em objetivos de mais longo prazo nos fortalecerá para resistirmos a essa pressão. Se focarmos nossa mente na liberdade e na comunidade que podemos construir ao permanecermos firmes, encontraremos a força para fazermos isso. “Mantenha-se firme por alguma coisa, ou você cairá por qualquer coisa.”
E se cínicos ridicularizarem a liberdade, ridicularizarem a comunidade… se “realistas” disserem que lucro é o único objetivo… apenas os ignore, e use copyleft assim mesmo.
Este ensaio foi publicado em Free Software, Free Society: The Selected Essays of Richard M. Stallman.