Scegliere una Licenza

Quando scegliete una licenza per il vostro progetto, per quanto possibile, usate una licenza esistente invece di crearne un'altra. Ci sono due ragioni per cui le licenze esistenti sono le migliori:

Per applicare una di queste licenze al vostro progetto, vedete sezione chiamata «Come Applicare Una Licenza Al Vostro Software» in Capitolo 2, Partenza .

La licenza MIT / X Window System

Se il vostro obiettivo è quello che il vostro codice sia accessibile dal più grande numero di sviluppatori e di lavori derivati e non date importanza al fatto che sia usato in programmi proprietari, scegliete la licenza MIT / X Window System (così chiamata perché è la licenza sotto la quale il Massachusetts Institute of Technology rilasciò il codice del sistema X Window). Il messaggio fondamentale di questa licenza è “Siete liberi di usare questo codice in qualunque modo vogliate”. Essa è compatibile con la GNU GPL, ed è breve, semplice e facile da capire:

        Copyright (c) <anno> <detentori del copyright>

        Il permesso è così garantito, gratuito, a qualunque persona che ottenga
        una copia di questo software e i file associati di documentazione (il
        “Software”), per commerciare col Software senza restrizioni, inclusi
        i diritti illimitati all'uso, alla copia, alla modifica, all'unione, alla pubblicazione,
        alle sotto licenze e/o a vendere copie del Software, e a
        permettere a persone alle quali il Software è fornito a fare lo stesso,
        soggetto alle seguenti condizioni:

        L'avviso di copyright summenzionato e questo avviso di permesso devono essere inclusi
        in tutte le copie o porzioni del Software sottostante.

        IL SOFTWARE E' FORNITO “COSI' COM'E'”, SENZA GARANZIA DI ALCUN GENERE,
        ESPRESSA O IMPLICITA, INCLUDENDO E SENZA ESSERE LIMITATO ALLE GARANZIE
        DI POTER ESSERE VENDUTO, L'IDONEITA' A UN PARTICOLARE FINE E
        LA NON VIOLAZIONE DEI DIRITTI ALTRUI. IN NESSUN CASO GLI AUTORI O I DETENTORI DEL COPYRIGHT
        SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITA', SIA IN FORZA
        DEL CONTRATTO, IN SITUAZIONE NON CONTEMPLATE NEL CONTRATTO O ALTRO, CHE NASCA DA, AL DI FUORI
        O IN RIFERIMENTO AL SOFTWARE O ALL'USO O AD ALTRE QUESTIONI RIGUARDANTI IL SOFTWARE.
      

(Presa da http://www.opensource.org/licenses/mit-license.php.)

La GNU General Public License

Se preferite che il codice del vostro progetto non sia usato in programmi proprietari o se almeno non vi interessa se venga usato o no in programmi proprietari, scegliete la GNU General Public License (http://www.fsf.org/licensing/licenses/gpl.html). La GPL è probabilmente la licenza più largamente usata nel mondo oggi. Questo fatto di essere riconosciuta all'istante è di per se stesso uno dei più importanti vantaggi della GPL.

Quando scrivete una libreria con l'intendimento che sia usata come parte di altri programmi, considerate attentamente se le restrizioni imposte dalla GPL siano in linea con gli obiettivi del vostro progetto. In alcuni casi—per esempio, quando state cercando di sostituire una libreria proprietaria concorrente che fa le stesse cose—può essere molto più strategico licenziare il vostro codice in modo che possa essere mescolato con programmi proprietari, anche se invece non vorreste ciò. La Free Software Foundation ha anche foggiato una alternativa alla GPL in queste circostanze: la GNU GPL per librerie, più avanti rinominata GNU GPL Minore (la maggior parte della gente usa l'acronimo LGPL, in ogni caso). La LGPL ha meno stringenti restrizioni della GPL, e può essere mescolata facilmente con codice non libero. Comunque, è un po' più complessa e ha bisogno di qualche tempo per essere compresa, cosicché se vi state orientando per usare la GPL, vi consiglio di usare la licenza tipo MIT/X.

La GPL è libera o non libera?

Una conseguenza della scelta della GPL è la possibilità—piccola ma non infinitamente piccola che voi stessi siate invischiati nella disputa se la GPL sia “libera” o meno, dato che essa pone delle restrizioni su ciò che potete fare con il codice—cioè la restrizione che il codice non può essere redistribuito sotto ogni altra licenza. Per qualcuno, l'esistenza di questa restrizione significa che la GPL è “meno libera” di licenze più permissive come la licenza MIT/X. Dove questo argomento funziona, certamente, è che, poiché “più libero” è meglio che “meno libero” (dopotutto chi non è a favore della libertà?), conseguentemente queste licenze sono migliori della GPL.

Questo dibattito è un'altra popolare guerra santa (vedere sezione chiamata «Evitare le Guerre Sante» in Capitolo 6, Comunicazione ). Evitate di parteciparvi, almeno nei forum di progetto. Non tentate di provare che la GPL è meno libera, altrettanto libera, o più libera di altre licenze. Piuttosto mettete l'accento sulle ragioni per cui il vostro progetto ha scelto la GPL. Se il fatto di essere riconosciuta per una licenza è una ragione, ditelo. Se l'obbligo di una licenza libera per lavori derivati è anche un ragione, dite anche questo, ma rifiutatevi di essere coinvolti sulla discussione se ciò rende il codice più o meno "libero". La libertà è un argomento complesso e serve a poco parlare di esso se la terminologia sta per essere usata come pretesto al posto della sostanza.

Poiché questo è un libro e non argomento di mailing list, comunque ammetterò di non aver mai capito l'argomento “La GPL non è libera”. La sola restrizione che essa impone è che la gente non imponga ulteriori restrizioni. Dire che ciò dà luogo a minore libertà a me è sempre sembrato come dire che bandire la schiavitù riduce la libertà, perché impedisce a certa gente di possedere schiavi.

(Oh, se siete coinvolti in un a discussione su questo, non rilanciate facendo analogie incendiarie.)

Cosa sulla Licenza BSD?

Una discreta quantità di software open source è distribuito sotto la licenza BSD (o, a volte una licenza stile BSD). La licenza originale BSD fu usata dalla Berkeley Software Distribution, con essa l'Università della California rilasciò importanti parti dell'implementazione Unix. La licenza (il testo esatto può essere visto nella sezione 2.2.2. di http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6) era simile nello spirito alla licenza MIT/X, eccetto che in una clausola:

Tutti i materiali pubblicitari devono mostrare il seguente riconoscimento: Questo prodotto include software sviluppato dall'Università della California, Laboratorio Lawrence Berkeley.

La presenza di quella clausola non solo rese la licenza originale BSD incompatibile con la GPL, ma stabilì anche un pericoloso precedente: che altre organizzazioni mettono simili clausole pubblicitarie nel loro software libero—mettendo il nome della propria organizzazione al posto della "l'Università della California, Lawrence Berkeley Laboratory"—e i ridistributori di software furono investiti da un sempre crescente carico su quello che a loro era richiesto di esibire. Fortunatamente molti dei progetti che usarono quella licenza diventarono consci del problema, e semplicemente eliminarono la clausola pubblicitaria. Nel 1999 anche l'Università della California fece lo stesso.

Il risultato fu una licenza BSD rivisitata, che è semplicemente una licenza originale BSD con la clausola pubblicitaria rimossa. Comunque, questa storia rende la frase “licenza BSD” un po' ambigua: si riferisce alla licenza revisionata o alla originale? Questo è il motivo per i quale io preferisco la licenza MIT/X, che è essenzialmente equivalente, e che non soffre di nessuna ambiguità. Comunque c'è forse un motivo per preferire la licenza BSD alla MIT/X, ed è quello che la licenza BSD include questa clausola:

Né il nome dell' <ORGANIZZAZIONE> né il nome dei suoi collaboratori può essere usato per sottoscrivere o promuovere prodotti derivati da questo software senza precedente autorizzazione scritta.

Non è chiaro il fatto che senza una tale clausola un destinatario avrebbe avuto i diritti di usare il nome del licenziatario in qualche modo, ma la clausola rimuove ogni possibile dubbio. Per organizzazioni preoccupate del controllo del marchio, quindi, la licenza BSD può essere di poco preferibile alla MIT/X. In generale, comunque, una licenza liberale di copyright non implica che il destinatario abbia il diritto di usare o indebolire il vostro marchio— la legge sul copyright e quella sul marchio sono due bestie differenti.

Se volete usare un licenza BSD revisionata, un modello è disponibile a http://www.opensource.org/licenses/bsd-license.php.



[27] La storia della licenza e del suo nome è un po' complicata. La prima versione della licenza fu rilasciata da Affero, Inc, che la basò sulla GNU GPL versione 2. A questa si fece comunemente riferimento come AGPL. Più tardi la Free Software Foundation decise di adottarne l'idea, ma fino ad allora essa aveva rilasciato la versione 3 della sua GNU GPL, così basò la sua nuova licenza Afferoizzata su quella e la chiamò "GNU AGPL". La vecchia licenza Affero è più o meno deprecata adesso. Se volete clausole tipo Affero, dovreste usare la versione GNU. Per evitare ambiguità, chiamatela "AGPLv3”, "GNU AGPL", o con la massima precisione, "GNU AGPLv3".