Posts Tagged ‘gpl’

GPL? No, AGPL

Martedì, Giugno 30th, 2009

La licenza storica del progetto GNU è la GPL. Essa è apprezzata da alcuni e mal sopportata da altri perchè, oltre a garantire all’utente le quattro libertà del software, è dotata di un forte copyleft.

Copyleft è il contrario di copyright. Significa che una licenza, oltre a garantire delle libertà, impone (se di imposizione si può parlare) che queste libertà vengano preservate. Un copyleft minimo consiste nello stabilire che, quando un software viene stabilito, esso sia accompagnato dalla stessa licenza con la quale lo si è avuto. In caso contrario una persona potrebbe prendere un software libero e distribuirlo come software proprietario.

Il copyleft della GPL è particolarmente forte, perchè vieta di aggiungere parti di codice proprietario al programma. Si può modificare e migliorare il software e non distribuirlo. Ma se si desidera distribuirne una versione modificata, i sorgenti delle proprie modifiche devono poter essere visionati da chiunque riceva il software stesso e devono essere coperti da licenza GPL o altre licenze compatibili. Il software o parte di esso inoltre non potrà essere usato come modulo per un software non libero. Vi sono poi ulteriori “restrizioni”, che in realtà non sono altro che garanzie di libertà per l’utente finale.

Ma la GPL ha un forte limite: il suo spirito originale viene completamente snaturato se utilizzata con applicazioni web. Questo perchè quando essa è stata scritta internet non esisteva.
Spieghiamo questo limite con un esempio. Paperino scrive un programma, poniamo un web forum, e lo distribuisce sul suo sito. La licenza è la GPL. Topolino scarica questo forum e lo installa a sua volta sul suo sito. Dal suo punto di vista è software libero: può usarlo come vuole, studiarne i sorgenti, modificarlo e distribuirlo (anche in versione modificata). Infatti, dopo aver constatato che manca una funzione di ricerca tra i messaggi vecchi, Topolino stesso la implementa. Fa qualche prova e si sfrega le mani: va che è una scheggia! Paperoga si collega quotidianamente al sito di Topolino e usa il forum. Un giorno decide di mettere su un forum anche lui, si collega al sito di Paperino, scarica il programma e lo installa. La funzionalità di ricerca non c’è e purtroppo Paperoga non ha le conoscenze per implementarla. Topolino (che mi è sempre stato un po’ antipatico) non ha condiviso con la comunità il codice che ha scritto.
Questo non è giusto: Paperoga usa il forum che gira sul sito di Topolino, è a tutti gli effetti un utente del software. Eppure non gode di nessuna delle quattro libertà sopra citate. Perchè? Tecnicamente perchè non ne ha mai ricevuto una copia. Lo usa attraverso una rete. Topolino, non distribuendo il programma in sè, non è tenuto a fornire nè i sorgenti nè la licenza GPL.
Tutto ciò è perfettamente legale ma profondamente contrario alle intenzioni di chi ha scritto la licenza.

Fortunatamente la società Affero ha scritto una nuova licenza, che è in realtà una variante della GPL. E’ la licenza chiamata GNU Affero General Public License, o semplicemente AGPL. Essa è molto simile alla GPL ma con un’aggiunta importante. Stabilisce che chi modifica il software ricevuto e lo installa su un server pubblico deve condividere con la comunità le modifiche apportate.

In questo modo viene a cadere l’assurda distinzione tra chi utilizza un software dopo averne ricevuta una copia e chi lo utilizza attraverso la rete. Almeno in teoria.