Che cos'è il software libero

Questo articolo è stato copiato dal sito web del sistema operativo GNU

Definizione di Software Libero

La definizione di Software Libero chiarisce quali sono i requisiti che un certo programma deve soddisfare perché lo si possa considerare "software libero". La definizione viene occasionalmente sottoposta a revisioni per chiarificarla o spiegare come interpretare alcune sfumature. Per analizzare le modifiche effettuate basta leggere la sezione Storia nel seguito.

L'espressione "software libero" si riferisce al rispetto delle libertà degli utenti e della comunità. In breve, gli utenti hanno la libertà di eseguire, copiare, distribuire, studiare, cambiare e migliorare il software. Tramite queste libertà gli utenti (individualmente o nel loro complesso) controllano il programma e le sue funzioni.

Quando non sono gli utenti a controllare il programma, allora il programma controlla gli utenti; e gli sviluppatori controllano il programma, quindi attraverso di esso controllano gli utenti. Un tale programma, non-libero o "proprietario", diventa quindi uno strumento di abuso.

Quindi il "Software libero" è una questione di libertà, non di prezzo. Per capire il concetto, bisognerebbe pensare alla "libertà di parola" e non alla "birra gratis" [NdT: il termine free in inglese significa sia gratuito che libero, in italiano il problema non esiste].

Un programma è software libero se gli utenti del programma godono delle quattro libertà fondamentali:

  • Libertà di eseguire il programma, per qualsiasi scopo (libertà 0).
  • Libertà di studiare come funziona il programma e di modificarlo in modo da adattarlo alle proprie necessità (libertà 1). L'accesso al codice sorgente ne è un prerequisito.
  • Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2).
  • Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti da voi apportati (e le vostre versioni modificate in genere), in modo tale che tutta la comunità ne tragga beneficio (libertà 3). L'accesso al codice sorgente ne è un prerequisito.

Un programma è software libero se l'utente ha tutte queste libertà. In particolare, se è libero di ridistribuire copie, con o senza modifiche, gratis o addebitando delle spese di distribuzione a chiunque ed ovunque. Essere liberi di fare queste cose significa (tra l'altro) che non bisogna chiedere o pagare nessun permesso.

Bisogna anche avere la libertà di fare modifiche e usarle privatamente nel proprio lavoro o divertimento senza doverlo dire a nessuno. Se si pubblicano le proprie modifiche, non si deve essere tenuti a comunicarlo a qualcuno in particolare o in qualche modo particolare.

La libertà di usare un programma significa libertà per qualsiasi tipo di persona od organizzazione di utilizzarlo su qualsiasi tipo di sistema informatico, per qualsiasi tipo di attività e senza dover successivamente comunicare con lo sviluppatore o con qualche altra entità specifica. Quello che conta per questa libertà è lo scopo dell'utente, non dello sviluppatore; come utenti potete eseguire il programma per i vostri scopi; se lo ridistribuite a qualcun altro, egli è libero di eseguirlo per i propri scopi, ma non potete imporgli i vostri scopi.

La libertà di ridistribuire copie deve includere le forme binarie o eseguibili del programma e anche il codice sorgente, sia per le versioni modificate che non modificate (distribuire programmi in formato eseguibile è comodo per avere sistemi operativi liberi facili da installare). È legittimo anche se non c'è alcun modo di produrre una forma binaria o eseguibile (dal momento che alcuni linguaggi non supportano questa caratteristica), ma si deve avere la libertà di ridistribuire tali forme nel caso si trovi o si sviluppi un modo per farlo.

Affinché le libertà 1 e 3 (libertà di fare modifiche e di pubblicare versioni migliorate) abbiano senso, si deve avere accesso al codice sorgente del programma. Perciò, l'accessibilità al codice sorgente è una condizione necessaria per il software libero. Il "codice sorgente" deliberatamente offuscato non è vero codice sorgente e non può essere considerato tale.

La libertà 1 comprende la libertà di utilizzare una versione da voi modificata anziché l'originale. Se il programma è distribuito in un prodotto che, per scelta progettuale, esegue le versioni modificate da una specifica persona o azienda ma si rifiuta di eseguire quelle modificate da voi (tecnica nota come "tivoization" o come "lockdown" o come "secure boot" secondo la discutibile definizione che ne danno i suoi sostenitori), allora la libertà 1 diventa solo teorica. Ciò non è sufficiente. In altre parole, la versione eseguibile di questi programmi non è software libero anche se il codice sorgente da cui sono stati ottenuti è libero.

Un importante modo di modificare un programma è quello di includervi funzioni e moduli liberi già esistenti. Se la licenza del programma prevede che non si possano includere moduli già esistenti (nonostante abbiano una licenza appropriata), ad esempio se richiede che voi possiate aggiungere solo codice di cui detenete il copyright, allora la licenza è troppo restrittiva per essere considerata libera.

La libertà 3 comprende la libertà di usare e rilasciare le versioni modificate come software libero. Una licenza libera può anche permettere altri modi di distribuzione; insomma, non c'è l'obbligo che si tratti di una licenza con copyleft. Tuttavia, una licenza che imponesse che le versioni modificate non siano libere non si può categorizzare come licenza libera.

Queste libertà per essere reali devono essere permanenti e irrevocabili fin tanto che non si fa qualcosa di sbagliato: se lo sviluppatore del software ha il potere di revocare la licenza, o di sostituirla retroattivamente con una più restrittiva, anche senza che l'utente sia causa di tale revoca, il software non è libero.

Tuttavia, certi tipi di regole sul come distribuire il software libero sono accettabili quando non entrano in conflitto con le libertà principali. Per esempio, il copyleft, noto anche impropriamente come "permesso d'autore", è (detto in poche parole) la regola per cui, quando il programma è ridistribuito, non è possibile aggiungere restrizioni per negare ad altre persone le libertà principali. Questa regola non entra in conflitto con le libertà principali, anzi le protegge.

"Software libero" non vuol dire "non-commerciale". Un programma libero deve essere disponibile per uso commerciale, sviluppo commerciale e distribuzione commerciale. Lo sviluppo commerciale di software libero non è più inusuale: questo software commerciale libero è molto importante. Si può ottenere software libero pagandolo o non pagandolo, ma, a prescindere da come lo si è ottenuto, rimane sempre la libertà di copiare e modificare il software, persino di venderne copie.

Se una modifica costituisca o meno un miglioramento è una questione soggettiva. Se le vostre modifiche sono limitate, in sostanza, a variazioni che qualcun altro considera miglioramenti, quella non è libertà.

Tuttavia, sono anche accettabili regole su come pacchettizzare una versione modificata, purché non limitino in modo significativo la vostra libertà di distribuire versioni modificate, o di produrre versioni modificate per uso interno. Quindi è accettabile, ad esempio, che la licenza vi obblighi a cambiare il nome della versione modificata, togliere un logo, o chiarire che la versione modificata è opera vostra. Purché queste richieste non siano talmente pesanti da rendere molto complesso rilasciare le modifiche, sono accettabili; dato che state già apportando modifiche al programma, non faticherete troppo ad apportarne qualcuna in più.

Una questione particolare è quando una licenza richiede di cambiare il nome con cui il programma sarà chiamato da altri programmi. Questo impedisce di rilasciare la versione modificata in modo che possa sostituire l'originale quando chiamata dagli altri programmi. Questo tipo di richiesta è accettabile solo se c'è una funzionalità di "aliasing", cioè una funzionalità che permetta di specificare il nome originario del programma come alias della versione modificata.

Regole del tipo "se rendete disponibile la vostra versione in questo modo, allora dovete renderla disponibile anche in quell'altro modo" possono essere accettabili, alla medesima condizione. Un esempio di regola accettabile di questo tipo è la richiesta che se avete distribuito una versione modificata e un precedente sviluppatore ne chiede una copia, dovete inviargliela. (Notate che una regola di questo tipo vi lascia sempre liberi di scegliere se distribuire o no la vostra versione). Anche regole che richiedano di distribuire il codice sorgente agli utenti delle versioni che avete pubblicamente distribuito sono accettabili.

Nel progetto GNU, noi usiamo il copyleft per proteggere queste libertà legalmente per tutti. Ma esiste anche software libero senza copyleft. Crediamo che ci siano importanti ragioni per cui

sia meglio usare il copyleft, ma se un programma è software libero senza copyleft è comunque accettabile. (Si veda Categorie di software libero per una discussione più ampia delle relazioni tra "software libero", "software con copyleft" e altre categorie).

Qualche volta le leggi sul controllo delle esportazioni e le sanzioni sul commercio possono limitare la libertà di distribuire copie di programmi verso paesi esteri. I programmatori non hanno il potere di eliminare o di aggirare queste restrizioni, ma quello che possono e devono fare è rifiutare di imporle come condizioni d'uso del programma. In tal modo, le restrizioni non influiranno sulle attività e sulle persone al di fuori della giurisdizione degli stati che applicano tali restrizioni. Insomma, le licenze di software libero non possono richiedere il rispetto di qualsiasi controllo sulle esportazioni come condizione su una qualsiasi delle libertà essenziali.

Molte licenze di software libero sono basate sul copyright, e ci sono limiti a quello che si può imporre con il copyright. Se una licenza basata sul copyright rispetta la libertà nei modi descritti sopra, è improbabile, anche se non impossibile, che abbia qualche tipo di problema che non abbiamo previsto. Tuttavia alcune licenze di software libero sono basate sui contratti, e i contratti possono imporre una gamma molto più vasta di restrizioni. Questo significa che ci sono molti modi possibili di rendere inaccettabilmente restrittiva e non libera una licenza del genere.

Non possiamo elencare tutti i modi in cui questo potrebbe accadere. Se una licenza basata su contratto restringe i diritti dell'utente in una maniera inusuale, fuori da quello che le licenze basate sul copyright potrebbero fare, e non citata qui come legittima, dovremmo esaminare il caso, ma probabilmente concluderemmo che la licenza non è libera.

Quando si parla di software libero, è meglio evitare di usare espressioni come "regalato"; o "gratuito", perché esse pongono l'attenzione sul prezzo, e non sulla libertà. Parole comuni quali

"pirateria" implicano opinioni che speriamo non vogliate sostenere. Si veda Termini da evitare per una discussione su queste parole. Abbiamo anche una lista di traduzioni in varie lingue dell'espressione "software libero".

Infine, si noti che criteri come quelli indicati in questa definizione di software libero richiedono un'attenta interpretazione. Per decidere se una determinata licenza software si qualifichi come licenza per il software libero, noi la consideriamo basata su questi criteri al fine di determinare se corrisponde al loro spirito così come alle precise parole. Se una licenza include restrizioni irragionevoli, la rifiutiamo, anche se in questi criteri non anticipiamo il problema. Qualche volta le richieste di una licenza sollevano un problema che richiede un'analisi dettaglia, oltre a discussioni con un avvocato prima di poter decidere se la richiesta sia accettabile. Quando raggiungiamo una conclusione riguardo ad un nuovo problema, spesso aggiorniamo questi criteri per fare in modo che sia più facile capire perché determinate licenze siano adeguate o meno.

Se siete interessati a sapere se una determinata licenza abbia le caratteristiche per essere una licenza di software libero, consultate il nostro elenco delle licenze. Se la licenza che vi interessa non vi è elencata, potete interpellarci inviandoci un'e-mail a licensing@gnu.org.

Se pensate di scrivere una nuova licenza, per favore contattate la FSF scrivendo all'indirizzo sopra indicato. La proliferazione di licenze di software libero comporta un maggiore sforzo di comprensione per gli utenti; potremmo aiutarvi a trovare una licenza di software libero già esistente che soddisfi le vostre necessità.

Se questo non è possibile e avete proprio bisogno di una nuova licenza, col nostro aiuto potrete essere sicuri che la licenza sia davvero una licenza di software libero ed evitare vari problemi pratici.

Al di là del software

I manuali del software devono essere liberi, per le medesime ragioni per cui il software deve essere libero, e poiché i manuali sono parte del software.

Lo stesso ragionamento si applica ad altri tipi di lavori di utilizzo pratico; lavori che raccolgono conoscenze utili, come opere didattiche e di riferimento. Wikipedia è l'esempio più noto.

Ogni tipo di lavoro può essere libero, e la definizione di software libero è stata estesa per diventare una definizione di opera culturale libera che si può applicare ad ogni tipo di lavoro.

Open Source?

Un altro gruppo ha cominciato a usare il termine "open source" per indicare qualcosa di simile (ma non identico) al "software libero" (o "free software"). Preferiamo il termine "software libero" perché, una volta chiarita (nella dizione inglese) la precisazione sul fatto che si parla di libertà e non di prezzo,

fa subito pensare alla libertà, la parola "open" (o "aperto") no.

Storia

La definizione di Software Libero viene occasionalmente sottoposta a revisione per chiarificarla. Qui elenchiamo le modifiche effettuate, con collegamenti che illustrano esattamente cosa è cambiato.

  • Versione 1.111: Chiarimento di 1.77 per notare che sono inaccettabili solo le restrizioni retroattive. I detentori del copyright possono sempre dare permessi aggiuntivi sull'uso dell'opera, rilasciando l'opera in parallelo in altro modo.
  • Versione 1.105: Specificato, nella presentazione della Libertà 1, il punto (già chiarito nella versione 1.80) che questo include che la versione modificabile sia davvero utilizzabile.
  • Versione 1.92: Chiarimento: il codice offuscato non conta come codice sorgente.
  • Versione 1.90: Chiarito che la libertà 3 significa che si ha il diritto di distribuire copie delle proprie versioni modificate o migliorate, non il diritto di partecipare a progetti di sviluppo gestiti da altri.
  • Versione 1.89: La libertà 3 comprende il diritto di rilasciare versioni modificate come software libero.
  • Version 1.80: La libertà 1 deve essere pratica, non teorica; la "tivoization" non vale.
  • Versione 1.77: Tutte le modifiche di licenza retroattive sono inaccettabili, non solo la completa sostituzione.
  • Versione 1.74: Quattro chiarimenti su punti non abbastanza espliciti, o citati in alcune parti ma non in altre:
    • "Miglioramenti" non significa che la licenza può limitare quali tipi di versioni modificate si possono distribuire. La Libertà 3 parla della distribuzione di versioni modificate, non dei soli cambiamenti.
    • Il diritto di incorporare moduli esistenti si riferisce a moduli che hanno una licenza opportuna.
    • E' stata Inserita esplicitamente la conclusione del punto sulla restrizione alle importazioni.
    • Imporre un cambio di licenza comporta la revoca di quella precedente.
  • Versione 1.57: Aggiunta sezione "Al di là del software".
  • Versione 1.46: E' stato chiarito di chi è "lo scopo" citato nella locuzione "libertà di usare il programma per ogni scopo".
  • Versione 1.41: Chiarimento sulle licenze basate sui contratti.
  • Versione 1.40: Spiegazioni sul fatto che una licenza libera deve permettervi di utilizzare altro software libero per creare le vostre modifiche.
  • Versione 1.39: Notare che è accettabile che una licenza richieda di fornire il codice sorgente per le versioni del software utilizzate pubblicamente.
  • Versione 1.31: Notare che è accettabile che una licenza vi richieda di identificarvi in quanto autori di modifiche. Altre piccole correzioni nel testo.
  • Versione 1.23: Risolti potenziali problemi legati alle licenze basate sui contratti.
  • Versione 1.16: Spiegazione di perché è importante la distribuzione dei file in formato binario.
  • Versione 1.11: Notare che una licenza libera può imporvi di spedire all'autore una copia delle versioni modificate che distribuite.

Ci sono dei salti nei numeri di versione mostrati sopra poiché alcune delle modifiche sono totalmente irrilevanti ai fini del significato e intervengono su altre parti della pagina. Per vedere la lista completa delle modifiche si può utilizzare la nostra interfaccia cvsweb.

La copia e la distribuzione di questo articolo è permessa con ogni mezzo senza royality a patto che venga mantenuta questa nota.

Revisioni

03/04/2012 - 17:48
Matsetes