15 Dic Come utilizzare correttamente le licenze GNU-GPL
Tempo di lettura stimato: 4 minutiPreambolo
Il 60/70% del software in circolazione viene distribuito sulla base di licenze open source. Eppure quando si parla di open source, c’è ancora molta confusione. Il software open source, infatti, è un programma per elaboratore liberamente accessibile, ma questo non significa né che sia gratuito, né tanto meno che non vi siano regole da rispettare esattamente come avviene nel software proprietario.
GPL – Cosa sono
Nel quadro del software libero le licenze GNU General Public License , che esistono dal 1989, occupano uno spazio di primo piano.
Il concetto di libertà per le licenze GPL comporta il diritto di distribuire e modificare il software, così come il diritto di distribuire la copia modificata. Lo scopo di queste licenze è quello di consentire la diffusione del software e la possibilità di adattarlo liberamente alle proprie esigenze.
Occorre però fare attenzione; infatti, contrariamente, a quanto si potrebbe ritenere il copyright è ancora presente anche nelle licenze GNU GPL, solo che, secondo un gioco di parole, assume le sembianze del copyleft: potremmo dire che è un copyright che si comporta in modo originale perché persegue finalità che non sono quelle del software proprietario.
Detto, questo, però, proprio perché si tratta di una forma speciale di copyright, il distributore di un software basato su licenza GNU-GPL deve ricevere il software da un licenziante al quale si vincola contrattualmente, impegnandosi a rispettare le condizioni previste dalla licenza del software libero. Pertanto se vi piace un programma per elaboratore basato su licenza GNU GPL commettete un illecito nel caso in cui facciate uso o distribuiate quel software scaricandolo da fonti non autorizzate o comunque se lo ricevete senza un contratto di licenza GNU-GPL.
Differenza tra Software Libero e Software Proprietario
Con una licenza GPL gli utenti sono liberi, free; per la precisione liberi di modificare e distribuire il software in base alle loro esigenze. A differenza delle licenze proprietarie o closed source, infatti, le licenze GPL non impongono restrizioni e limitazioni alla libertà altrui.
La demarcazione è chiara se prendiamo come termine di paragone, la licenze EULA (End User License Agreement) che il più delle volte troviamo nel software closed.
EULA, infatti, concede soltanto una licenza non esclusiva per utilizzare una copia del software: in questo caso, non è possibile né modificare, né distribuire il programma.
Le licenze GPL garantiscono, pertanto, questa libertà; free sta per libertà, non necessariamente per gratuità.
GPL – Le regole da rispettare
Per raggiungere le loro finalità, cioè assicurare le libertà di distribuire e modificare il software, è necessario che tutti i licenziatari si adeguino a tale spirito: occorre, pertanto, un vincolo, un obbligo che li costringa a mantenere la libertà del software. In poche parole occorre evitare che il licenziatario, dopo aver avuto accesso ad un software free, ne faccia una piccola modifica, per poi distribuirla sotto una licenza proprietaria che ne impedica la modifica e la distribuzione.
Tale rischio viene debellato dalla cosiddetta clausola virale di cui riportiamo il testo tradotto in italiano:
“Quando distribuisci un programma coperto da questa Licenza, rinunci al potere di proibire la violazione di misure tecnologiche di restrizione ammesso che tale elusione sia effettuata nell’esercizio dei diritti garantiti da questa Licenza riguardo al programma coperto da questa Licenza, e rinunci all’intenzione di limitare l’operatività o la modifica del programma per far valere, contro i diritti degli utenti del programma, diritti legali tuoi o di terze parti che impediscano l’elusione di misure tecnologiche di restrizione.”
D’accordo l’Italiano qui lascia molto a desiderare, ma il senso è che la clausola virale si attiva nel momento in cui il licenziante distribuisce il programma. Una volta distribuito il programma, il licenziante deve dare accesso al codice sorgente del software. Questo momento temporale è bene conoscerlo, perché l’obbligo di consentire l’accesso al codice sorgente non scatta quando si utilizza o si modifica il programma per uso personale, vale a dire, evitando di distribuire il software a terzi.
Programmi aggregati
La viralità della licenza si estende non solo nella transizione da un licenziante al successivo licenziatario, ma anche dal programma principale agli eventuali moduli accessori.
Ciò significa che se il programma principale, per esempio il CMS di WordPress è concesso in licenza GPL, quest’ultima finisce per estendersi a tutti i plugin o ai temi per WordPress. Anche in questo caso, se uno sviluppatore realizza per conto proprio il plugin, dovrà rilasciarne il codice sorgente solamente nel momento in cui deciderà di distribuire il plugin a terze parti; la clausola virale, infatti, non si attiverà se lo sviluppatore farà solo un uso personale del plugin.
Inoltre lo sviluppatore dovrebbe includere un avviso di copyright che attesti la paternità del plugin. Tale disclaimer, deve poi essere conservato in ogni transizione del software.
E se qualcuno decide di eseguire il fork del software e/o modificarlo per soddisfare le proprie esigenze, deve comunque conservare l’avviso di copyright (e in caso di modifica, dichiararlo ulteriormente indicando la data della modifica).
L’attribuzione, pertanto, è una costante anche se il licenziatario può modificare il software.
Tivoizzazione
Tivo era un videoregistratore provvisto di una componente hardware che impediva la modifica dei dvd. Gli autori della licenza GPL versione V3 hanno trovato il modo di impedire contrattualmente che il licenziatario redistribuisca il software utilizzando hardware progettati per impedire la reinstallazione o modificazione del software.
Tale pratica, infatti, viene espressamente vietata dalla licenza.
Conclusioni
La GNU General Public License esiste per proteggere le libertà dei creatori di software e degli utenti. Peraltro esistono anche altre licenze open source, alcune delle quali affermano di offrire ancora più libertà rispetto alla GPL (come Mozilla Public License , BSD License , Apache 2.0 License , ecc.).
Ma di queste altre ne parleremo in un altro articolo.