Rendere il programma un pacchetto software GNU significa contribuire esplicitamente al Progetto GNU: questo accade quando sia gli sviluppatori del software che i responsabili del Progetto GNU sono d'accordo. Chi fosse interessato a contribuire con un programma al Progetto GNU può scrivere a <maintainers@gnu.org>.
Alcuni hanno proposto alternative alla GPL che richiedono che le versioni modificate debbano essere sottoposte al giudizio dell'autore del programma originale. Fino a quando l'autore dell'originale continua a occuparsi del programma, la cosa può funzionare bene nella pratica, ma se l'autore cessa (completamente o no) di lavorare al programma per dedicarsi a qualcos'altro oppure non riesce a soddisfare tutte le richieste degli utenti, questo schema di lavoro si rivela fallimentare. Inoltre, a prescindere dai problemi di ordine pratico, questo modello di lavoro non premette agli utenti di aiutarsi vicendevolmente.
Qualche volta il controllo sulle versioni modificate viene proposto come un mezzo per prevenire la confusione che ci sarebbe tra le varie versioni messe a punto dagli utenti. Secondo la nostra esperienza, questa confusione non è un problema dei più gravi. Per esempio, molte versioni di Emacs sono state realizzate al di fuori del Progetto GNU, ma gli utenti sanno distinguerle. La GPL richiede che l'autore di una versione vi apponga il suo nome, per differenziarla dalle altre e per proteggere la reputazione degli altri sviluppatori.
Ma se si rende pubblica la versione modificata del programma in qualche maniera, la GPL obbliga a fare in modo che il codice sorgente del programma modificato sia disponibile agli altri utenti, sotto la GPL.
Insomma, la GPL dà la facoltà di rilasciare pubblicamente un programma modificato, ma solo in certe forme, e non in altre; ma la decisione riguardo a se pubblicare o no il software rimane a chi ha effettuato le modifiche.
Se si distribuiscono commercialmente degli eseguibili non accompagnati dal codice sorgente, la GPL dice che si debba fornire un'offerta scritta di distribuire il codice sorgente in un secondo tempo. Se gli utenti distribuiscono non a scopo di lucro i binari ricevuti, devono accompagnarli con una copia di quest'offerta scritta. Questo significa che gli utenti che non hanno ricevuto i binari direttamente dal primo distributore, possono tuttavia ricevere da esso copie del codice sorgente, in accordo con l'offerta scritta.
La ragione per cui si richiede che l'offerta sia valida per ogni terza parte è che in questo modo quegli utenti che ricevono gli eseguibili indirettamente possono ordinare il codice sorgente dal distributore.
Che tu voglia o no il copyright sulle tue modifiche, devi comunque rilasciare la versione modificata, integrale, sotto GPL.
La GPL è una licenza per il software libero, e quindi permette agli utenti di usare ed in più ridistribuire il software senza che nessuno richieda un prezzo per questo.
Si possono anche distribuire le proprie modifiche al proprio cliente sotto GPL, e accettare di non distribuirle a nessun altro fino al nulla osta del cliente. Anche in questo caso nessun codice verrebbe distribuito sotto NDA, né sotto alcun'altra restrizione aggiuntiva.
La GPL darebbe al cliente il diritto di redistribuire le modifiche, ma nello scenario proposto questi sceglierebbe di non esercitare tale diritto.
L'autore potrebbe essere tentato di includere solo una URL che punti alla licenza, invece della licenza stessa. Ma tra cinque o dieci anni, nessuno può garantire che quell'URL sarà ancora valida. Tra vent'anni, gli indirizzi internet come noi li conosciamo potrebbero addirittura non esistere più.
L'unico modo di essere sicuri che gli utenti che hanno una copia del programma continueranno ad essere in grado di leggere la licenza, nonostante tutti i cambiamenti che potranno riguardare la rete, è includere una copia della licenza nel programma.
Il preambolo e le istruzioni contribuiscono con circa 5000 caratteri al documento, meno di un terzo della lunghezza totale della GPL. Pertanto non determineranno un cambiamento sostanziale nelle dimensioni di un pacchetto software, a meno che il pacchetto non sia particolarmente piccolo. In questo caso, l'autore potrebbe anche usare una semplice licenza che non ponga nessuna restrizione d'uso, piuttosto che la GNU GPL.
Per alcune licenze, la maniera particolare in cui si effettua una tale combinazione può condizionare la compatibilità -- per esempio, le licenze potrebbero consentire il collegamento (linking) di due moduli insieme, ma non consentire la combinazione del loro codice sorgente in un unico modulo.
La GPL permette una tale combinazione, a patto che il programma risultante sia rilasciato sotto la GNU GPL. L'altra licenza è compatibile con la GPL se permette la stessa cosa.
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
allora non c'è bisogno di fare nulla di speciale per usarle. In altre parole, se le librerie di cui l'autore ha bisogno sono distribuite come parte fondamentale di un sistema operativo proprietario, la GPL dice che chi compila il software può collegarlo con queste librerie.
Se poi l'autore volesse consentire al suo programma di essere collegato a librerie che non rientrano nella precedente eccezione, allora l'autore dovrebbe aggiungere una sua particolare eccezione, del tutto al di fuori della GPL. Per esempio, la seguente nota di copyright e di licenza dà il permesso di collegare il programma con il pacchetto chiamato "FOO":
Copyright (C) yyyy <name of copyright holder> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA In addition, as a special exception, <name of copyright holder> gives permission to link the code of this program with the FOO library (or with modified versions of FOO that use the same license as FOO), and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than FOO. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
L'autorizzazione contenuta in questa eccezione può essere concessa solo dai detentori dei diritti d'autore per il programma. Se ad esempio uno scrivesse un programma tutto da solo, quindi facendo l'ipotesi che il datore di lavoro o la scuola di appartenenza non rivendichi i diritti d'autore, allora questo autore sarebbe il detentore del copyright, e potrebbe autorizzare una simile eccezione. Ma se si vogliono usare parti di altri programmi protetti dalla GPL nel proprio codice, non è possibile autorizzare l'eccezione per quelle parti: bisogna ottenere l'assenso dai detentori dei diritti d'autore del programma.
Se altre persone modificano un programma che sia rilasciato con una simile eccezione, queste non sono obbligate ad autorizzare la stessa cosa per il loro lavoro -- possono scegliere di farlo o di non farlo.
L'aggiungere una siffatta eccezione elimina sì ogni problema legale, ma non può nulla contro un problema ben più serio che emerge quando si usano librerie non libere: il programma non sarà del tutto utilizzabile in un ambiente libero. Se un programma per svolgere un certo compito dipende da una libreria non libera, allora non potrà svolgere quel compito nel Mondo Libero. Se senza di questa libreria proprietaria il programma non può neanche girare, non potrà mai essere parte di un sistema operativo libero come ad esempio GNU; il programma resta completamente escluso dal Mondo Libero.
Allora ogni autore dovrebbe riflettere su questa cosa: è possibile trovare un modo di realizzare il programma senza usare questa libreria? È possibile scrivere un'alternativa a questa libreria che sia libera?
Purtroppo se il programma è stato già scritto usando la libreria proprietaria, allora probabilmente è troppo tardi per cambiare idea. È possibile comunque rilasciare il programma così com'è, piuttosto che non rilasciarlo affatto: ma si raccomanda di menzionare nel README del programma che il fatto che il programma dipenda da una libreria proprietaria è un inconveniente, e di suggerire agli utenti l'obiettivo di modificare il programma in modo che svolga gli stessi compiti senza usare la libreria in questione.
Si raccomanda anche di scrivere alla nostra organizzazione (<tasks@gnu.org>) circa questa libreria proprietaria e sui compiti che essa svolge: potremmo incoraggiare gli sviluppatori a realizzare una libreria che faccia le stesse cose e che sia libera.
Ad ogni modo, registrare il copyright nel paese di appartenenza è sempre un'ottima idea: è un'arma in più da usare contro chi indebitamente potesse rivendicare i diritti sull'opera.
C'è poi un caso in cui è possibile che qualcun altro possa rivendicare il copyright sul lavoro, ovvero se si è studenti o lavoratori dipendenti; in questo caso il datore di lavoro o la scuola potrebbero considerare che il lavoro sia stato fatto per loro conto, e che quindi il copyright appartenga a loro. La legittimità di questa rivendicazione dipenderebbe senz'altro dalle circostanze, ossia dalle leggi del paese in questione, dal contratto di lavoro, e dalla particolare mansione svolta all'interno dell'azienda. In caso di dubbi la mossa migliore è sicuramente consultare un avvocato.
Se si ritiene che il datore di lavoro o la scuola di appartenenza potrebbero rivendicare tali diritti, è possibile risolvere il problema mettendo in chiaro le cose: basta ottenere una rinuncia al copyright firmata da un ufficiale autorizzato dell'azienda o della scuola. (Si noti che di solito un professore o un superiore diretto non è autorizzato a firmare simili documenti.)
Se si ritiene che esista la possibilità che la scuola di appartenenza possa rifiutarsi di permettere la pubblicazione come software libero di un proprio programma, la cosa migliore da fare è sollevare la questione alle prime fasi di sviluppo del programma. Infatti, più il programma è vicino ad essere un prodotto funzionante e utile, più l'amministrazione della scuola sarà tentata di sottrarlo all'autore e portare a termine il lavoro senza di lui. Invece, ad uno stadio dello sviluppo ancora iniziale, l'autore ha più possibilità di cavarsela.
Insomma noi raccomandiamo che l'autore affronti la questione quando il programma è ancora mezzo incompiuto, dicendo: "Se l'università sarà d'accordo a pubblicare il programma come software libero, allora poterò a termine l'opera". Non si pensi che questo sia una sorta di bluff: per avere la meglio, si deve avere il coraggio di dire: "Il mio programma sarà libero, o non nascerà affatto".
La licenza contenuta nella copia ottenuta da un utente, posto che questa sia stata allegata dal detentore del copyright e che l'utente abbia ottenuto la copia in modo legittimo, è la licenza che si applica alla suddetta copia.
Ad ogni modo, se lo sviluppatore fa qualcosa che costituirebbe una violazione della GPL se fatto da qualcun altro, allora perderebbe di sicuro qualcosa della sua reputazione morale nella comunità.
Alcuni programmi però copiano proprie parti nell'output, per ragioni tecniche -- per esempio, Bison copia un programma (un parser standard) nel suo file di output. In questi casi, il testo copiato nell'output è coperto dalla stessa licenza che lo copre nel codice sorgente. Allo stesso tempo, la parte dell'output derivata dall'input del programma eredita lo stato di copyright dell'input.
Ma nel caso di Bison, questo programma può essere usato anche per sviluppare programmi non liberi. Questo perché abbiamo deciso di permettere esplicitamente l'uso del parser standard di Bison nel suo output, senza restrizioni. Una tale decisione è stata presa perché esistono altri strumenti simili a Bison che permettevano già di essere usati in programmi non liberi.
Si noti, ad ogni modo, che non esiste una definizione di fair use che sia la stessa in tutte le parti del mondo; ciò che è considerato tale varia da nazione a nazione.
Quindi l'unico caso in cui si ha il diritto di porre restrizioni sull'uso dell'output di un programma è il caso in cui parti sostanziali di esso siano copiate (più o meno) da testo contenuto nel programma. Per esempio, parte dell'output di Bison (vedi sopra) sarebbe coperto dalla GNU GPL, se non avessimo fatto un'eccezione in questo caso specifico.
Si potrebbe far sì che un programma copi a bella posta del testo nel suo output, anche se non ci fosse nessuna ragione tecnica di farlo: ma se quel testo non avesse nessuno scopo pratico, l'utente potrebbe semplicemente cancellarlo dall'output e usare solo la parte rimanente. In questo caso non sarebbe obbligato a sottostare alle condizioni sulla ridistribuzione del testo che il programma copia.
È possibile però concedere dei permessi in più per l'uso del proprio codice: se lo si desidera, si può rilasciare il programma sotto una licenza più lasca della GPL ma con essa compatibile. La lista delle licenze contiene una lista parziale delle licenze compatibili con la GPL.
Tuttavia, quando l'interprete può fornire collegamenti ("bindings") con altri tipi di servizi, tipicamente librerie, il programma interpretato è in effetti linkato ai servizi usati tramite questi collegamenti. Quindi se i servizi sono coperti da GPL, il programma interpretato che li usa deve avere una licenza compatibile con la GPL. La JNI (Java Native Interface) è un esempio di un simile servizio: librerie accedute in tal modo sono collegate dinamicamente col programma Java che le invoca.
Un altro caso simile molto comune avviene quando si forniscono con l'interprete delle librerie che sono anch'esse interpretate. Per esempio, Perl è distribuito con molti moduli in Perl, e un'implementazione Java di solito è accompagnata da molte classi Java. Queste librerie ed i programmi che le chiamano sono sempre collegati dinamicamente.
Una conseguenza è che, se si sceglie di usare in un programma dei moduli Perl, o delle classi Java, coperti da GPL, bisogna distribuire il programma con una licenza compatibile con la GPL, indipendentemente dalla licenza usata nell'interprete Perl o Java su cui girerà il programma combinato Perl o Java.
Non è lecito imporre restrizioni ulteriori all'acquirente nel suo esercizio dei diritti qui garantiti.
L'obbligo di pubblicità impone proprio una tale ulteriore restrizione, e quindi è incompatibile con la GPL.
La licenza BSD rivisitata non contiene questa clausola, il che elimina il problema.
Se il programma invece è collegato dinamicamente ai plug-in, ed essi effettuano reciproche chiamate a funzione e condividono delle strutture dati, allora si considerano i due come parti di un unico programma, e così i plug-in devono essere trattati come estensioni al programma principale. Questo significa che essi devono essere rilasciati sotto la GPL o sotto una licenza ad essa compatibile.
Un caso ambiguo si ha quando il programma collega dinamicamente i plug-in, ma la comunicazione tra i due è limitata all'invocazione della funzione 'principale' del plug-in con alcune opzioni ed all'attesa che questa termini.
Se invece il programma effettua un collegamento dinamico dei plug-in, ed essi (il programma e i plug-in) effettuano delle reciproche chiamate a funzione e/o condividono delle strutture dati, allora li si considera formare un unico programma, e così i plug-in devono essere trattati come estensioni al programma principale. Ciò significa che collegare il plug-in GPL col programma principale sarebbe una violazione della GPL. Comunque, è possibile risolvere questo problema legale aggiungendo un'eccezione alla licenza del plug-in, la quale permetta il collegamento col programma non libero in questione.
Per ulteriori dettagli, si veda la domanda più in alto che comincia con: "Se scrivo programmi che fanno uso di liberie non libere".
Si ha sempre la possibilità legale di non usare il programma.
Linking FOO statically or dynamically with other modules is making a combined work based on FOO. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of FOO give you permission to link FOO with independent modules that communicate with FOO solely through the FOOBAR interface, regardless of the license terms of these independent modules, and to copy and distribute the resulting combined work under terms of your choice, provided that every copy of the combined work is accompanied by a complete copy of the source code of FOO (the version of FOO used to produce the combined work), being distributed under the terms of the GNU General Public License plus this exception. An independent module is a module which is not derived from or based on FOO. Note that people who make modified versions of FOO are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.
Fondere due moduli vuol dire collegare i due componenti insieme in modo da formare un programma più grande. Se uno dei due è coperto da GPL, anche l'insieme dei due programmi deve essere coperto da GPL. Se questo non è possibile o è indesiderato, è possibile non farlo affatto.
In cosa consiste la fusione di due parti per ottenere un programma? Questa è una questione legale, sulla quale l'ultima parola tocca ai giudici. Noi crediamo che un criterio ragionevole dipende sia dal meccanismo di comunicazione (esecuzione con "exec", ridirezionamento dell'output, rpc, chiamate di funzione in uno spazio di indirizzamento condiviso, ecc.) che dalla semantica della comunicazione (che genere di informazione è scambiata).
Se i moduli sono inclusi nello stesso eseguibile, sono decisamente lo stesso programma. Se i due moduli sono concepiti per girare collegati insieme in uno spazio di indirizzamento condiviso, questo vuol dire quasi sicuramente fondere due programmi in uno solo.
Al contrario, ridirezionamento, uso dei socket e degli argomenti della riga di comando sono meccanismi di comunicazione normalmente usati tra due programmi separati. Quindi, quando sono usati per la comunicazione, i moduli sono programmi separati. Ma se la sintassi della comunicazione è abbastanza intima, e se c'è uno scambio di dati con una struttura complessa, anche questo può essere una base per considerare due moduli come parti di un programma più grande.
Chiediamo anche ai collaboratori di ottenere la rinuncia al copyright dai loro impiegati (se ne hanno) così da essere sicuri che questi non rivendichino la proprietà dei loro contributi.
Ovviamente, se tutti i collaboratori rendessero il loro codice di pubblico dominio, non ci sarebbe copyright con il quale far valere la GPL. Così incoraggiamo le persone a darci il copyright dei contributi maggiori, e rendere di pubblico dominio i piccoli cambiamenti.
Se si vuol fare qualcosa di concreto per rafforzare la GPL del proprio programma, probabilmente è una buona idea seguire una strategia simile. Si contatti <licensing@gnu.org> per ottenere maggiori informazioni.
Questi requisiti sono le condizioni per includere il codice protetto dalla GPL in un programma proprietario.
Comunque, per manuali, libri di testo o più in generale qualsiasi tipo di lavoro che ha come scopo la spiegazione di un soggetto, si raccomanda l'uso della GFDL piuttosto che della GPL.
Un sistema che incorporasse un programma coperto da GPL diventa esso stesso un'estensione di quel programma. La GPL afferma che qualsiasi versione estesa di un programma deve essere rilasciata sotto la GPL, sempre che questa sia comunque rilasciata. Questo per due ragioni: per essere sicuri che gli utenti che prelevano quel software ottengano la libertà a cui hanno diritto, e per incoraggiare le persone a redistribuire i miglioramenti che dovessero apportare.
Comunque, in molti casi è possibile distribuire il software coperto da GPL accanto ad un sistema proprietario. Per farlo in modo valido, è necessario assicurarsi che i programmi liberi e i non liberi del sistema comunichino tra di loro ma siano tra di loro indipendenti, insomma che non siano combinati in modo da poter essere effettivamente considerati un solo programma.
La differenza tra questo concetto e quello di "incorporamento" di software GPL è in parte una questione di sostanza e in parte di forma. La parte sostanziale è: se due programmi sono combinati in maniera che essi diventino due parti dello stesso programma, allora non è possibile definirli come due programmi distinti. In questo caso la GPL deve coprire l'intero sistema.
Se questi due programmi rimangono invece ben separati, come possono esserlo il compilatore e il kernel, o un editor ed una shell, allora sono trattabili come due programmi distinti--ma occorre farlo in maniera corretta. La questione è del tipo: come presentare ciò che si sta facendo. Perché preoccuparsene? Per esser sicuri che gli utenti capiscano chiaramente lo status libero del software coperto da GPL all'interno dell'insieme di programmi.
Se qualcuno dovesse distribuire software coperto da GPL dichiarandolo "parte di" un sistema che gli utenti sanno essere parzialmente proprietario, quegli utenti potrebbero non aver certezza dei propri diritti riguardo al software coperto da GPL. Ma se loro sono coscienti di aver ricevuto un programma libero insieme ad un altro programma, come due parti separate, i loro diritti saranno chiari.
Prima, una di carattere generale. Se permettessimo che una compagnia A facesse un file proprietario e la compagnia B distribuisse software coperto da GPL linkato insieme a quel file, gli effetti di questa azione provocherebbero nella GPL un buco grosso come una casa. Darebbe infatti carta bianca a chi volesse impedire l'accesso al sorgente di qualunque modifica o estensione a software coperto da GPL.
Dare a tutti gli utenti l'accesso al codice sorgente è uno dei nostri obiettivi, per cui questa conseguenza è sicuramente qualcosa che noi vogliamo evitare.
Più direttamente, le versioni dei programmi linkati insieme alle librerie Money Guzzler non sarebbero realmente software libero per come intendiamo noi il termine. Essi non arriverebbero nella forma, quella completa dei sorgenti, che permette agli utenti di cambiare e ricompilare il programma.
Se un utente dichiara di volere i sorgenti, occorre essere certi che quell'utente riesca ad ottenerli. Se un utente in particolare può accedere ai sorgenti attraverso l'utilizzo di un servizio FTP anonimo, perfetto, il lavoro è fatto. Ma non tutti gli utenti sono in rete. E costoro hanno gli stessi diritti degli altri di avere i sorgenti: per questo occorre essere pronti a spedire loro i sorgenti, su un disco o su un nastro per posta ordinaria.
Se l'accesso via FTP è abbastanza comodo, forse nessuno richiederà una copia per posta ordinaria, e non sarà mai necessario fornirla. Ma non si può dare per scontato.
Chiaramente, è comunque più semplice allegare già da subito i sorgenti insieme al codice binario.
Si noti, comunque, che non è abbastanza cercare qualche sito che possa avere il codice sorgente oggi, e dire alle persone di cercare lì. Domani quel sito potrebbe decidere di cancellare il codice sorgente, o addirittura lo potrebbe sostituire con la versione più nuova dello stesso programma. A quel punto non si sarebbe più in regola con i requisiti della GPL. Per essere ragionevolmente certi di soddisfare quei requisiti, occorre effettuare un vero e proprio accordo con l'altro sito, e assicurare così che il codice sorgente vi rimarrà presente per quanto tempo si terranno disponibili i binari.
Parte dell'idea stessa del free software è che gli utenti hanno accesso al codice sorgente per *il programma che usano*. Coloro che usano la versione modificata, devono avere dunque i sorgenti di quella versione.
Uno degli obiettivi principali della GPL è costruire il Mondo Libero essendo sicuri che i miglioramenti ad un programma siano essi stessi liberi. Se viene rilasciata una versione potenziata di un programma coperto da GPL, ebbene i codici sorgenti di quella versione migliorata devono essere rilascati sotto GPL.
Un utente che volesse i sorgenti tra un anno potrebbe non essere in grado di ottenere una versione corretta da un altro sito, per quella data. Il sito di distribuzione standard potrebbe avere una nuova versione, e le differenze rilasciate insieme ai binari probabilmente non funzionerebbero più con la nuova versione.
Per questo è necessario fornire sempre i sorgenti completi e non solo le differenze, insieme ai binari.
Per questo motivo se si vuol distribuire i binari attraverso un FTP anonimo, è necessario distribuire insieme a loro anche i sorgenti. Non dovrebbe essere difficile. Una volta trovato un sito che permetta la distribuzione di un programma, sicuramente se ne trova uno che possa ospitare anche i sorgenti.
I sorgenti distribuiti devono corrispondere esattamente ai binari. In particolare occorre essere sicuri che siano della stessa versione del programma, non una versione più vecchia o più nuova.
È possibile rendere disponibili sorgenti e binari da macchine diverse, ammesso che esse siano facilmente raggiungibili nello stesso modo, e ammesso anche che venga riportata, in prossimità dei binari, l'informazione del luogo dove reperire i sorgenti.
I nostri requisiti per coloro che redistribuiscono sono intesi ad assicurarsi che gli utenti possano avere i sorgenti, non a forzare gli utenti a scaricare i sorgenti anche se non lo volessero.
Talvolta però un piccolo e localizzato compromesso potrebbe rivelarsi parte di una buona strategia. Talvolta usare la LGPL per una libreria può portare ad un uso più largo della libreria stessa, e, grazie a miglioramenti più consistenti per essa, in più largo supporto al software libero e così via. Questo potrebbe essere una buona cosa per il software libero, se però accade su larga scala. Ma quanto questo può accadere? Possiamo solo speculare.
Sarebbe bello poter provare la LGPL su ogni libreria per un certo tempo, considerare se questo sia d'aiuto, e cambiare la licenza in GPL se d'aiuto non fosse. Ma questo non è fattibile. Non appena usassimo la LGPL per un particolare libreria, tornare indietro potrebbe essere difficile.
Per questo decidiamo quale licenza usare per ogni libreria, analizzando caso per caso. C'è una lunga spiegazione su come noi decidiamo sulla questione.
Massimizzare il numero di utenti non è il nostro scopo. Piuttosto, quello che cerchiamo di fare è dare al maggior numero di persone possibile le libertà fondamentali. In generale, i progetti basati su software proprietario, ostacolano, piuttosto che aiutare, la causa della libertà.
Occasionalmente possiamo fare delle eccezioni alla licenza per assistere un progetto che stia producendo del software libero sotto una licenza che non sia la GPL. In ogni caso, dobbiamo comunque valutare il motivo per il quale questa eccezione possa realmente fare del bene alla causa del software libero.
Inoltre facciamo talvolta delle modifiche ai termini che definiscono la distribuzione di un pacchetto, quando il cambiamento ci sembra chiaramente il modo giusto per servire la causa del software libero, ma siamo sempre molto cauti su questo, e per farlo deve esserci presentata un'argomentazione veramente convincente.
Se ogni programma non riportasse questo puntatore indiretto, saremmo costretti a discutere il cambiamento per tutta la sua interezza con i numerosi detentori dei diritti d'autore, cosa, questa, virtualmente impossibile. In pratica, la possibilità mantenere nel tempo dei termini di distribuzione uniformi per il software GNU sarebbe nulla.
Supponiamo che un programma riporti la dicitura "Version 2 of the GPL or any later version" e che venga rilasciata una nuova versione della GPL. Se la nuova versione della GPL offrisse dei permessi addizionali, questi permessi sarebbero dunque disponibili immediatamente a tutti gli utenti di quel programma. Ma se la nuova versione della GPL avesse un requisito meno permissivo, questa non restringerà l'uso della versione corrente del programma, in quanto questa può comunque essere ancora utilizzata secondo i dettami della versione 2. Quando un programma dice "Version 2 of the GPL or any later version", agli utenti sarà sempre permesso usarlo o perfino modificarlo, secondo i termini della GPL versione 2 -- perfino dopo che versioni successive della GPL fossero rilasciate.
Ma se un requisito meno permissivo di una nuova versione della GPL non deve essere osservato, come può questo essere in qualche modo utile? Non appena la versione 3 della GPL sarà resa disponibile, gli sviluppatori della maggior parte del programmi rilasciati sotto GPL, rilasceranno le loro successive versioni specificando "Version 3 of the GPL or any later version". Da quel momento gli utenti dovranno seguire i requisiti più rigorosi della GPL versione 3, per le versioni successive del programma.
Comunque gli sviluppatori non saranno obbligati a fare questo; i programmatori potranno continuare a permettere l'uso delle prededenti versioni della GPL, se questo è quello che preferiscono.
La GPL è stata concepita per i programmi; essa contiene molte complesse clausole che sono importanti per i programmi, ma che non hanno alcun peso nei riguardi di un libro o di un manuale. Per contro, la GFDL ha clausole che aiutano gli editori di manuali liberi a trarre profitto da essi.
Noi permettiamo modifiche in testi che trattano argomenti tecnici, ma non ne permettiamo nelle sezioni che affermano le nostre posizioni legali, politiche o etiche. Facciamo questo elencando esplicitamente le sezioni che non possono essere modificate. La GFDL pone delle condizioni per queste "sezioni invarianti"--la GPL non avrebbe permesso una cosa simile.
È importante permettere modifiche nelle parti tecniche, perché gli sviluppatori che fanno dei cambiamenti sui programmi devono apportare le necessarie modifiche alla documentazione perché questa sia aggiornata. Non possiamo richiedere loro di farlo, ma se c'è una speranza che lo facciano, di certo facciamo bene a non intrarciarli.
Un documento legale è in un certo senso come un programma. Tradurlo è come tradurre un programma da un dato linguaggio e da un dato sistema operativo ad un altro: soltanto una persona esperta di entrambi può farlo--e anche in questo caso, sussiste il rischio di introdurre un baco.
Se dovessimo approvare, ufficialmente, una traduzione della GPL, daremmo ad ognuno il permesso di fare qualsiasi cosa la traduzione dica. Se la traduzione è completa e accurata, non c'è problema; ma se c'è un errore nella traduzione, il risultato potrebbe essere un disastro al quale non saremmo in grado di rimediare.
Se c'è un baco in un programma, possiamo rilasciarne una nuova versione, e alla fine la vecchia versione sparirà più o meno del tutto dalla circolazione; ma una volta che abbiamo dato a tutti il permesso di agire secondo una particolare traduzione della GPL, non abbiamo modo di togliere il permesso se più tardi scopriamo che essa conteneva un baco.
Dei volontari a volte si offrono di svolgere il lavoro di traduzione al posto nostro. Se il problema consistesse nel trovare qualcuno per svolgere il lavoro, questa sarebbe la soluzione. Ma il problema reale è costituito dal rischio di un errore, e offrirsi di fare il lavoro non evita il rischio. Non possiamo autorizzare una traduzione scritta da qualcuno che non sia un esperto di questioni legali.
Dunque, al momento, non approviamo le traduzioni della GPL come globalmente valide e vincolanti. Invece, ci muoviamo su due fronti:
Ciò significa che diamo il permesso di scrivere traduzioni della GPL, ma che non le approviamo come legalmente valide e vincolanti.
Una traduzione non approvata non ha forza legale, e ciò deve essere indicato esplicitamente. La forma preferita è la seguente:
Questa traduzione della GPL è informale, e non è stata approvata ufficialmente dalla Free Software Foundation come traduzione valida. Per essere completamente sicuri dei diritti e dei doveri derivanti dalla presente licenza, si consulti la GPL originaria (in inglese).
Tuttavia, una traduzione, anche se non approvata, può fornire suggerimenti su come interpretare la versione inglese della GPL, e ciò è sufficiente per molti utenti.
Le imprese che usano software GNU in una attività commerciale, e chi distribuisce del software scaricabile da un ftp pubblico, devono controllare la vera GPL in inglese per assicurarsi di ciò che quest'ultima permette di fare.
Stiamo valutando l'idea di pubblicare delle traduzioni ufficialmente valide solo per uno stato. In questo modo un eventuale errore si limiterà ad un solo paese, e il danno non sarà eccessivo.
Ci vogliono comunque un'esperienza e uno sforzo considerevoli da parte di un legale capace e vicino alle nostre idee per scrivere una traduzione, quindi al momento non siamo in grado di promettere questo tipo di traduzioni.
Alcune librerie sono rilasciate sotto la GPL, senza eccezioni; se si vogliono usare queste librerie bisogna rilasciare il software con una licenza compatibile con la GPL. Ma si tratta solitamente delle librerie più specifiche, e non dovreste aver dovuto usare nulla di simile su un'altra piattaforma, cosicché probabilmente non ne avrete bisogno per effettuare un semplice "porting".
Naturalmente, se il vostro software non è libero non sarà un contributo per la nostra comunità, e chi ha a cuore la propria libertà si rifiuterà di usarlo. Solo chi è disposto a rinunciare alla propria libertà userà il vostro software, il che significa che in effetti il vostro software funzionerà da incentivo a rinunciare alla propria libertà.
Se sperate un giorno di poter guardare indietro alla vostra carriera e accorgervi che essa ha contribuito allo sviluppo di una società giusta e libera, allora dovete rendere il vostro software libero.
Ciò che viene richiesto dalla GPL è che costui deve essere libero di ridistribuire una copia del software specificamente a voi se vuole farlo. Una volta che il detentore del copyright distribuisce una copia del programma a qualcuno, quel qualcuno potrà a sua volta redistribuirlo a voi o a chiunque altro, se lo riterrà opportuno.
Immaginiamo che l'utente parta dalla versione originale (chiamiamola versione A), aggiunga altro codice (1000 righe, diciamo) e rilasci la versione modificata (che chiamiamo B) sotto la GPL. La GPL dice che chiunque può modificare la versione B e rilasciare il risultato sotto GPL. Quindi l'utente (o chiunque altro) può immediatamente eliminare quelle 1000 righe, ottenendo la versione C che ha il medesimo codice della versione A ma è sotto GPL.
Se, per eliminare questa possibilità, si dice esplicitamente nella licenza che nessuno ha la possibilità di ottenere qualcosa identico alla versione A sotto GPL cancellando quelle righe dalla versione B, ora la licenza effettivamente impedisce di usare completamente la versione B in tutti i modi consentiti dalla GPL. In altre parole, la licenza di fatto non consente all'utente di rilasciare una versione modificata (quale la B) sotto GPL.
Per informazioni e domande sulla FSF e GNU rivolgersi, possibilmente in inglese, a gnu@gnu.org. Altri modi per contattare la FSF.
Commenti su queste pagine web a webmasters@gnu.org, altre domande a gnu@gnu.org.
Copyright (C) 2001 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
La copia letterale e la distribuzione di questo articolo nella sua integrità sono permesse con qualsiasi mezzo, a condizione che questa nota sia riprodotta.
Aggiornato: $Date: 2005/05/05 19:37:12 $ $Author: novalis $