GNU General Public License

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da GNU GPL)
GNU General Public License
GPLv3 Logo.svg
GNU GPLv3 Logo
Autore Free Software Foundation
Versione 3
Editore Free Software Foundation, Inc.
Data di pubblicazione 29 giugno 2007
Compatibile con DFSG Si
Software libero Si
Approvata OSI Si
Copyleft Si
Linking da codice sotto differente licenza No

La GNU General Public License, comunemente indicata con l'acronimo GNU GPL o semplicemente GPL, è una licenza per software libero, originariamente stesa nel 1989 da Richard Stallman per distribuire i programmi creati nell'ambito del Progetto GNU della Free Software Foundation (FSF). La versione 2.0 di tale licenza è attualmente la licenza di software libero per antonomasia.

Contrapponendosi alle licenze per software proprietario, la GNU GPL assicura all'utente libertà di utilizzo, copia, modifica e distribuzione. La GPL ha incontrato un gran successo fra gli autori di software sin dalla sua creazione, ed è oggi la più diffusa licenza per il software libero, arrivata ormai alla versione 3.

Indice

Storia [modifica]

Stallman durante il suo intervento a Wikimania 2005 (Francoforte sul Meno)

La questione GNU Emacs [modifica]

Nei primi anni del Progetto GNU, i singoli software venivano rilasciati ciascuno con una licenza specifica, valevole unicamente per quel programma. Chi avesse voluto riutilizzare una licenza, avrebbe dovuto ricopiare il testo cambiando i parametri specifici (ad esempio il nome del software, l'autore, ecc.)
Nel 1984, a Richard Stallman viene intimato da UniPress di cessare la distribuzione dell'editor testuale GNU Emacs, che riutilizzava del codice di Gosling Emacs. In realtà Gosling aveva inizialmente distribuito il software senza restrizioni, vendendolo solo successivamente ad Unipress. Stallman è costretto a sostituire le parti sotto copyright con nuovo codice. Tuttavia l'esperienza negativa lo avvicina per la prima volta all'idea di una licenza che impedisca una simile appropriazione di software libero.[1]

La versione 1 e 2 [modifica]

Eben Moglen, coautore insieme a Stallman del primo testo della GNU GPL

Nel 1989 Stallman, riprendendo i contenuti delle licenze dei software GNU (in particolare GNU Emacs), insieme a Eben Moglen, realizza la prima versione della GNU General Public License (GNU GPLv1), applicabile senza modifiche a chiunque lo dichiari nel programma stesso[2]. Tale versione contiene già tutte le caratteristiche principali della licenza.[3] Nel 1991 viene rilasciata la GNU GPLv2.[4]
Secondo Richard Stallman, la modifica più importante di questa versione è la clausola da lui denominata "Libertà o morte". Tale clausola impone che, qualora ci siano restrizioni di qualsiasi tipo sulla libera distribuzione del software nei termini indicati nella licenza, il software non possa essere distribuito affatto. Ad esempio se una legge impedisce di distribuire il codice sorgente, l'intero software protetto da GNU GPLv2 non può essere distribuito.[5]
Contemporaneamente a GPLv2, viene rilasciata una versione della licenza modificata per adattarsi alle librerie, la GNU Library General Public License, la quale si evolverà poi nella GNU Lesser General Public License (GNU LGPL) seguendo un percorso parallelo rispetto alla licenza principale.

La diffusione [modifica]

La GNU GPLv2 riscuote subito un gran successo nel mondo del software libero, raggiungendo il primo posto fra le licenze più comuni nei progetti Open Source,[6] tra i quali il famoso sistema operativo GNU/Linux.

Nel 1997 appare fra le licenze conformi alle Debian Free Software Guidelines (DFSG), ovvero le linee guida del progetto Debian. Nel 1998, alla nascita della Open Source Initiative, appare nel primo elenco di licenze open source.

La versione 3 [modifica]

Il 29 giugno 2007 la Free Software Foundation pubblica la versione 3 della licenza (GNU GPLv3), che introduce misure contro la tivoization, contro alcuni effetti del Digital rights management, oltre ad una protezione maggiore dai brevetti software. Quest'ultimo punto mira a risolvere possibili problemi derivanti da accordi come quello del novembre 2006 tra la casa di software Novell (che sviluppa Suse, una delle distribuzioni di GNU/Linux) e Microsoft.[7]
Durante la gestazione della GPLv3 era stata discussa l'introduzione dell'obbligo di distribuire il codice per i programmi che girano su un computer remoto (come ad esempio un sito web). La decisione finale fu di non includere l'obbligo nella GPLv3, ma di creare una nuova licenza che lo prevedesse, la GNU Affero General Public License, compatibile con questa versione.

Principali caratteristiche [modifica]

Come ogni licenza software, la GPL è un documento legale associato al programma rilasciato sotto tale licenza. Come ogni licenza di software libero, essa concede ai licenziatari il permesso di modificare il programma, di copiarlo e di ridistribuirlo con o senza modifiche, gratuitamente o a pagamento. Chi distribuisce è tenuto a rendere disponibile il codice sorgente del software alle persone che ne hanno ricevuto una copia o, in alternativa, accompagnare il software con una offerta scritta di rendere disponibile il sorgente su richiesta a prezzo nominale.

La GPL impone delle condizioni a chi ridistribuisce il software. La base giuridica di questo sta nella licenza specifica: qualora l'utente non accetti le condizioni specificate, essa diventa nulla e quindi non concede alcun permesso. In particolare, essendo il software protetto dalla legge sul diritto d'autore e dalle norme internazionali sul copyright, chi ottiene il software non ha alcun diritto di modifica, copia o ridistribuzione al di fuori di quelle concesse dalla licenza.

Rispetto alle altre licenze di software libero, la GPL è classificabile come:

La c rovesciata dentro un cerchio è il simbolo del copyleft.
  • "persistente" perché impone un vincolo alla redistribuzione: se l'utente distribuisce copie del software, deve farlo secondo i termini della GPL stessa. In pratica, deve distribuire il testo della GPL assieme al software e corredarlo del codice sorgente o di istruzioni per poterlo ottenere ad un costo nominale. Questa è la caratteristica principe della GPL, il concetto ideato da Richard Stallman e da lui battezzato copyleft. L'effetto che realizza è mantenere libero un programma una volta che esso è stato posto sotto GPL, anche se viene migliorato correggendolo e ampliandolo. Si noti che, escludendo la possibilità che l'output sia un lavoro derivato del programma, il copyleft si applica solo al software e non alla sua uscita, a meno che questa a sua volta contenga codice distribuito sotto GPL.[8]
  • "propagativa" perché definisce nel testo una particolare interpretazione di "codice derivato", tale che in generale l'unione di un programma coperto da GPL con un altro programma coperto da altra licenza può essere distribuita sotto GPL, o in alternativa non essere distribuita affatto. Nel primo caso si dice che l'altra licenza è "compatibile con la GPL"; nel secondo caso che non lo è. Questa caratteristica è indicata come copyleft forte nella terminologia della FSF. Il suo scopo è evitare che la persistenza venga via via indebolita apportando modifiche coperte da un'altra licenza meno libera, inficiando così lo scopo di mantenere libero il software coperto dalla GPL.

Come per le altre licenze libere normalmente in uso, le versioni modificate di un programma sotto GNU GPL sono soggette al vincolo di copyleft solo in caso di distribuzione, cioè quando il software viene ceduto da un'entità giuridica ad un'altra. In nessun caso esiste alcun obbligo di distribuzione.

La GPL è incompatibile con i brevetti software, perché esplicitamente vieta qualunque restrizione alla distribuzione in aggiunta a quelle definite nella licenza stessa. A rigore, quindi, software GPL coperto da brevetti non può essere distributo dove quei brevetti siano in vigore, a meno che i titolari di tali brevetti non ne consentano l'uso senza condizioni allo scopo di far girare quel software.

Garanzia [modifica]

Come per le altre licenze libere, e in generale come le altre licenze software, il fornitore del software non fornisce alcun tipo di garanzia per il programma. Nel caso di malfunzionamenti o qualunque altro difetti, sarà lo stesso acquirente che dovrà provvedere a sue spese ad una eventuale riparazione.

Il fornitore infatti afferma esplicitamente nella licenza di non essere responsabile di mancanze, malfunzionamenti o danni subiti dall'acquirente (dalla corruzione e perdita dei dati, all'impossibilità di utilizzare propriamente il programma), a meno che non sia richiesto dalle leggi locali o altro accordo separato preveda diversamente.

Caratteristiche presenti a partire dalla GNU GPLv3 [modifica]

La GPL versione 3 chiarisce alcuni concetti utilizzati nel testo della licenza in modo da renderla più facilmente applicabile a legislazioni diverse da quella americana.

Le innovazioni più significative della GPLv3 sono[9]:

  • la difesa contro un aggiramento della GPLv2 noto come tivoization. Esso consiste nel distribuire il codice sorgente assieme a un programma che gira su una piattaforma proprietaria e che impedisce via hardware di eseguire versioni modificate di un dato programma, rendendo di fatto nulla la libertà di modifica.
  • la neutralizzazione di alcuni effetti negativi sulla libertà del software da parte di leggi sul Digital rights management (DRM), come il Digital Millennium Copyright Act e la Direttiva Europea sul Copyright. La GPLv3 non impedisce l'uso di tecnologie DRM da parte degli autori di software libero, ma impedisce che le eventuali restrizioni introdotte siano automaticamente imposte a tutti gli utenti, anche di versioni modificate, del software. In altre parole, il software sotto GPLv3 consente a qualsiasi sviluppatore successivo di inserire o eliminare le tecnologie DRM, rispettando la sua libertà.
  • una protezione legale più forte per gli autori e gli utilizzatori di software libero coperto dalla nuova licenza, da possibili aggressioni di chi intentasse cause per pretese violazioni di brevetti software. In particolare, gli sviluppatori di software coperto da GPLv3 devono rilasciare insieme al software anche eventuali licenze di brevetto necessarie ad esercitare i diritti previsti dalla licenza. Questo eviterà che uno degli sviluppatori denunci utenti o sviluppatori successivi per aver infranto un diritto di brevetto.
  • l'esplicitazione di una compatibilità de facto, ossia risultano compatibili tutte quelle licenze che aggiungono restrizioni "facili da rispettare" (come il non utilizzo di un certo marchio registrato, non utilizzabile in ogni caso).
  • l'indicazione di nuove licenze compatibili e di nuovi metodi di distribuzione del codice sorgente, in particolare per la condivisione tramite BitTorrent.
  • l'eliminazione dell'obbligo di distribuire componenti di facile reperibilità, come le librerie di supporto comuni (es. libreria C, Python e Ruby).

Modalità di utilizzo [modifica]

La maggior parte dei programmi con licenza GPLv2 utilizza il seguente testo approvato dalla FSF: «This program is free software; you can redistribuite it and/or modify it under the terms of the GNU/General Pubblic License as published the Free software Foundation; either version 2 of the License, or (at your opinion) any later version». Questo testo non significa che i programmi passeranno automaticamente alla versione successiva della licenza, ma solo che questi programmi ottengono automaticamente i permessi aggiuntivi della licenza successiva e non le eventuali clausole restrittive. Quindi, se lo sviluppatore vorrà far valere per intero la licenza successiva dovrà cambiare il testo in «[...] either version 3 of the License, or (at your opinion) any later version».

Tuttavia, altri programmi specificano esplicitamente l'utilizzo della versione 2 della GPL (tra questi, il kernel Linux) o della sola versione 3[10] per mantenere il controllo esplicito sulla licenza utilizzata e per evitare di assecondare implicitamente l'evoluzione futura della licenza GNU GPL nelle versioni a venire.

Compatibilità [modifica]

Guida della compatibilità delle licenze con GPL

Una licenza è compatibile con GNU GPL se non aggiunge ulteriori restrizioni non già presenti nella versione di GPL in questione. In particolare, ogni versione successiva di GPL è compatibile con la precedente per la presenza della dicitura «or (at your opinion) any later version» (non è vero il viceversa). Quindi la GPLv3 è compatibile con la GPLv2 e, per transitività, con tutte le licenze compatibili con quest'ultima. Inoltre la GPLv3 è compatibile con nuove licenze di software libero come la Licenza Apache.
La FSF redige un elenco di licenze compatibili e incompatibili con le licenze GNU GPL.[11]

Linus Torvalds, tivoization e la critica alla GPLv3 [modifica]

Linus Torvalds nel 2002.

Linus Torvalds, autore della prima versione del kernel Linux, è stato ad esempio inizialmente contrario alla licenza GPLv3 per la rigida determinazione etica delle prime bozze della licenza, da lui ritenuta di "crociata" contro la tivoization. «Secondo me uno dei motivi per cui Linux ha avuto tanto successo è la qualità del progetto, non certo l'atteggiamento di crociata che molti gli vogliono attribuire» ha dichiarato Linus Torvalds. Infine ha ribaltato la posizione di Richard Stallman: «non è la GPL ad aver reso famoso GNU/Linux, ma è Linux ad aver reso "presentabile" la GPL, essendo dannatamente meno integralista di quello che la FSF vuole». Pur dopo il rilascio della nuova versione della licenza, Torvalds è rimasto scettico, dichiarando che Linux non verrà distribuito con licenza GPLv3[12]. Stallman nel settembre 2007 ha commentato riguardo alla posizione di Torvald ritenendola una conseguenza della posizione filosofica che differenzia in modo decisivo la comunità che promuove il software libero da chi favorisce l'open source: «Il termine open source è stato promosso nel 1998 da gente che non voleva dire libero o libertà. Associavano quel termine ad una filosofia che riguarda solo valori di convenienza pratica [...] Non dico che sbaglino ma non colgono il punto. Se si negano i valori della libertà e della solidarietà, e si apprezza soltanto software potente ed affidabile, si compie un errore terribile. [...] Il fatto che Torvalds dica open source invece di software libero dimostra da dove viene. Ho scritto la GNU GPL per difendere la libertà di tutti gli utenti di tutte le versioni di un programma. Ho sviluppato la versione 3 per farlo meglio e per proteggerla contro nuove minacce [..] Torvalds dice che non persegue questo obiettivo; e questo è probabilmente il motivo per il quale non apprezza la GPL versione 3. Rispetto il suo diritto di esprimere le proprie idee, anche se penso che siano folli. Comunque, se non vogliamo perdere la nostra libertà, è meglio non seguirlo»[13].

Diritti sul testo della licenza [modifica]

La Free Software Foundation (FSF) detiene i diritti di copyright sul testo della GNU GPL, ma non detiene alcun diritto sul software da essa coperto.

La GNU GPL non è liberamente modificabile: solo la copia e la distribuzione sono permesse. La FSF permette di creare nuove licenze basate sulla GNU GPL, a patto che tali licenze non usino lo stesso preambolo senza permesso. Dato che, solitamente, la nuova licenza non è compatibile con la GNU GPL, la FSF sconsiglia di creare versioni modificate.


Note [modifica]

  1. ^ (EN) RMS lecture at KTH (Sweden), 30 October 1986(Conferenza di Richard Stallman al Royal Institute of Technology(Svezia), 30 Ottobre 1986), URL visitato il 22 aprile 2012
  2. ^ (EN) GNU's Bulletin, vol. 1 no. 5, URL visitato il 22 aprile 2012
  3. ^ (EN) Il testo della GNU GPLv1, URL visitato il 22 aprile 2012
  4. ^ (EN) Il testo della GNU GPLv2, URL visitato il 22 aprile 2012
  5. ^ (EN) L'importanza della clausola "Libertà o morte" Discorso di Richard Stallman alla Seconda Conferenza Internazionale sul GPLv3 del 21 aprile 2006, URL visitato il 22 aprile 2012
  6. ^ (EN) Open Source License Data Blackducksoftware.com, URL visitato il 22 aprile 2012
  7. ^ (EN) Why Upgrade to GPLv3, dichiarazione di Richard Stallman sui motivi di GPLv3, URL visitato il 22 aprile 2012
  8. ^ GNU Bison è un esempio di programma la cui uscita contiene software GPL. Per togliere la copertura GPL all'uscita di Bison, la sua licenza comprende un'apposita liberatoria.
  9. ^ (EN) Brett Smith, A Quick Guide to GPLv3 (Una guida veloce alla GPLv3), GNU Operating System.
  10. ^ Ad esempio la Free Software Directory elenca più di 130 progetti internazionali di software libero che adottano la sola versione 3 della licenza GNU GPL, senza la formula «or (at your opinion) any later version». (link visitato il 21 aprile 2012).
  11. ^ Various Licenses and Comments about Them, elenco di licenze compatibili o no con GNU GPL, URL visitato il 22 aprile 2012
  12. ^ (EN) Linux non verrà distribuito con licenza GPLv3, Linux Kernel Mailing List.
  13. ^ Punto Informatico, 13 settembre 2007. Stallman: Torvalds? Non seguitelo. Se avete a cuore le libertà, spiega mr.GNU, il papà di Linux non fa per voi. Lui dice open source, noi diciamo software libero

Voci correlate [modifica]

Altri progetti [modifica]

Collegamenti esterni [modifica]