Software Libero in etica ed in pratica O' Linux Day 2008 Software Libero in etica ed in pratica di Giuseppe Aceto socio del felice utente di software libero da quasi un decennio
Sommario Cosa è “Software Libero” Perché usarlo – benefici immediati Perché usarlo – benefici indiretti Da dove viene O' Linux Day 2008
Software Libero Libertà di eseguire il programma, per qualsiasi scopo (libertà 0). Libertà di studiare come funziona il programma e 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, in modo tale che tutta la comunità ne tragga beneficio (libertà 3). L'accesso al codice sorgente ne è un prerequisito. Dalla «Definizione di software libero» (http://www.gnu.org/philosophy/free-sw.it.html) 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. 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. È 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à 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. Queste libertà per essere reali devono essere irrevocabili fin tanto che non si fa qualcosa di sbagliato: se lo sviluppatore del software ha il potere di revocare la licenza 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 permesso d'autore è (detto in due 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. Indipendentemente dal fatto che si siano ottenute copie di software GNU a pagamento o gratuitamente, si ha sempre la libertà di copiare e cambiare il software, e anche di venderne copie. "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. Regole su come fare un pacchetto di una versione modificata sono accettabili, a meno che esse in pratica non blocchino la libertà di distribuire versioni modificate. Regole del tipo «se rendi disponibile il programma in questo modo, lo devi rendere disponibile anche in quell'altro modo» possono essere pur esse accettabili, con le stesse condizioni. (Si noti che tale regola lascia ancora aperta la possibilità di distribuire o meno il programma.) È anche accettabile che la licenza richieda che, se avete distribuito una versione modificata e un precedente sviluppatore ne richiede una copia, dobbiate inviargliene una. O' Linux Day 2008
General Public License possibilità di modificare il software, di copiarlo e ridistribuirlo con o senza modifiche, sia gratuitamente sia a pagamento; disponibile il codice sorgente a ogni acquirente, incluse tutte le modifiche eventualmente effettuate (questa caratteristica è detta copyleft); quando l'utente crea delle modifiche private al software ma non lo distribuisce: in questo caso non è tenuto a rendere pubbliche le modifiche; se qualcuno distribuisce un software (in particolare, versioni modificate) senza rendere disponibile il codice sorgente o violando in altro modo la licenza, può essere denunciato dall'autore originale secondo le stesse leggi sul copyright; Il testo della GNU GPL è disponibile per chiunque riceva una copia di un software coperto da questa licenza. I licenziatari (da qui in poi indicati come "utenti") che accettano le sue condizioni hanno la possibilità di modificare il software, di copiarlo e ridistribuirlo con o senza modifiche, sia gratuitamente sia a pagamento. Quest'ultimo punto distingue la GNU GPL dalle licenze che proibiscono la ridistribuzione commerciale. Se l'utente distribuisce copie del software, deve rendere disponibile il codice sorgente a ogni acquirente, incluse tutte le modifiche eventualmente effettuate (questa caratteristica è detta copyleft). Nella pratica, i programmi sotto GNU GPL vengono spesso distribuiti allegando il loro codice sorgente, anche se la licenza non lo richiede. Ci sono casi in cui viene distribuito solo il codice sorgente, lasciando all'utente il compito di compilarlo. L'utente è tenuto a rendere disponibile il codice sorgente solo alle persone che hanno ricevuto da lui la copia del programma o, in alternativa, accompagnare il software con una offerta scritta di rendere disponibile il sorgente su richiesta e per il solo costo della copia. Questo significa, ad esempio, che è possibile creare versioni private di un software sotto GNU GPL, a patto che tale versione non venga distribuita a qualcun altro. Questo accade quando l'utente crea delle modifiche private al software ma non lo distribuisce: in questo caso non è tenuto a rendere pubbliche le modifiche. Dato che il software è protetto da copyright, l'utente non ha altro diritto di modifica o ridistribuzione al di fuori dalle condizioni di copyleft. In ogni caso, l'utente deve accettare i termini della GNU GPL solo se desidera esercitare diritti normalmente non contemplati dalla legge sul copyright, come la ridistribuzione. Al contrario, se qualcuno distribuisce un software (in particolare, versioni modificate) senza rendere disponibile il codice sorgente o violando in altro modo la licenza, può essere denunciato dall'autore originale secondo le stesse leggi sul copyright. È un intelligente cavillo legale, ed è per questo che la GNU GPL è stata descritta come un "copyright hack". La licenza specifica anche che il diritto illimitato di ridistribuzione non è garantito, in quanto potrebbero essere trovate delle debolezze legali (o "bug") all'interno della definizione di copyleft. Detentori del Copyright La Free Software Foundation (FSF) detiene i diritti di copyright per il testo della GNU GPL, ma non detiene i diritti del software rilasciato con questa licenza. A meno che venga emessa una specifica nota di copyright da parte della FSF, l'autore del software detiene i diritti di copyright per il suo lavoro, ed è responsabile di perseguire ogni violazione della licenza riguardante il suo software. In caso di violazione della licenza il detentore del copyright è l'unico che può richiederne il rispetto nei termini di legge ed è l'unico che può chiedere aiuto alla FSF per la protezione di tale software, quest'ultima può intervenire solo se è il detentore del copyright a richiederne il suo aiuto. La FSF, normalmente, mette a disposizione i suoi legali per proteggere il software coperto da una licenza GNU, chiedendo in un primo tempo il rispetto della licenza e solo se tale richiesta non viene accettata si arriva al tribunale. A differenza dei software con essa distribuiti, la GNU GPL non è liberamente modificabile: copiarla e distribuirla è permesso, ma modificarla è vietato. La FSF permette di creare nuove licenze basate sulla GNU GPL, a patto che tali licenze non usino il suo preambolo senza permesso. Dato che, solitamente, la nuova licenza non è compatibile con la GNU GPL, la FSF sconsiglia di creare versioni modificate. O' Linux Day 2008
Generalizziamo: FLOSS Free Libre/Open Source Software: il software libero ha generato una sottocultura ricca di sfaccettature e contributi interessanti, che hanno ampliato il concetto iniziale FLOSS racchiude, oltre al Software Libero, anche il software Open Source In prima approssimazione possiamo considerarli legalmente equivalenti O' Linux Day 2008
Punti di riferimento Free Software Foundation www.fsf.org www.gnu.org Open Source Initiative www.opensource.org O' Linux Day 2008
Punti di riferimento (licenze) Free Software Foundation http://www.gnu.org/philosophy/license -list.html Open Source Initiative http://www.opensource.org/licenses/ca tegory O' Linux Day 2008
Perché usarlo – benefici immediati NON HA COSTI DI LICENZA Libera dalla schiavitù imposta dal venditore Caratteristiche fortemente favorite: Affidabilità Potenza Sicurezza Facilità d'uso O' Linux Day 2008
Perché usarlo – benefici immediati NON HA COSTI DI LICENZA E' legale vendere software libero, ma non si può limitarne la ri-vendita da chi lo riceve Spesso vengono venduti servizi a valore aggiunto: assistenza documentazione stampata integrazione con software proprietario “problematico” O' Linux Day 2008
Perché usarlo – benefici immediati Libera dalla schiavitù imposta dal venditore Obsolescenza programmata Sopravvivenza Modifiche: Correzioni Interoperabilità Adattamento Libero mercato dei programmatori (locali) Documentazione Libero mercato del know-how O' Linux Day 2008
Perché usarlo – benefici immediati Caratteristiche fortemente favorite: Affidabilità Potenza Sicurezza Facilità d'uso O' Linux Day 2008
Perché usarlo – benefici indiretti Incoraggia la cooperazione ed il libero scambio tra utenti, sviluppatori, aziende Crea intere comunità di sviluppatori- utenti La sua evoluzione è totalmente libera (ed ispirata dalle esigenze degli stessi attori) O' Linux Day 2008
Software Libero: le origini Negli anni '50, '60 e '70 era normale che i (pochi) utenti dei calcolatori elettronici godessero delle libertà fondamentali del software libero. Verso gli anni '80 la crescente industria del software iniziò a forzare dei limiti a tali libertà, “inventando” le licenze restrittive tipiche del software proprietario. Nel 1984 Richard M. Stallman (ricercatore al M.I.T.) dà vita al progetto GNU: un sistema operativo completo, e libero. Nasce la Free Software Foundation per proteggere e diffondere le libertà del software. Dalla «Definizione di software libero» (http://www.gnu.org/philosophy/free-sw.it.html) 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. 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. È 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à 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. Queste libertà per essere reali devono essere irrevocabili fin tanto che non si fa qualcosa di sbagliato: se lo sviluppatore del software ha il potere di revocare la licenza 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 permesso d'autore è (detto in due 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. Indipendentemente dal fatto che si siano ottenute copie di software GNU a pagamento o gratuitamente, si ha sempre la libertà di copiare e cambiare il software, e anche di venderne copie. "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. Regole su come fare un pacchetto di una versione modificata sono accettabili, a meno che esse in pratica non blocchino la libertà di distribuire versioni modificate. Regole del tipo «se rendi disponibile il programma in questo modo, lo devi rendere disponibile anche in quell'altro modo» possono essere pur esse accettabili, con le stesse condizioni. (Si noti che tale regola lascia ancora aperta la possibilità di distribuire o meno il programma.) È anche accettabile che la licenza richieda che, se avete distribuito una versione modificata e un precedente sviluppatore ne richiede una copia, dobbiate inviargliene una. O' Linux Day 2008
Software Libero: linux in GNU Nel 1992 Linus Torvalds, studente di informatica di Helsinki, per hobby e per necessità si scrive il pezzo fondamentale di un sistema operativo: il kernel. Lo rende liberamente disponibile mentre ancora lo sta scrivendo: linux, protetto dalla GPL, va a completare il sistema operativo GNU. Dalla «Definizione di software libero» (http://www.gnu.org/philosophy/free-sw.it.html) 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. 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. È 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à 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. Queste libertà per essere reali devono essere irrevocabili fin tanto che non si fa qualcosa di sbagliato: se lo sviluppatore del software ha il potere di revocare la licenza 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 permesso d'autore è (detto in due 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. Indipendentemente dal fatto che si siano ottenute copie di software GNU a pagamento o gratuitamente, si ha sempre la libertà di copiare e cambiare il software, e anche di venderne copie. "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. Regole su come fare un pacchetto di una versione modificata sono accettabili, a meno che esse in pratica non blocchino la libertà di distribuire versioni modificate. Regole del tipo «se rendi disponibile il programma in questo modo, lo devi rendere disponibile anche in quell'altro modo» possono essere pur esse accettabili, con le stesse condizioni. (Si noti che tale regola lascia ancora aperta la possibilità di distribuire o meno il programma.) È anche accettabile che la licenza richieda che, se avete distribuito una versione modificata e un precedente sviluppatore ne richiede una copia, dobbiate inviargliene una. O' Linux Day 2008
Nasce il movimento Open Source La licenza GPL (o LGPL) è ritenuta contagiosa (le modifiche apportate a un codice GPL devono avere la stessa licenza); questo spaventa l'industria del software. Per ammorbidire il concetto, nel 1997 Raymond, Perens, Ockman e altri pensarono di ridefinire l'ideologia del software libero e coniarono il termine “Open Source”. La definizione consente di superare i malintesi legati all'uso della parola “Free” Bruce Perens: Project Leader di DeBian; Eric Raymond: progetto Fetchmail e autore di diversi libri, tra i quali “La cattedrale e il bazaar” , nel quale descrive l'esperienza di questo progetto; Sam Ockman: scrittore e fondatore della Penguin computing O' Linux Day 2008
Cos'è l'Open Source? La filosofia Open Source, descritta da Raymond ne “La Cattedrale e il Bazar”, contrappone due idee di sviluppo del software: quella centralizzata e monolitica (la cattedrale) e quella diffusa (il Bazar). Il codice “aperto” favorisce questo secondo modello, e quindi la filosofia Open Source pone l'accento sul lato “pratico” della libertà, più che su quello “etico” http://www.apogeonline.com/openpress/cathedral O' Linux Day 2008
Free software e Open Source Metodologia di sviluppo (bazar) il software non libero è una soluzione non ottimale O' Linux Day 2008
Free software e Open Source Movimento di carattere sociale il software non libero è un problema sociale e il software libero è la soluzione O' Linux Day 2008
Free Sofware ⊃Open Source Licenze Open, Free e compatibili con GPL Licenze Open, Free e NON compatibili con GPL Licenze Open ma non Free Licenze libere non free sono soprattutto licenze obsolete, non più usate, come la Aladdin per Ghostscript, la Sun Community Public License. La Yast License, la Artistic per Perl, rilasciato con doppia licenza (AL/GPL). O' Linux Day 2008
Perché lo fanno Programmatori: lavorano ad un progetto dipendente da software libero vogliono usare quel particolare software per il piacere di diffondere, far apprezzare e far usare la propria opera (economia del dono) Aziende: non devono partire da zero sfruttano serbatoio di conoscenze, esperienze, testing, riscontro degli utenti O' Linux Day 2008
Conlusioni Sia che il software libero venga scritto da appassionati, catturati dalla sua valenza etica, sia che venga realizzato da professionisti che capitalizzano la propria notorietà e la stima dei propri pari sia che venga scritto dietro pagamento di compenso, per fini commerciali, le licenze libere garantiscono solo vantaggi per noi utenti. O' Linux Day 2008
Conlusioni Trovate voi motivi validi per non usare software libero (io non ci sono riuscito). O' Linux Day 2008
Ringraziamenti Mario Govoni (materiale presentazione) Gianfilippo Giannini ed il NaLUG tutto (amicizia, passione, esperienza) la Free Software Foundation (che ha iniziato tutto) gli innumerevoli sviluppatori di Software Libero (che lo fanno continuare) voi tutti destinatari di questa presentazione (sperando di avervi incuriositi) O' Linux Day 2008