Mentre il futuro di Unix era così farraginoso nei tardi anni Ottanta e nei primi anni Novanta, la GPL, un altro sviluppo con importanti considerazioni in materia di licenza, giunse a compimento.
Richard Stallman, il programmatore di Emacs, era un membro del personale del MIT quando il suo laboratorio sostituì i suoi sistemi prodotti internamente con prodotti proprietari. Stallman si innervosì quando scoprì di non poter apportare legalmente piccoli miglioramenti al sistema. (Molti dei collaboratori di Stallman se ne erano andati per formare due aziende basate su software sviluppato al MIT e licenziato dal MIT; pare che ci sia stato disaccordo sull'accesso al codice sorgente di questo software). Stallman ideò un'alternativa alla licenza software commerciale e la chiamò GPL, o "Gnu Public License". Creò anche una fondazione senza scopo di lucro, la Free Software Foundation (FSF), che intendeva sviluppare un intero sistema operativo, software associato incluso, che non sarebbe stato oggetto di licenza proprietaria. Il sistema fu chiamato GNU, stante per "GNU non è Unix".
La GPL fu progettata per essere l'antitesi della licenza proprietaria standard. A questo fine, si richiese che ogni modifica che fosse apportata ad un programma GPL fosse restituita alla comunità GPL (richiedendo che il sorgente del programma fosse reso disponibile all'utente) e che ogni programma che usasse o linkasse codice GPL venisse sottoposto alla GPL. La GPL intendeva impedire che il software diventasse proprietario. All'ultimo paragrafo la GPL dichiara:
«Questa Licenza Pubblica Generale non permette di incorporare il tuo programma in programmi proprietari.»
La GPL è una licenza complessa quindi ecco alcune regole pratiche sul suo utilizzo:
è possibile fissare qualsivoglia prezzo per la distribuzione, il supporto o la documentazione del software, ma non è possibile la vendita del software stesso.
la regola generale stabilisce che se è necessario codice GPL per la compilazione di un programma, il programma deve essere sottoposto alla GPL. Il link statico ad una libreria GPL implica che il programma sia sottoposto alla GPL.
la GPL richiede che qualsiasi brevetto associato a software GPL debba essere sottoposto ad una licenza che ne garantisca il libero uso da parte di chiunque.
la semplice aggregazione di software, come il porre programmi diversi su uno stesso disco, non conta quale inclusione di programmi GPL in programmi non GPL.
l'output di un programma non conta quale lavoro derivato. Questo consente al compilatore gcc di essere usato in ambienti commerciali senza problemi legali.
siccome il kernel Linux è sottoposto alla GPL, ogni codice linkato staticamente col kernel Linux deve essere sottoposto alla GPL. Questo requisito può essere aggirato linkando dinamicamente moduli del kernel. Questo permette alle aziende di distribuire driver binari, ma spesso con lo svantaggio che essi funzioneranno solo per versioni specifiche del kernel Linux.
A causa della sua complessità, in molte parti del mondo oggigiorno gli aspetti legali della GPL vengono ignorati per quanto riguarda Linux e software relativo. Le conseguenze a lungo termine di questo approccio non sono chiare.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.