A cura del dott. Marco Bertani
Ultimo aggiornamento: 31 maggio 2004
L’espressione open source software, letteralmente “software a sorgente aperto” con riferimento al requisito fondamentale della libera disponibilità del codice sorgente, è stata adottata nel 1998 da alcuni partecipanti al movimento del software libero per cercare di trovare un’alternativa alla denominazione free software che essi ritenevano troppo ambigua e poco utilizzabile in ambito commerciale. Nella lingua inglese, infatti, la parola free assume sia il significato di “libero” sia quello di “gratuito”, perciò alcuni sviluppatori che puntavano a creare progetti commerciali basati sul software libero coniarono l’espressione open source, ponendo quindi l’accento su di un aspetto tecnico e tralasciando questioni etiche come la libertà per gli utenti, e diedero vita alla Open Source Initiative, un’organizzazione no-profit nata allo scopo di favorire la diffusione e la commercializzazione del software open source.
In sostanza le espressioni “open source” e “software libero” riflettono dunque due diversi approcci ad un’unica realtà. Per Stallman ed i sostenitori del free software, infatti, la libertà degli utenti è il punto centrale, mentre la possibilità di accedere al codice sorgente è semplicemente uno strumento attraverso il quale consentire l’effettiva realizzazione delle libertà di studiare il programma, modificarlo e distribuirne versioni modificate.
Diversamente, i fautori dell’open source ritengono che la disponibilità del codice sorgente porti innanzitutto dei vantaggi pratici. Il metodo di sviluppo basato sulla condivisione del sorgente consente infatti di aggregare intorno ad un progetto una comunità di utenti-sviluppatori i quali, potendo studiare e modificare il codice sorgente, forniscono in cambio miglioramenti e correzioni, rendendo i programmi così sviluppati di migliore qualità e più competitivi sul mercato rispetto a soluzioni che adottino metodologie di sviluppo e di distribuzione di tipo closed. Inoltre la disponibilità del sorgente consente agli utenti di un programma di non dipendere da un unico fornitore per la manutenzione e l’aggiornamento del programma stesso, dal momento che vi è la possibilità da parte di chiunque di riprendere e portare avanti lo sviluppo di un programma nel caso in cui il gruppo di sviluppatori originario lo abbia interrotto.
Sebbene software libero e open source rappresentino punti di vista differenti, queste due espressioni contribuiscono a definire all’incirca il medesimo oggetto. La definizione di software open source così come elaborata dalla Open Source Inititive presenta infatti molti punti in comune con quella di software libero data dalla Free Software Foundation, anche se rispetto a quest’ultima risulta più ampia. In particolare la definizione di open source data dalla Open Source Initiative prevede che il contratto di licenza che accompagna il programma rispetti i seguenti requisiti:
– Ridistribuzione libera. La licenza non può limitare nessuna delle parti nella vendita o nella fornitura di software come componente di una distribuzione di software aggregati, contenente programmi provenienti da fonti diverse. La licenza non può richiedere il pagamento di una royalty o di diritti per tale rivendita.
– Codice sorgente. Il programma deve includere il codice sorgente, e deve consentire la distribuzione sia sotto forma di codice sorgente sia in forma compilata. Nei casi in cui un prodotto non venga distribuito con il codice sorgente, deve esserci la possibilità, ben pubblicata, di scaricare il codice sorgente via Internet senza costi aggiuntivi. Il codice sorgente deve essere la forma privilegiata in cui il programmatore può modificare il programma. Codice sorgente deliberatamente nascosto non è ammesso. Forme intermedie, quali l’output di un preprocessore o di un traduttore non sono consentite.
– Opere derivate. La licenza deve permettere l’attuazione di modifiche e di prodotti derivati, consentendo inoltre la loro distribuzione sotto gli stessi termini di licenza del programma originario.
– Integrità del codice sorgente dell’autore. La licenza può imporre limitazioni sulla distribuzione del codice sorgente in forma modificata solamente se la licenza stessa consente la distribuzione di file patch insieme al codice sorgente con lo scopo di modificare il programma durante la fase di compilazione. La licenza deve consentire esplicitamente la distribuzione di software realizzato a partire dal codice sorgente modificato. La licenza può richiedere che i prodotti derivati portino un nome o un numero di versione diverso dal software originale.
– Nessuna discriminazione verso persone o gruppi. La licenza non deve porre discriminazioni verso qualsiasi persona o gruppo di persone.
– Nessuna discriminazione di settori. La licenza non deve porre limitazioni sull’uso del programma in un particolare campo di applicazione. Per esempio non può impedire l’uso del programma per scopi commerciali, oppure che sia usato per la ricerca genetica.
– Distribuzione della licenza. I diritti allegati al programma devono applicarsi a tutti coloro a cui viene ridistribuito il programma, senza necessità di applicare una licenza supplementare per queste parti.
– La licenza non deve essere specifica per un prodotto. I diritti allegati al programma non devono dipendere dal fatto che il programma faccia parte di un distribuzione particolare. Se il programma viene estratto da tale distribuzione e usato o distribuito nei termini della licenza del programma stesso, tutte le parti a cui il programma viene ridistribuito devono avere gli stessi diritti garantiti in occasione della distribuzione originale del software.
– La licenza non deve porre restrizioni ad altro software. La licenza non deve porre limitazioni su altro software che venga distribuito insieme con il software in licenza. Per esempio, la licenza non deve pretendere che tutti gli altri programmi distribuiti sullo stesso supporto debbano essere software open source.
– La licenza deve essere tecnologicamente neutrale. Nessuna disposizione della licenza può essere basata su una qualsiasi particolare tecnologia o tipo d’interfaccia.
Perché un programma possa essere considerato software open source è necessario che la licenza che ne regola i termini di distribuzione soddisfi tutti i requisiti. Come anticipato e come si evince dai punti della Open Source Definition riportati, sia per quanto riguarda l’open source sia per il free software gli elementi fondamentali sono la libertà di eseguire, modificare e distribuire copie del programma.
Riferimenti bibliografici:
Open Source Initiative, http://www.opensource.org
Chris Di Bona, Sam Ockman, Mark Stone, Open sources. Voci dalla rivoluzione Open Source, Milano, Apogeo, 1999, reperibile all’indirizzo:
http://www.faberbox.com/shared/docs/open_sources/
Eben Moglen, Free Software Matters: Free Software or Open Source?, reperibile all’indirizzo:
http://emoglen.law.columbia.edu/publications/lu-07.html
Eric S. Raymond, The Cathedral and the Bazaar, 2000, reperibile all’indirizzo: http://catb.org/~esr/writings/cathedral-bazaar/,
traduzione italiana: http://www.apogeonline.com/openpress/doc/cathedral.html
Donald K. Rosenberg, Open Source: The Unauthorized White Papers, John Wiley & Sons, 2000