Licenze per il software
Le licenze software sono documenti legali allegati ai programmi. Senza
una tale documento, secondo la convenzione di Berna sul diritto
d'autore, un programma non può essere
distribuito né modificato senza l'esplicito consenso degli
autori.
All'opposto, una licenza di software libero permette lo
studio, la distribuzione, la modifica e la redistribuzione del programma
modificato. Questo è possibile in quanto i detentori dei diritti di
sfruttamento economico del programma lo consentono, eventualmente a
certe condizioni.
Licenze proprietarie
Una licenza che non sia libera né semilibera è detta proprietaria. Le
licenze proprietarie contengono le clausole più disparate; in generale
non consentono né l'accesso al codice sorgente, né modifiche al
programma. Di seguito un breve glossario dei termini più comunemente
usati per la distribuzione di software con licenze proprietarie.
Nessuna licenza
Anche se questa non è una licenza, l'effetto è quello di una licenza
proprietaria. Un programma che non sia accompagnato da alcuna licenza
di copyright è soggetto alla convenzione internazionale di Berna sul
diritto d'autore, e come tale non può essere distribuito o modificato
senza l'esplicito permesso dei titolari dei diritti di sfruttamento
economico. Ciò significa che il programma non è
libero se non accompagnato da una licenza libera, e questo anche nel
caso in cui il sorgente sia disponibile, gratuitamente o meno.
Freeware
A meno di specifiche ulteriori, un programma si dice freeware
se può essere liberamente e gratuitamente copiato per qualunque scopo.
Questi programmi di solito non sono accompagnati dal sorgente, oppure
sono soggetti ad altre restrizioni che hanno l'effetto di renderli non liberi. Un esempio molto noto è il
visualizzatore di documenti PDF Adobe
Acrobat reader.
Shareware
I programmi shareware possono essere copiati e distribuiti
liberamente, ma non possono essere legittimamente utilizzati senza
pagarli dopo un primo periodo di prova. Alcuni di questi programmi
smettono di funzionare dopo il periodo di prova, o forniscono
funzionalità ridotte fino all'acquisto di una chiave che li sblocchi.
Solo eseguibile
Gran parte dei programmi proprietari sono distribuiti in sola forma
eseguibile, senza sorgenti. Eventualmente, l'eseguibile può essere
soggetto a limitazioni d'uso. Vedi ad esempio la licenza
del Macromedia Flash Plugin.
Accordo di non divulgazione
Talvolta un programma è consegnato solo dopo che chi lo riceve abbia
firmato un impegno a non divulgare certe specifiche informazioni sul
programma stesso. Questi documenti (l'accordo) sono detti in
inglese NDA (non disclosure agreement), e sono comuni
nei casi in cui il sorgente sia distribuito, ma senza poter essere
ulteriormente redistribuito. Per esempio, l'impegno può consistere nel
non divulgare informazioni su come il programma funziona.
Uso limitato
Una comune clausola che rende una licenza non libera è quella di uso
senza fini di lucro. Molti programmi sono distribuiti
gratuitamente per uso non commerciale, cioè possono essere
usati gratuitamente purché gli utilizzatori non ne traggano un guadagno.
Esistono diverse clausole analoghe, per esempio per uso
personale, per uso accademico, per uso
scolastico. Altre restrizioni sono ad esempio la clausola non
trasferibile, che impedisce la libera redistribuzione. Programmi
di questo genere possono essere accompagnati o meno dal sorgente, ma di
solito non lo sono.
Software semilibero
Il software corredato di codice sorgente, distribuito a singoli utenti
col permesso di di uso, copia, modifica e distribuzione è detto
semilibero. Un esempio è il simulatore di reti ns-2, di cui
alcune parti sono date in licenza solo per scopi non commerciali, mentre
altre parti possono essere modificate solo per scopi di valutazione e
ricerca.
Questo significa che una distribuzione commerciale di Linux che sia
orientata al mercato scientifico e della ricerca non può includere il
simulatore di reti ns-2, a meno che le parti per uso non commerciale ne
siano eliminate, compito difficile e forse impossibile. Oltretutto,
siccome la clausola di uso non commerciale comprende la documentazione,
non è possibile vendere un libro su ns-2 che descriva le parti soggette
a tali licenze.
Licenze per il software libero
Un'elegante
definizione di licenza libera fu data per la prima volta da Richard
Stallman negli anni Ottanta. Una definizione più
dettagliata, equivalente alla prima, fu data negli anni Novanta
dalla Open Source Initiative.
Un licenza per il software libero permette a chiunque riceva un
programma ad essa soggetto di usarlo per qualunque scopo, di copiarlo,
modicarlo e redistribuirlo. Che la distribuzione sia o meno gratuita
non è rilevante. Il codice sorgente deve essere accluso o può essere
richiesto al prezzo di costo del trasferimento. Se chi riceve il
software può redistribuirlo solo entro gli stessi termini di licenza, si
parla di licenza con permesso d'autore
(copyleft in inglese); in caso contrario si parla di licenza
senza permesso d'autore (non-copyleft). La seguente
illustrazione di Chao-Kuei evidenzia i rapporti fra i diversi schemi di
licenza fin qui descritti.
Scelta di una licenza per software originale
Per rendere libero un programma bisogna allegare al codice sorgente un
file (tipicamente di nome LICENSE.TXT) che contenga il testo
della licenza scelta. Inoltre, è consigliabile aggiungere all'inizio di
ogni file sorgente una riga di copyright analoga a quella che si trova
alla fine di questo articolo. Ad ogni
modifica del file bisogna aggiungere l'anno di modifica alla lista degli
anni riportata nella riga di copyright. Se risultasse difficile
riportare il carattere ©
, questo può essere sostituito dai tre
caratteri (C)
. Dopo la riga di copyright bisogna indicare che i
termini della licenza di copyright sono contenuti nell'allegato file
LICENSE.TXT.
Scrivere ex novo una licenza di copyright per il software è una pratica
da evitare. È molto difficile scriverne una nuova, anche per un legale
specializzato in questa materia. Inoltre, l'uso di una delle licenze il
cui uso è consolidato ha diversi vantaggi: gli utilizzatori del software
le conoscono già, e ne sanno valutare le implicazioni; sono scritte da
legali; hanno provato la loro validità sul campo; infine, facilitano lo
scambio di codice fra progetti liberi diversi.
Che licenza scegliere per un nuovo programma? Dipende dai propri
obiettivi. Il miglior suggerimento, in linea con quanto si trova nella
Debian
Free Software Guidelines FAQ e in un articolo di
David A. Wheeler, è usare una delle tre seguenti licenze.
La licenza pubblica generica (GPL) del progetto GNU
Se lo scopo della licenza è di assicurarsi che tutte le copie del
programma, comprese quelle modificate, siano accompagnate dal codice
sorgente o sia comunque facile procurarselo, allora è bene usare la
GNU GPL.
QUesta è la licenza più diffusa in assoluto, è usata per i programmi
sviluppati nell'ambito del progetto GNU e per molti
altri, come ad esempio il kernel Linux, l'editor GNU Emacs, il compilatore
portabile GCC,
gli ambienti desktop per X KDE e Gnome.
La GPL è il primo e più importante esempio di licenza con permesso
d'autore. Chi modifichi software con permesso d'autore e ne
distribuisca le modifiche è tenuto a farlo secondo gli stessi termini in
cui è distribuito il programma originale. Detto altrimenti, bisogna
dare agli altri le stesse libertà che si sono ottenute. Più
precisamente, la distribuzione di ogni opera derivata da un programma
con licenza GPL deve a sua volta essere soggetta alla licenza GPL o ad
una licenza che dia le stesse libertà. Questo anche se il programma è
linkato ad altri, in quanto il risultato è considerato opera derivata.
La licenza tuttavia non copre la chiamata di un programma GPL da parte
di altri programmi, o il suo uso come parte di un gruppo di programmi, o
la mera aggregazione con altri programmi sullo stesso supporto: tutti
questi usi del programma GPL sono permessi senza vincoli.
La GPL si preoccupa di proteggere il buon nome degli autori imponendo
che le versioni modificate di un programma siano chiaramente indicate
come tali, se distribuite. È comunque possibile effettuare modifiche
per uso personale, o uso interno in un'organizzazione, senza sottostare
a formalità particolari.
Normalmente è preferibile linkare un programma GPL con librerie soggette
a licenze compatibili con la GPL, come la GNU LGPL
o la nuova BSD. Nel caso sia necessario usare
librerie distribuite con licenze non compatibili con la GPL bisogna
distinguere vari casi. Un'eccellente riferimento è la GPL FAQ, che
contiene un gran numero di domande e risposte sulla GNU GPL. Una
risposta
particolarmente interessante tratta dei collegamenti ai moduli
caricabili, come quelli usati da molti linguaggi moderni (Perl, Python,
Java). È una buona idea partire da quella domanda, e passare quindi a
quella su come aggiungere
eccezioni alla GPL per un dato programma. C'è anche un messaggio
di Linus Torvalds, datato 19 ottobre 2001, che offre spunti di
riflessione molto interessanti su questo argomento.
La licenza pubblica generica attenuata (LGPL) del progetto GNU
Se lo scopo della licenza è assicurarsi che il software rimanga
libero anche una volta modificato, lasciando tutavia la libertà di
linkare ad esso qualunque altro programma, libero o proprietario, allora
è bene usare la GNU LGPL.
La LGPL è una licenza compatibile con la GPL, usata principalmente per
librerie, plugin e componenti. Alcuni noti programmi distribuiti con
licenza LGPL sono l'emulatore i386 Bochs, molte delle librerie del
desktop Gnome, la libreria
C Glibc e la
libreria C++ libg++.
La LGPL è una licenza con permesso d'autore,
come la GPL. Il software coperto da LGPL, però, può essere linkato con
software non compatibile con la GPL, anche proprietario, purché il
codice sorgente della parte LGPL sia reso disponibile, e purché la parte
LGPL sia aggiornabile indipendentemente dal resto del programma con cui
è linkata. Normalmente si ottiene questo risultato se la parte LGPL è
una libreria condivisa, una DLL, un modulo caricabile o un componente.
Ci sono pro e contro nell'uso della LGPL. La Free Software Foundation
sconsiglia
esplicitamente l'uso della LGPL, con lo scopo di ampliare la scelta
di software coperto da GPL. Per chi condivide questa finalità, è
consigliabile leggere e capire perché la FSF preferisce la GPL. Se,
d'altra parte, lo scopo è quello di creare librerie o moduli liberi,
senza preoccuparsi del software che verrà linkato con esse, allora la
LGPL può essere una buona scelta.
La LGPL è compatibile con la GPL; questo significa che si può prendere
un pezzo di codice LGPL, incorporarlo in un programma GPL e distribuire
il tutto sotto la GPL. Questa è un'importante caratteristica di questa
licenza.
La nuova BSD e la licenza MIT X
Se lo scopo cui si mira è la massima diffusione del codice tramite il
permesso di usarlo in qualunque programma, che sia libero o
proprietario, la licenza giusta è la nuova BSD
(nota anche come licenza BSD senza la clausola di pubblicità
) o
la licenza MIT
X
.
Alcuni famosi programmi distribuiti con una di queste due licenze sono
il kernel e gli strumenti di base del sistema operativo FreeBSD, il server X XFree86, molti strumenti di rete, e
il server web Apache.
La nuova BSD dà all'utente la massima libertà. Solo il software di
pubblico dominio dà una libertà maggiore, anche se in Europa gli autori
non possono in ogni caso rinunciare alla paternità dell'opera. Gli
utenti possono utilizzare il software come meglio credono, anche
ridistribuendolo con una licenza proprietaria, così com'è o modificato.
L'altra faccia della medaglia è che chiunque può prendere il software,
migliorarlo e redistribuirlo in forma eseguibile senza sorgenti,
mantenendo le modifiche segrete, senza restituire la libertà ottenuta.
Ma se gli autori originari costituiscono un gruppo di riconosciuta
competenza su quello specifico argomento, un gruppo che continua ad
operare miglioramenti e distribuirli con la stessa licenza, il rischio
non esiste, e il software gode del pubblico più vasto possibile.
Esempio di un tale caso è l'evoluzione della pila di protocolli TCP/IP a
patire dai sorgenti originari del sistema BSD: benché molti produttori
software abbiano usato il codice TCP/IP nei propri programmi
proprietari, ogni nuovo sviluppo è stato sempre incorporato nel codice
originario, e ad oggi il meglio della pila protocollare TCP/IP è libera.
Le licenze nuova BSD e MIT X sono compatibili con la GPL, cioè si può
prendere un pezzo di codice MIT X, incorporarlo in un programma GPL e
distribuire il tutto sotto la GPL. È da notare però che la licenza BSD
originale non è
compatibile con la GPL a causa della clausola di pubblicità, che
impone che una nota sia inclusa in tutto il materiale pubblicitario
distribuito col programma. Siccome la GPL proibisce ogni restrizione
addizionale circa la redistribuzione del software, la licenza BSD
originale non è compatibile con la GPL.
Contributi al software libero
Quando si contribuisce ad un programma libero, piuttosto che scriverlo
da capo, la cosa migliore è usare la licenza adottata dal programma
stesso. Pur essendo spesso possibile fare diversamente, di solito non è
consigliabile.
Una ragione per evitare di combinare licenze diverse per lo stesso
programma è che spesso non è facile accertare la loro compatibilità. È
accaduto in passato che incompatibilità o problemi legali siano stati
scoperti solo dopo molto tempo, mettendo così in dubbio i diritti degli
autori e degli utenti. Un'altra ragione è che, se il programma che si
modifica ha sviluppato una comunità attorno a sé, questa può vedere di
malocchio un cambiamento di licenza, gettando così una cattiva luce
sulle modifiche apportate non per ragioni tecniche, ma a causa della
licenza con cui queste sono distribuite.
Per esempio, volendo proporre una modifica al kernel Linux,
bisognerà renderla soggetta alla GNU GPL, essendo questa la licenza
utilizzata per il resto del kernel, né sarebbe possibile fare
altrimenti. D'altra parte, se si vuol proporre un nuovo modulo per il
simulatore di reti ns-2, è preferibile distribuirlo con una
licenza nuova BSD, anche se sarebbe possibile usare una licenza LGPL, o
anche una GPL con eccezioni. In questi ultimi casi, siccome il resto
del codice di ns-2 (che è di notevoli dimensioni) è in gran parte
coperto da licenza BSD, una licenza di tipo diverso rischierebbe di
essere malvista all'interno della comunità che gestisce il programma.
Alcune associazioni che producono software libero chiedono a chi
contribuisce di firmare una liberatoria o un trasferimento di copyright.
La Apache foundation e la
Free Software Foundation
chiedono di cedere loro i diritti di sfruttamento economico, o almeno di
rinunciare ad ogni rivendicazione economica sul software che viene
proposto per l'incorporazione nei loro progetti di software libero. La
ragione è che, se mai una disputa sui diritti d'autore dovesse arrivare
in tribunale, la FSF o la Apache foundation si troverebbero in una
posizione molto più forte come uniche titolari dei diritti di
sfruttamento economico, piuttosto che trovarsi nella posizione di dover
convincere ad andare in giudizio una miriade di sviluppatori, molti dei
quali potrebbero non essere interessati a farlo, o che potrebbero essere
irreperibili.
Un altro punto da considerare è che contribuire all'avanzamento di una
base di codice affermata richiede non solo qualità tecnica e una
corretta scelta della licenza, ma anche conoscenza della comunità che si
è aggregata attorno al software, e della prassi accettata per proporre
nuovi contributi. Ci possono essere solo uno o due autori principali,
come ci possono essere diversi sviluppatori responsabili di sezioni
diverse. In ogni caso, seguire l'uso consolidato è condizione per
essere presi sul serio.
Licenze per la documentazione del software
Il software è normalmente accompagnato dalla documentazione relativa, di
solito parte della distribuzione stessa. Molti autori di software
libero usano la stessa licenza per il software e per la documentazione.
Benché sia in linea di principio scorretto, perché le licenze per il
software libero fanno esplicito riferimento al software, quest'uso è
ormai comune, e non ha dato adito a problemi legali. Usare la stessa
licenza software per la documentazione è quindi una prassi priva di
rischi.
Esistono comunque due alternative interessanti per chi vuole usare
licenze esplicitamente scritte per la documentazione: la GFDL e le
licenze Creative Commons.
La licenza libera per la documentazione del progetto GNU (GFDL)
Per chi vuole scrivere un intero libro da stampare e vendere, il cui
contenuto sia liberamente riproducibile e modificabile, la GFDL
è una
buona scelta. Si tratta di una complessa licenza con permesso d'autore, con molte parti opzionali come
copertine, risvolti, quaderno delle modifiche, sezioni immutabili, che
la rendono adatta a un prodotto complesso come è un libro. È molto
utilizzata dalla FSF per la
documentazione del progetto GNU. La GFDL è stata oggetto di numerose critiche,
soprattutto perché l'abuso delle sezioni immutabili può causare problemi
nella creazione di piccole opere derivate, e può causarne l'accumulo nel
tempo.
Licenze Creative Commons
Per chi desidera una semplice licenza libera con permesso d'autore, è possibile usare la licenza
Attribution-ShareAlike
dei creative commons. In alternativa, una licenza libera senza permesso
d'autore è la licenza Attribution
.
Entrambe consentono il libero uso, anche a fini di lucro, e la modifica
dell'opera, a condizione che sia citato l'autore. Entrambe permettono
la copia e la redistribuzione, ma la versione con permesso d'autore
impone che quest'ultima avvenga con identica licenza. Entrambe le
licenze sono in corso di traduzione e adattamento da parte di tecnici e
legali di diversi paesi in tutto il mondo, in maniera che siano calate
perfettamente all'interno dei diversi sistemi legislativi.
Copyright © 2004-2005 Francesco Potortì
La versione ipertestuale più recente, comprendente riferimenti ad
altri documenti sul web si trova ad <http://fly.isti.cnr.it/sl/licenze.html>
È consentita la copia letterale e la distribuzione con qualsiasi
mezzo, a condizione che questa nota sia riprodotta.
Ultimo aggiornamento: 2005-01-26