Qualche anno fa è stata rilasciata una nuova versione della General Public License ormai famosa nel mondo del Free Software. All’atto di stabilire quale licenza avrei adottato per le mie future applicazioni mi sono domandato quali fossero le differenze tra la GPL2 e la GPL3 e di fatto non ho trovato nulla che mi aiutasse nella scelta. Allora ho deciso di leggermi entrambe le license per poterle confrontare di persona e sceglierne una. Di seguito vi propongo un sunto di ciò che la nuova versione aggiunge, modifica o elimina rispetto alla vecchia.

Open Source

Il numero della sezione si riferisce alla versione 3 della licenza. Se esiste una sezione corrispondente nella GPLv2, questa è indicata tra parentesi.
I punti mancanti non portano sostanziali differenze rispetto alla vecchia licenza e per questo sono stati omessi.

TERMS AND CONDITION:
0. (0. nella versione 2)
In entrambe le versioni questa sezione espone le definizioni di alcuni termini che ricorreranno nel corso del testo, ma nella GPLv3 si può riscontrare una maggiore leggibilità, anche grazie ad una struttura più ordinata.

1. (Nuovo)
La GPLv3 aggiunge un nuovo punto che riguarda le definizioni di alcuni termini riguardanti i codici sorgenti, le forme di codice non sorgente (definite “Objective Code”) e tutti gli altri file che servono per generare il codice oggetto ed eseguire il programma (il cosiddetto “Corresponding Source”).

2. (Nuovo)
Anche questo punto è nuovo. Espone quali parti del programma sono coperti dalla licenza e quali diritti ha l’utente su di esse.

3. (Nuovo)
La nuova licenza afferma, in questa sezione (ancora una volta non presente nella GPLv2) che i software sotto di essa non possono far parte di una “effective technological measure”, ovvero una misura tecnologica di restrizione (vedi link in fondo riguardo l’Anti-Tivoization).

4. (1. nella versione 2)
Questo punto non è cambiato molto, se non per una frase che, a mio avviso, era più diretta nella revisione 2 della licenza: “You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.”, mentre nella GPLv2 si leggeva: “You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.”.

5. (2. nella versione 2)
La condizione b) del punto 2. della versione 2, si rinnova scindendosi in 2 parti: nella voce b) si ricorda che deve essere notificato in modo chiaro il fatto che l’opera è sotto licenza GPL, mentre nel punto c) si vieta la possibilità di usare altre licenze all’infuori di quella già applicata, ma non specifica chiaramente, come era per la versione precedente, che il lavoro deve essere rilasciato in licenza gratuita.

6. (3. nella versione 2)
Nel punto 6. entrambe le licenze permettono la distribuzione del programma sotto forma di non-sorgente solo se a) viene corredato di codice sorgente oppure b) per almeno 3 anni lo sviluppatore rende disponibili i sorgenti a tutti quelli che ne fanno una richiesta scritta (il punto c) estende il b)). In più la nuova licenza introduce: d) la possibilità di disporre dell’accesso, gratuito o a pagamento, del programma non sorgente e di disporre, allo stesso modo, dell’accesso ai sorgenti (una descrizione simile è presente anche nella GPLv2 come ultimo paragrafo del terzo comma) oppure e) distribuendo il programma compilato via p2p specificandone la provenienza.

7. (Nuovo)
Il settimo punto è forse la maggiore novità che la terza revisione della GPL porta e non è presente sulla versione 2. Essa tratta di eventuali condizioni aggiuntive che lo sviluppatore può inserire, rispettando le linee guida presenti in questa sezione, per creare delle eccezioni ad alcuni punti della licenza. Inoltre può aggiungere ulteriori condizioni limitanti (chiamate “further restrictions”) che non rientrano nelle categorie elencate in questo comma. La persona che riceve la licenza dello sviluppatore corredata da “ulteriori restrizioni” ha la facoltà di rimuovere questi termini aggiuntivi.

8.  (4. nella versione 2)
In questa sezione non ci sono grandi novità. L’unica aggiunta è il tempo limite (60 giorni) entro cui il detentore dei diritti può notificare un’eventuale violazione sulla licenza.

10. (6. nella versione 2)
Questo punto estende ciò che già compariva nella licenza precedente chiarendo che, nel caso di un trasferimento delle attività di un’azienda, i nuovi possessori del programma ricevono contemporaneamente tutte le licenze associate ad esso che appartenevano ai vecchi proprietari ed in più hanno il diritto di ottenere il codice sorgente se questo è disponibile. Inoltre questo punto specifica che non è possibile imporre ulteriori restrizioni se non quelle affermate nella licenza.

11. (Nuovo)
L’undicesimo comma non era presente nella versione 2 della licenza e parla dei brevetti. Include una prima parte riguardante i diritti di brevetto detenuti da eventuali contribuenti possessori di copyright e una seconda parte riguardante invece le licenze di brevetto definite come accordi di non rivendicazione, ovvero non è possibile, secondo i termini della licenza, perseguire una violazione di brevetto.

13. (8. nella versione 2)
Questa sezione sostituisce integralmente il punto 8. della GPLv2 riguardante le restrizioni geografiche. La nuova versione definisce la compatibilità della licenza GPLv3 con la più restrittiva AGPL. In caso di combinazioni di codici sottoposti all’una e all’altra licenza, le parti sotto GPL continueranno ad essere coperte dalla stessa, mentre per il programma risultante dalla fusione dei vari pezzi varranno le condizioni speciali della sezione 13 della AGPL.

14. (9. nella versione 2)
Il punto 14. riguardo le versioni successive della licenza è rimasto pressoché invariato. Si è solo aggiunta una clausola che specifica la possibilità di nominare un delegato che definisca con il passare del tempo quale revisione della licenza applicare al software.

17. (Nuovo)
l’ultimo punto della licenza, non presente nella seconda versione, afferma che nel caso in cui i punti 15. e 16., riguardanti la rinuncia alla garanzia e la limitazione di responsabilità, non abbiano valore legale, allora si dovrà applicare la legge locale che più si avvicina al rifiuto di ogni responsabilità civile.

Per concludere vi propongo un link che affronta il tema della lotta della General Public License contro la Tivoization QUI. Inoltre vi rimando anche alla pagina di Wikipedia sull’argomento.

Alla luce di quanto detto fin qui io ho scelto la terza versione della GPL. 🙂