Tipologie di licenze open source

Nel voler rilasciare una libreria di sviluppo software mi sono posto il problema di quale sia la miglior licenza da applicare.
E’ stata l’occasione per approfondire meglio un discorso lasciato sempre appeso e cioè quello di entrare nel merito delle varie tipologie di licenze open source che ci sono in giro.

Ovviamente il tipo di licenza che si vuole adottare dipende dall’uso che si vuole lasciare agli utilizzatori della libreria. Una libreria (o un progetto software) dichiarato open source è in primo luogo pubblico, cioè tutti possono scaricarlo e guardarne il codice. Il passo successivo è limitare (o regolamentare) l’uso che si vuol lasciare all’utilizzatore della libreria.

In questo caso, il termine “software libero” è più restrittivo che altro, paradossalmente io che voglio rilasciare un software in maniera open source mi sono trovato a dover scegliere quale tipo di libertà dare al codice. Che in fondo è un controsenso, se è libero è libero.

Ma andiamo a vedere nel dettaglio quali sono le tipologie di licenza ad oggi disponibili e quali sono gli effetti (e gli obblighi) che danno.
Ad oggi le maggiori tipologie di licenze open source sono:

GNU GPL – (Generic Public Licenze) – ( http://it.wikipedia.org/wiki/GNU_GPL )
GNU LGPL – ( Lesser Generic Public Licenze) – ( http://it.wikipedia.org/wiki/GNU_LGPL )
Creative Commons  ( http://www.creativecommons.it/ )
Licenza Apache (http://it.wikipedia.org/wiki/Licenza_Apache )

Ne esistono anche altre (MIT, BSD, ..) ma quelle citate sono le più diffure. Per un elenco comparativo consultare http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere

Vediamo in dettaglio le quattro  tipologie di licenze citate  facendo una premessa: Ogni licenza open source prevede SEMPRE il diritto di attribuzione, cioè l’obbligo per chi usa e ridistribuisce il codice di far riferimento all’autore. … E’ il minimo sindacale.

Creative Commons

Questo tipo di licenze è la più moderna e la più versatile, consiste nel modulare i permessi che si vuole lasciare agli utilizzatori della libreria scegliendo (e componendo) la licenza su misura. Inoltre è disponibile anche in italiano il chè semplifica moltissimo la sua comprensione.
E’ possibile costruire la propria licenza rispondendo a poche semplici domande.  ( link )

Innanzitutto bisogna decidere se si vuole consentire agli altri di apportare modifiche al proprio codice e se si vuole che queste modifiche siano rilasciate anch’esse sotto la stessa licenza. Altra domanda a cui rispondere è se si vuole che la proprio lavoro possa essere usato a fini commerciali (cioè se si vuole consetire l’uso in progetti aziendali).
Rispondendo a queste tre domande si possono generare 6 tipi di licenze:

  • BYAttribuzione : L’unico obbligo che hanno gli utilizzatori del software è quello di menzionare l’autore. Possono poi utilizzare il codice come meglio credeno, possono modificarlo, rilasciarlo sonotto un’altra licenza e possono usarlo a fini commrciali.
  • BY-NDAttribuzione, Non opere derivate : Gli utilizzatori del codice sotto questa licenza hanno l’obbligo di menzionale l’autore (attribuzione) e di non rilasciare opere derivate del lavoro. Possono modificarlo ed usarlo per fini commerciali
  • BY-NC-NDAttribuzione, Non opere derivate, non commerciale : Gli utilizzatori della libreria devono menzionare l’autore e non possono usare la libreria per scopi commerciali, non possono inoltre rilasciare versioni modificate del codice. Questa è la più restrittiva delle licenze, significa che l’autore sarà sempre l’unico detentore del codice, se si intende contribuire al progetto, bisogna inviare le modifiche all’autore che (se vorrà) potrà rilasciare nella sua libreria
  • BY-NCAttribuzione, Non commerciale : Gli utilizzatori della libreria non possono usare il codice per applicazioni commerciali ma possono modificarla e rilasciarla come meglio credono, sempre menzionando l’autore originale.
  • BY-SA – Attribuzione, Progaga la licenza : Gli utilizzatori della libreria possono modificare il codice, usarlo per progetti commercialie ma se rilasciano una versione modificata della libreria sono obbligati a rilasciarla sotto la stessa licenza (BY-SA). Devono ovviamente sempre menzionare l’autore originale
  • BY-SA-NC : Attribuzione, Propaga licenza, Non commerciale : Come nel caso precedente ma con il vincolo che la libreria (e le sue derivate a cui si propaga la stessa licenza) non possono essere usate per fini commerciali

La licenza creative commons è la più versatile di tutte e consente a tutti gli effetti di scegliere il modo in cui si vuole condividere il proprio lavoro. In realtà la licenza si applica a qualsiasi opera di ingegno (musica, testi, foto, video, …) ma proprio per i progetti software non è consigliata.
Attenzione: Non è consigliata, non è detto che non è applicabile. (link)
Questo perchè storicamente, le licenze per i software nascono prima e quindi sono più diffuse.

ASFL – Apache Software Foundation License

La licenza apache è la più libera tra tutte le licenze. ( link )
Essa non impone alcun obbligo all’utilizzatore del codice, (a parte quello di menzionare l’autore che è cmq la base di ogni licenza).
L’utilizzatore può quindi prendere il codice, usarlo per fini commerciali, modificarlo e pubblicare le modifiche sotto qualsiasi titpo di licenza.
E’ assimilabile al tipo di licenza BY della cretive commons.

GNU GPL

Questa tipo di licenza, anche se è quella storicamente più diffusa ed è adottata dal sistema operativo Linux, è quella a mio avviso più limitante.
Infatti il codice sottoposto a questo tipo di licenza obbliga a chi lo utilizza non solo di rilasciare i sorgenti del prodotto anche se usato a fini commerciali ma anche di rilasciarli sotto la stesso tipo di licenza (GPL).
Mentre da un punto di vista dello sviluppo di progetti open (quali ad esempio linux) sono il massimo, (cioè progetti nati open e che voglione rimanere sempre open) per una libreria software non è indicato. Si pensi se spring o hibernate fossero sviluppati sotto questo tipo di licenza, tutti i maggiori progetti software (anche commerciali) sarebbero obbligati a rilasciare i propri sorgenti.
Questo tipo di licenza è paragonabile alla licenza BY-NC-SA della creative commons.

GNU LGPL

Questo tipo di licenza (inizialmente chiamato Library GPL e poi Lesser GPL) è una versione meno libera della licena GPL. Propio perchè inizialmente si chiamava “Library” è stata pensata per quelle librerie software che devono entrare a far parte di progetti più ampi e non possono propagare i vincoli di  condivisione del codice.
Quindi, analogamente alla GPL obbliga gli utilizzatori a rilasciare copie del progetto in maniera open source e sempre sotto LGPL (ma solo se lo vogliono) ma non di rilasciare i sorgenti dei progetti nei quali sono inclusi.
Alcune delle maggiori libreria software (Spring, Hibernate ad esempio) sono rilasciate sotto questa forma di licenza, quindi è possibile usarle anche i prodotti commericiali senza essere obbligati a rilasciarne i sorgenti.
Questa licenza è paragonabile alla BY-SA della creative commons.
Concludendo, quindi, se non si vuole usare la licenza creative commons, per lo sviluppo di una libreria software (che si intende far proseguire nella comunità e diffonderne al massimo l’utilizzo), le migliori libreri sono quella Apache dove si rilascia la libreria e poi ognuno fa quello che vuole o la LGPL dove ognuno la usa come gli pare ma se vuole può anche estenderla (forkarla) e contribuire al progetto in maniera indipendente lasciando però la libreria sempre sotto LGPL.
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...