Copyleft: idealismo pragmatico
di Richard StallmanOgni decisione presa ha origine nei propri valori e obiettivi. Questi possono essere tanti e differenti; la fama, il profitto, l'amore, la sopravvivenza, il divertimento e la libertà sono alcuni degli obiettivi che una brava persona può avere. Quando però l'obiettivo è una questione di principio, si è soliti parlare di idealismo.
Il mio lavoro nel campo del software libero è motivato da un obiettivo idealistico: diffondere libertà e cooperazione. Voglio stimolare la diffusione del software libero, rimpiazzando i programmi proprietari che proibiscono la cooperazione, in modo da rendere la nostra società migliore.
Questo è il motivo principale per cui la Licenza Generica Pubblica (GPL) GNU è stata scritta in un certo modo – secondo il copyleft. Tutto il codice aggiunto ad un programma coperto dalla GPL deve essere software libero, anche nel caso in cui venga inserito in un file a parte. Rendo disponibile il mio codice affinché venga usato nel software libero, e non nel software proprietario, con lo scopo di incoraggiare chi programma a fare altrettanto. Ho capito che, poiché gli sviluppatori di software proprietario usano il diritto d'autore per impedirci di condividere il software, noi che cooperiamo possiamo usare il diritto d'autore per favorire coloro che come noi cooperano: possono usare il nostro codice.
Non tutti coloro che usano la GNU GPL hanno questo obiettivo. Molti anni fa ad un mio amico venne chiesto di ri-rilasciare un programma coperto da copyleft secondo termini diversi dal copyleft. Lui rispose all'incirca in questo modo:
«A volte mi occupo di software libero, altre di software proprietario, ma quando si tratta di software proprietario mi aspetto di essere pagato».
Era disposto a condividere il suo lavoro con una comunità che condivide il software, ma non vedeva alcuna ragione per dare il suo programma ad un'industria che ne avrebbe fatto un prodotto off-limits per la nostra comunità. Il suo obiettivo era differente dal mio, ma decise comunque che la GNU GPL era utile anche per i suoi scopi.
Se si vuole realizzare qualcosa al mondo, l'idealismo non è abbastanza; bisogna scegliere un sistema per raggiungere lo scopo. In altre parole, bisogna essere “pragmatici”. La GPL è pragmatica? Guardiamo i suoi risultati.
Si consideri lo GNU C++. Perché abbiamo un compilatore C++ libero? Solo perché la GNU GPL afferma che doveva essere così. GNU C++ è stato sviluppato da un consorzio di industrie, MCC, partendo dal compilatore GNU C. Normalmente, MCC rende i suoi prodotti quanto più proprietari possibile. Ma questa volta hanno rilasciato il front end C++ come software libero, dato che la GNU GPL affermava che quello fosse l'unico modo per rilasciarlo. Il front end C++ include molti nuovi file, ma poiché devono essere collegati con GCC, questi devono essere sotto licenza GPL. Il beneficio per la nostra comunità è evidente.
Si consideri ancora lo GNU Objective C. Inizialmente NeXT voleva farne un front end proprietario; propose infatti di rilasciarlo come file .o e lasciare che gli utenti potessero collegarli con il resto di GCC, pensando in questo modo di aggirare i requisiti della GPL. I nostri avvocati, però, misero in luce che questo escamotage non avrebbe eluso i requisiti della GPL e che quindi non era consentito. E perciò il front end Objective C diventò software libero.
Questi esempi sono accaduti anni fa, ma la GNU GPL continua a darci sempre più software libero.
Molte delle librerie GNU sono coperte dalla Licenza Pubblica Generica GNU attenuata, ma non è così per tutte. Ad esempio, la libreria Readline, che implementa l'editing a linea di comando, è coperta dalla GNU GPL ordinaria. Una volta sentii di un programma non libero che faceva uso di Readline e dissi allo sviluppatore che quest'uso della libreria non era consentito. Questi avrebbe potuto eliminare dal suo programma le funzionalità relative all'editing a linea di comando, ma ciò che in realtà fece fu di redistribuire il suo programma sotto licenza GPL. Ora è software libero.
I programmatori che scrivono miglioramenti per GCC (o Emacs, o Bash, o Linux, o un qualsiasi programma coperto dalla GPL) lavorano spesso per aziende o università. Quando il programmatore vuole offrire questi miglioramenti alla comunità e vedere il suo codice incluso nella versione successiva del programma in questione, il suo capo potrebbe dire: «Fermo lì! Il tuo codice appartiene a noi! Non vogliamo condividerlo con altri; abbiamo deciso di trasformare la tua versione migliorata in un prodotto proprietario».
Qui viene in aiuto la GNU GPL. Il programmatore spiegherebbe al capo che un tale prodotto proprietario sarebbe una violazione del diritto d'autore e il capo capirebbe che ci sono soltanto due possibilità: rilasciare il nuovo codice come software libero o non rilasciarlo affatto. Quasi sempre al programmatore viene consentito di comportarsi come intendeva fare e così il codice risulta disponibile per la versione successiva del programma.
La GNU GPL non è sempre accondiscendente; dice di “no” ad alcune delle cose che a volte la gente vuole fare. Alcuni utenti affermano che sia negativo il fatto che la GPL “escluda” alcuni sviluppatori di software proprietario che “hanno bisogno d'essere portati nella comunità del software libero”.
Ma non siamo noi ad escluderli dalla nostra comunità; sono loro che scelgono di non entrare. Decidere di produrre software proprietario equivale a decidere di starne fuori. Esservi dentro significa cooperare con noi; non possiamo “portarli nella nostra comunità” se non vogliono unirsi a noi.
Ciò che possiamo fare è offrire un incentivo ad unirsi a noi. È per far sì che il nostro software già prodotto sia un incentivo che la GNU GPL è stata pensata: «Se renderete il vostro software libero, potete utilizzare questo codice». Di certo in questo modo non si vincerà sempre, ma qualche volta sì.
Lo sviluppo di software proprietario non contribuisce alla nostra comunità, ma i suoi sviluppatori spesso vogliono informazioni da noi. Gli utenti di software libero possono colpire gli sviluppatori di software libero nel loro ego con la riconoscenza e la gratitudine, ma sarebbe una vera tentazione se un'azienda dicesse ad uno di essi: «È sufficiente che tu ci consenta di inserire il tuo pacchetto nel nostro programma proprietario e il tuo programma sarà usato da migliaia e migliaia di persone!». La tentazione potrebbe essere forte, ma alla lunga staremmo tutti meglio se le resistessimo.
Le tentazioni e le pressioni sono più difficili da riconoscere quando arrivano in maniera indiretta, attraverso organizzazioni a favore del software libero che hanno adottato una politica favorevole al software proprietario. L'X Consortium (ed il suo successore, Open Group) ne offrono un esempio: finanziati da compagnie che producono software proprietario, hanno insistito per un decennio per convincere i programmatori a non usare il copyleft. Ora che Open Group ha cercato di rendere X11R6.4 non libero, quelli di noi che hanno resistito sono contenti di averlo fatto.
Nel settembre del 1998, diversi mesi dopo che X11R6.4 venne rilasciato con termini di distribuzione non liberi, Open Group tornò sui suoi passi e lo rilasciò nuovamente sotto la stessa licenza per software libero (che non contempla il copyleft) usata per X11R6.3. Un grazie va ad Open Group, ma questa marcia indietro non invalida le conclusioni cui eravamo giunti per il fatto che aggiungere restrizioni fosse possibile.
Parlando in termini pragmatici, pensare agli obiettivi a lungo termine aumenterà il desiderio di resistere a queste pressioni. Concentrandosi sulla libertà e sulla comunità che si può costruire rimanendo fermi in questa decisione, si riuscirà a trovare la forza per farlo. «Battiti per qualcosa o soccomberai per nulla».
E se i cinici ridicolizzeranno la libertà e la comunità... se i “realisti più intransigenti” diranno che il profitto è l'unico ideale possibile... ignorateli e continuate ad utilizzare il copyleft.
Questo testo è stato pubblicato in Free Software, Free Society: The Selected Essays of Richard M. Stallman.