La Open Source Definition
"Open Source non significa solo accesso al codice sorgente. I termini di distribuzione di un programma Open Source devono essere
consoni ai criteri seguenti.
Si noti che la Open Source Definition non è propriamente una licenza software. È una specifica di quanto è ammesso
in una licenza software perché vi si possa riferire come a un'Open Source. La Open Source Definition non è intesa per
essere un documento di valore legale. L'inclusione della Open Source Definition nelle licenze software, quale quella proposta per il
Progetto di Documentazione di Linux, sembra suggerirmi la stesura di una versione più rigorosa che sia appropriata per quell'uso.
Ai fini dell'Open Source, devono applicarsi insieme tutti i termini che seguono, in tutti i casi. Per esempio, devono applicarsi alle
versioni derivate di un programma così come al programma originale. Non è sufficiente applicarne alcune e non altre, e
non è sufficiente se i termini non vengono applicati sistematicamente. Dopo aver dovuto affrontare delle interpretazioni particolarmente
semplici della Open Source Definition, sono tentato di aggiungere: sto dicendo a voi!
1.Ridistribuzione libera
La licenza non può impedire ad alcuna parte in causa la vendita o la cessione del software come componente di una distribuzione
di software aggregato che contenga programmi provenienti da sorgenti diverse. La licenza non può richiedere diritti o il pagamento
di altre concessioni per tale vendita.
Questo significa che potete fare tutte le copie che volete del software e venderle o cederle, e non dovete pagare nessuno per questo
privilegio. L'espressione distribuzione di software aggregato che contenga programmi provenienti da sorgenti diverse era intesa
a chiudere una scappatoia nella Licenza Artistica - una licenza piuttosto malfatta, a mio parere - escogitata in origine per il Perl.
Oggi, quasi tutti i programmi che usano la Licenza Artistica sono disponibili anche sotto GPL. Quella clausola non è più
necessaria e sarà probabilmente tolta da una futura versione della Open Source Definition.
2.Codice sorgente
Il programma deve includere il codice sorgente e deve consentire la distribuzione tanto in codice sorgente che in forma compilata.
Laddove una qualunque forma del prodotto non sia distribuita corredata del codice sorgente, devono essere disponibili mezzi ben pubblicizzati
per scaricare il codice sorgente, senza costi addizionali, via Internet.
Il codice sorgente deve essere la forma preferenziale nella quale un programmatore modifichi un programma. Codice deliberatamente offuscato
non è ammesso. Forme intermedie quali l'output di un preprocessore o di un traduttore non sono ammesse.
Il codice sorgente è un preliminare necessario alla riparazione o alla modifica di un programma. L'intento qui è che
il codice sorgente sia distribuito con l'opera iniziale e con tutte le opere derivate.
3.Opere derivate
La licenza deve permettere modifiche e opere derivate e deve consentire la loro distribuzione sotto i medesimi termini della licenza
del software originale. Il software serve a poco se non se ne può fare la manutenzione (riparazione dei bug, porting su nuovi
sistemi, migliorie) e la modifica è indispensabile alla manutenzione. L'intento è qui di permettere modifiche d'ogni sorta.
Deve essere permessa la distribuzione di un'opera modificata sotto gli stessi termini di licenza dell'opera originale. Tuttavia, non
è richiesto che ogni produttore di un'opera derivata debba usare gli stessi termini di licenza, ma solo che possa farlo qualora
lo voglia. Diverse licenze si esprimono diversamente in materia: la licenza BSD vi permette di mantenere private le modifiche, la GPL
no.
Alcuni autori di software ritengono che questa clausola possa consentire a persone prive di scrupoli di modificare il loro software
in maniera che possa causare imbarazzo all'autore originale. Quello che temono è che qualcuno possa deliberatamente provocare
un malfunzionamento del software in modo che l'autore originale appaia un programmatore scadente.
Altri paventano un possibile uso criminale del software tramite l'aggiunta di funzioni-cavallo di Troia o di tecnologie illegali in
alcuni Paesi, come la crittografia. Tutti questi atti, tuttavia, sono coperti dal codice penale.
Un comune fraintendimento a proposito delle licenze è che esse debbano specificare ogni cosa, per esempio questo software
non va usato per compiere delitti. Dovrebbe tuttavia essere chiaro che nessuna licenza ha esistenza valida al di fuori del corpo
del diritto civile e penale. Considerare una licenza come qualcosa separato dal corpo delle leggi applicabili è tanto sciocco
quanto considerare un documento in lingua inglese separato dal vocabolario di quella lingua, un caso in cui nessuna parola avrebbe un
significato definito.
4.Integrità del codice sorgente dell'autore
La licenza può proibire che il codice sorgente venga distribuito in forma modificata solo se la licenza permette la distribuzione
di patch file con il codice sorgente allo scopo di modificare il programma al momento della costruzione.
Alcuni autori temevano che altri potessero distribuire codice sorgente con modifiche che sarebbero state percepite come opera dell'autore
originale e quindi avrebbero potuto gettare ombra su di lui. Questa clausola dà loro un modo di imporre una separazione fra le
modifiche e la loro opera, senza proibire le prime.
C'è chi considera antiestetico che le modifiche debbano venir distribuite in un file patch separato dal codice sorgente,
anche se distribuzioni Linux come Debian e Red Hat usano questa procedura per tutte le modifiche apportate ai programmi che distribuiscono.
Esistono programmi per riversare automaticamente le patch nel sorgente principale, e questi programmi si possono eseguire automaticamente
quando si scompatta un pacchetto di sorgente.
Questa clausola, dunque, dovrebbe causare poca o nessuna difficoltà. Si noti anche che questa clausola dice che, nel caso di
file patch, la modifica avviene quando si fa il build del programma. Questa scappatoia è impiegata nella Licenza Pubblica di
Qt per prescrivere una diversa, anche se meno restrittiva, licenza per i file patch, in contraddizione con la sezione 3 della Open Source
Definition. C'è una proposta per chiudere questa scappatoia nella definizione e mantenere nello stesso tempo Qt entro i confini
dell'Open Source.
La licenza deve permettere esplicitamente la distribuzione di software costruito da codice sorgente modificato. La licenza può
richiedere che le opere derivate vadano sotto nome o numero di versione differenti da quelli del software originale. Questo significa
che Netscape, per esempio, può insistere per poter essa la sola a chiamare una versione del programma Netscape Navigator (tm),
mentre tutte le versioni gratuite del programma debbano chiamarsi Mozilla o in altro modo.
5.Nessuna discriminazione contro persone o gruppi
La licenza non deve discriminare alcuna persona o gruppo di persone.
Una licenza fornita dai Rettori dell'Università della California a Berkeley proibiva l'uso di un programma di progettazione
elettronica da parte delle forze di polizia del Sud Africa.
Apprezzato come merita questo sentimento in tempi di apartheid, va detto che esso non ha più senso oggi. Alcune persone si trovano
ancora con software acquistato sotto quella licenza, e le loro versioni derivate devono portare la stessa restrizione.
Le licenze Open Source non devono contenere tale clausola, indipendentemente dalla nobiltà dell'intento.
6.Nessuna discriminazione di settori
La licenza non deve proibire ad alcuno l'uso del programma in uno specifico campo o per un determinato proposito.
Per esempio, non può impedire che il programma venga usato a scopi commerciali o nella ricerca genetica. Il software dev'essere
impiegabile allo stesso modo in una clinica che pratichi aborti e in un'organizzazione antiabortista. Queste discussioni politiche sono
di pertinenza del Congresso degli Stati Uniti, non delle licenze del software.
Alcuni trovano questa mancanza di discernimento gravemente offensiva!
7.Distribuzione della licenza
I diritti relativi al programma devono applicarsi a tutti coloro ai quali il programma sia ridistribuito, senza necessità di
esecuzione di una licenza aggiuntiva da parte di questi. La licenza dev'essere automatica, senza la richiesta di alcuna firma.
Purtroppo, negli Stati Uniti non ci sono dati validi precedenti giudiziari del potere della licenza senza firma quando questa venga
passata da una seconda a una terza parte. Tuttavia, questo argomento considera la licenza come facente parte della legge sul contratto,
mentre qualcuno obietta che dovrebbe essere considerata come legge di copyright, campo in cui si danno più precedenti per quel
tipo di licenza.
Un buon precedente ci sarà senz'altro nei prossimi anni, data la popolarità del questa licenza e il boom dell'Open Source.
8.La licenza non dev'essere specifica a un prodotto
I diritti relativi a un programma non devono dipendere dall'essere il programma parte di una particolare distribuzione software. Se
il programma è estratto da quella distribuzione e usato o distribuito entro i termini della licenza del programma stesso, tutte
le parti a cui il programma sia ridistribuito dovrebbero avere gli stessi diritti che vengono garantiti in unione alla distribuzione
software originale.
Questo significa che non si può impedire a un prodotto identificato come Open Source di essere gratuito solo se lo si usa con
una marca particolare di distribuzione Linux, ecc. Deve rimanere gratuito se anche lo si separa dalla distribuzione software da cui
proviene.
9.La licenza non deve contaminare altro software
La licenza non deve porre restrizioni ad altro software che sia distribuito insieme a quello licenziato. Per esempio, la licenza non
deve pretendere che tutti gli altri programmi distribuiti sullo stesso media siano software Open Source.
Una versione di GhostScript (programma di rendering PostScript) richiede che i media sui quali viene distribuito contengano solo programmi
software gratuiti. Questo non è consentito dalla licenza Open Source. Per fortuna, l'autore di GhostScript distribuisce un'altra
versione del programma (un po' più vecchia) sotto una licenza Open Source genuina.
Si noti che c'è differenza fra derivazione e aggregazione. Derivazione è quando un programma incorpora di fatto in sé
parti di un altro programma. Aggregazione è quando due programmi vengono inclusi sullo stesso CD-ROM. Questa sezione della Open
Source Definition riguarda l'aggregazione, non la derivazione. La sezione 4 riguarda la derivazione.
10.Licenze esemplari
Le licenze GNU GPL, BSD, X Consortium e Artistica sono esempi di licenze da considerarsi conformi alla Open Source Definition. Altrettanto
dicasi della MPL.
Questo sarebbe una fonte di guai nel giorno in cui una di queste licenze si modificasse e non fosse più Open Source: dovremmo
pubblicare immediatamente una revisione della Open Source Definition. Ciò è pertinente per la verità al testo esplicativo,
non alla Open Source Definition in sé."
|