Questa traduzione potrebbe non essere aggiornata con le modifiche effettuate dopo il 2019-08-01 alla versione originale inglese.

È disponibile un elenco delle modifiche. Per informazioni su come gestire e inviare traduzioni delle nostre pagine web consultate la Guida alle traduzioni.

Domande poste di frequente sulla GNU GPL 2.0

Questa pagina risponde alle domande ricorrenti sulla Licenza Pubblica Generica GNU (GNU General Public License, GPL), versione 2. Domande e risposte sulla versione attuale della GPL sono su questa pagina. Per ulteriori informazioni sulle altre licenze della Free Software Foundation, si veda la pagina delle licenze.

Dopo aver letto queste domande e risposte, potete misurare la vostra conoscenza delle licenze di software libero col nostro quiz. (in inglese)

Indice

Domande di base sulla GPL, il progetto GNU e la Free Software Foundation

Concetti generici sulla GPL

Utilizzare la GPL nei propri programmi

Distribuzione di programmi rilasciati con licenza GPL

Usare programma coperti da GPL quando si scrivono altri programmi

Combinare un'opera con codice rilasciato sotto licenza GPL

Domande sulle violazioni della GPL


Che significa “GPL”?
“GPL” significa "General Public License" (Licenza Pubblica Generica). La GPL più diffusa è la GNU General Public License, in breve GNU GPL. L'ultimo acronimo può ancora essere abbreviato in "GPL", se dal contesto si capisce che ci si sta riferendo alla GNU GPL.
Scrivere software libero significa usare la GPL?
Assolutamente no -- ci sono molte altre licenze libere: sul sito ce n'è una lista (seppur incompleta). Una qualsiasi licenza che garantisca all'utente alcune ben determinate libertà è una licenza per software libero.
Perché è meglio la GNU GPL piuttosto che altre licenze per il software libero?
Usare la GPL significa che tutte le versioni migliorate che saranno distribuite dovranno essere libere. In questo modo si evita il rischio di trovarsi a competere con una versione modificata del proprio lavoro che sia diventata proprietaria. Tuttavia, in alcune situazioni particolari, può essere preferibile l'uso di una licenza più lasca.
Tutto il software GNU usa la GNU GPL come licenza?
La maggior parte del software GNU usa la GNU GPL, ma ci sono alcuni programmi GNU (e parti di programmi) che usano licenze più lasche, come la Lesser GPL (LGPL, GPL Attenuata). Quando questo accade, è una questione di strategia.
L'uso della GPL per un programma lo rende automaticamente software GNU?
Chiunque può rilasciare un programma sotto la GNU GPL, ma il programma non diventa per questo un pacchetto GNU.

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>.

Cosa bisogna fare quando si scopre una possibile violazione della GPL?
Bisogna segnalarla. Prima di tutto, accertarsi dei fatti quanto meglio possibile. Poi segnalarli all'editore o al detentore del copyright di quel particolare programma coperto da GPL. Se si tratta della Free Software Foundation, bisogna scrivere a <license-violation@gnu.org>. Altrimenti, potrebbe essere chi si preoccupa della manutenzione del programma a detenere il copyright, o essere in grado di dire dove rivolgersi, quindi si può segnalare la cosa al manutentore del programma.
Perché la GPL permette agli utenti di pubblicare le loro versioni modificate di un programma?
Un aspetto cruciale del software libero è che gli utenti sono liberi di cooperare tra loro. È assolutamente essenziale permettere agli utenti che desiderano aiutarsi vicendevolmente di condividere con gli altri le soluzioni ai malfunzionamenti e gli altri miglioramenti apportati al programma.

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.

La GPL richiede che il codice sorgente delle versioni modificate di un programma sia reso pubblico?
La GPL non obbliga a pubblicare una versione modificata. Ognuno è libero di fare modifiche al software e di usarle privatamente, senza mai renderle pubbliche. Questo è valido anche per le organizzazioni (società incluse): un'organizzazione può creare una versione modificata e utilizzarla internamente senza mai pubblicarla al di fuori dell'organizzazione stessa.

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, e solo a certe condizioni; ma la decisione riguardo a se pubblicare o no il software rimane a chi ha effettuato le modifiche.

E' possibile avere sullo stesso computer un programma con licenza GPL e un altro programma, distinto, non libero?
Sì. La clausola di semplice aggregazione (“mere aggregation”) della GPL esplicita questo permesso, ma pensiamo che il principio sarebbe stato comunque valido, anche se non lo avessimo esplicitato.
Se si sa che qualcuno ha una copia di un programma con licenza GPL, è possibile ordinargli di fornirne una copia?
No. La GPL dà il permesso di fare e ridistribuire copie del programma se e quando si desidera farlo. Chi possiede una copia di un programma ha anche il diritto di non ridistribuirlo, se preferisce fare così.
Che significa "written offer valid for any third party"? Vuol dire che chiunque può ottenere i sorgenti di qualsiasi programma GPL?

Se scegliete di fornire il codice sorgente attraverso un'offerta scritta, allora chiunque vi richieda il codice sorgente ha il diritto di riceverlo.

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.

La GPL dice che le versioni modificate, se rese pubbliche, devono essere "concesse in licenza ... ad ogni terza parte." Ma chi sono queste "terze parti"?
La sezione 2 dice che le versioni modificate che si distribuiscono devono essere concesse in licenza GPL ad ogni terza parte. "Ogni terza parte" significa chiunque--ma questo non implica che l'autore della versione modificata faccia materialmente qualcosa per queste persone. Significa soltanto che essi hanno la licenza dall'autore, secondo la GPL, per la versione modificata.
Sono costretto ad applicare il copyright sulle modifiche che apporto ad un programma coperto da GPL?
Non si è costretti ad applicare copyright sulle proprie modifiche, ma in molti paesi questo avviene comunque in modo automatico. Per evitare dunque che le proprie modifiche siano coperte da copyright, è necessario porle esplicitamente nel pubblico dominio.

Che tu voglia o no il copyright sulle tue modifiche, devi comunque rilasciare la versione modificata, integrale, sotto GPL (solo nel caso in cui tu decida di distribuirla).

Se un programma è l'unione di codice di pubblico dominio e di codice coperto da GPL, posso prendere la parte di pubblico dominio e usarla come codice di pubblico dominio?
Si può fare, purché si riesca ad individuare la parte di pubblico dominio e a separarla dal resto. Se il codice è stato classificato come di pubblico dominio dal suo sviluppatore, rimane tale indipendentemente da dove si trovi.
La GPL mi permette di vendere copie del programma a scopo di lucro?
Sì, la GPL permette a chiunque di farlo. Il diritto di vendere copie è parte della definizione di software libero. E, tranne uno specifico caso, non ci sono restrizioni sul prezzo applicabile (lo specifico caso è l'offerta scritta per ottenere il codice sorgente che è obbligatoria nel caso di distribuzioni della sola forma eseguibile).
La GPL mi permette di richiedere un prezzo per scaricare il programma dal mio sito di distribuzione?
Sì. Si può richiedere qualunque prezzo per distribuire una copia del programma. Se si distribuiscono i binari da un sito, bisogna fornire un "accesso equivalente" per scaricare i sorgenti--quindi il pagamento richiesto per scaricare i sorgenti non può essere maggiore di quello per scaricare i binari.
La GPL mi permette di richiedere che tutti quelli che ricevono il software debbano pagarmi una somma di denaro e/o farmelo sapere?
No. Difatti, una pretesa come questa renderebbe il programma non libero. Se gli utenti fossero obbligati a pagare quando ricevono una copia del programma, o se dovessero render nota la cosa a qualcuno in particolare, allora il programma non sarebbe libero. Si veda la definizione di software libero.

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.

È ammissibile che voi chiediate agli altri di pagarvi una somma di denaro per ottenere una copia da voi. Non è invece ammissibile che chiediate agli altri di pagare voi quando ottengono una copia da terze parti.

Se distribuisco software GPL a pagamento, devo anche renderlo disponibile pubblicamente in modo gratuito?
No. Tuttavia, se qualcuno paga per averne una copia, la GPL gli dà la libertà di renderlo pubblico, a pagamento o gratuitamente. Per esempio, qualcuno potrebbe pagarlo e poi metterne una copia su un sito web, rendendolo pubblico.
La GPL mi permette di distribuire una copia soggetta ad una clausola di non diffusione (NDA, nondisclosure agreement)?
No. Secondo la GPL, chiunque riceva una copia modificata ha diritto di redistribuirne copie (modificate o meno). La GPL non dà il diritto di redistribuire l'opera con termini più restrittivi.

Se qualcuno vi chiede di firmare un NDA per ricevere software coperto dalla GPL e il cui copyright è della FSF, informateci immediatamente scrivendo a license-violation@fsf.org.

Se la violazione è riferita a codice coperto da GPL il cui copyright è di qualche soggetto diverso dalla FSF, informate tale soggetto, esattamente come fareste per ogni altro tipo di violazione della GPL.

La GPL mi permette di distribuire una versione beta o modificata soggetta ad una clausola di non diffusione (NDA, nondisclosure agreement)?
No. Secondo la GPL, le versioni modificate devono mantenere tutte le libertà elencate nella GPL. Quindi chiunque riceva una copia modificata ha diritto di redistribuirne copie (modificate o meno). La GPL non dà il diritto di redistribuire l'opera con termini più restrittivi.
La GPL mi permette di sviluppare una versione modificata soggetta ad una clausola di non diffusione (NDA, nondisclosure agreement)?
Sì. Per esempio, si può accettare un contratto per sviluppare delle modifiche e accettare di non distribuire le proprie modifiche fino al nulla osta del cliente. Questo è possibile perché nessun codice coperto da GPL verrebbe in tal modo distribuito sotto NDA.

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, che comunque avrebbe.

Voglio acquistare una buona reputazione professionale. Voglio che la gente venga a conoscenza di cosa ho scritto. Usando la GPL, il mio lavoro mi verrà riconosciuto?
Sicuramente il lavoro verrà riconosciuto: una parte integrante del rilascio di un programma sotto la GPL è l'apposizione di una nota di copyright al programma, copyright che va sotto il nome di chi lo rilascia (se detentore del diritto d'autore). La GPL richiede che tutte le copie del programma siano corredate di un'appropriata nota di copyright.
Perché la GPL richiede che ogni copia del programma sia corredata di una copia della licenza?
Includere una copia della licenza nel programma è di vitale importanza, perché permette a chiunque ottenga una copia del programma di sapere quali sono i suoi diritti.

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.

E se il programma fosse poco più grande della stessa licenza?
Se un singolo programma fosse così corto, si potrebbe anche usare una semplice licenza che non ponga nessuna restrizione d'uso, piuttosto che la GNU GPL.
È possibile omettere, allo scopo di risparmiare spazio, il preambolo della GPL? O l'appendice con le istruzioni su come applicare la GPL ai nuovi programmi?
Il preambolo e le istruzioni sono parte integrante della GNU GPL, e non possono essere omessi: si raccomanda di usare la GPL per intero. Difatti, la GPL è protetta da copyright, e la sua licenza permette esclusivamente la copia letterale dell'intero documento. Si può riutilizzare il testo per produrre un'altra licenza che non potrà essere denominata GNU GPL.

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.

Che significa dire che due licenze sono "compatibili"?
Quando si combinano due programmi (o loro parti sostanziali) per realizzare un'opera di più grandi dimensioni, bisogna avere il permesso di fare un tale uso dei due programmi. Se le licenze dei due software sono tali che sia possibile effettuare questa operazione, si dice che le licenze sono compatibili. Se invece non c'è modo di soddisfare le due licenze contemporaneamente, allora queste sono incompatibili.

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.

Nel caso in cui si desideri semplicemente installare due programmi separati sullo stesso sistema il problema della compatibilità delle licenze non si pone, perché in questo caso i due programmi non vengono combinati.

Che significa dire che una licenza è "compatibile con la GPL"?
Significa che l'altra licenza e la GNU GPL sono compatibili; ovvero, è possibile combinare il codice rilasciato sotto le condizioni dell'altra licenza con il codice protetto dalla GPL per realizzare un programma più grande.

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.

Posso scrivere programmi liberi che fanno uso di librerie non libere?
Se lo fate, il vostro programma non sarà pienamente 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, e di suggerire questo come obiettivo primario per chiunque intenda apportare modifiche sostanziali al programma.

Ci possono anche essere problemi legali se si combinano certe librerie non libere con software libero con licenza GPL. Vedere la domanda su software GPL con librerie incompatibili con la GPL per ulteriori informazioni.

Quali problemi legali sorgono se uso librerie incompatibili con la GPL insieme a software GPL?
Se le librerie usate rientrano nella seguente eccezione contenuta nella GPL:

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: il requisito di distribuire il codice sorgente dell'intero programma non si applica anche a quelle librerie, anche se se distribuisce un eseguibile collegato che le contiene. 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 <nome di chi detiene il copyright>

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

Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of DEF under the XYZ license (or modified versions of such code, with unchanged license). You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code.

Note that people who make modified versions of ABC 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.

Questo testo va inserito in ciascun file a cui si applica l'eccezione.

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.

Se le librerie a cui si desidera collegare il programma non sono libere, leggere anche la sezione riguardante la scrittura di software libero che usa librerie non libere.

Come ottengo i diritti d'autore sul mio programma, allo scopo di rilasciarlo sotto la GPL?
Secondo la Convenzione di Berna, per ogni opera scritta il copyright è automaticamente assegnato dal momento in cui l'opera è redatta in una forma non volatile. Di conseguenza non c'è bisogno di fare nulla di speciale per "ottenere" il copyright su quello che si scrive -- fino a quando almeno non ci sia qualcun altro che rivendichi come suo il lavoro.

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.

Cosa dovrei fare nel caso che la mia scuola avesse intenzione di fare di un mio programma un suo software proprietario?
Oggi succede che molte università cerchino di aumentare le entrate ponendo delle limitazioni sull'uso della conoscenza e delle tecnologie che sviluppano; effettivamente nel far questo si comportano in maniera analoga alle imprese commerciali. (Si veda "The Kept University", Atlantic Monthly, marzo 2000, per una discussione più generale su questo problema e sui suoi effetti).

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".

È possibile ottenere istruzioni passo per passo su come applicare la GPL al mio programma?
Si veda la pagina delle GPL instructions.
Ho sentito dire che qualcuno ha ottenuto una copia di un programma coperto dalla GPL, ma alle condizioni di un'altra licenza. È possibile?
La GNU GPL non dà agli utenti il permesso di annettere altre licenze al programma. Ma il proprietario del copyright di un programma può rilasciarlo sotto diverse licenze contemporaneamente. Una di queste potrebbe essere la GNU GPL.

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.

Vorrei rilasciare un programma che ho scritto sotto la GNU GPL, ma mi piacerebbe anche usare lo stesso codice in programmi non liberi.
Anche se pubblicare un programma non libero è una cosa eticamente poco corretta, non ci sono di certo ostacoli legali se lo si vuol fare. Se si possiede il copyright del codice, lo si può rilasciare sotto varie e non esclusive licenze, in momenti differenti.
Lo sviluppatore di un programma protetto da GPL è da essa vincolato? Lo sviluppatore potrebbe agire in modo da violare la GPL?
Se vogliamo essere precisi, la GPL è una licenza rivolta dallo sviluppatore agli altri utenti, nella quale si garantiscono i diritti di questi nell'usare, distribuire e modificare il programma. Lo sviluppatore non è vincolato da essa, e quindi qualunque cosa egli faccia non può "violare" la GPL.

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à.

Può lo sviluppatore di un programma distribuito sotto la GPL darlo in seguito in licenza ad una terza parte per uso esclusivo?
No, perché gli utenti hanno già ricevuto il diritto di usare il programma sotto la GPL, e questo diritto non può essere ritirato.
Posso usare editor di testo protetti da GPL, come GNU Emacs, per sviluppare programmi non liberi? Posso usare strumenti protetti da GPL per compilarli?
Sì, perché il copyright sugli editor di testo e sugli strumenti di compilazione non si applica anche al codice scritto e compilato con essi. Usarli non pone restrizioni legali alla licenza che si usa per il proprio codice.

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 può fare un uso non commerciale (fair use) del codice sorgente di un programma coperto dalla GPL?
Sì. Fair use è ogni uso che non richieda alcuna autorizzazione particolare. Siccome non c'è bisogno del permesso degli autori del programma, è possibile fare un tale uso del codice, a prescindere da quello che gli autori ne hanno detto--nella licenza o da qualche altra parte, sia che si tratti di una licenza GNU GPL o di un'altra licenza di software libero.

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.

Può il governo statunitense rilasciare un programma con licenza GNU GPL?
Se il programma è sviluppato da impiegati federali degli Stati Uniti d'America come parte del loro lavoro, è di pubblico dominio e quindi non soggetto a diritto d'autore. Dato che la GNU GPL è basata sul diritto d'autore, questo programma non può essere distribuito con licenza GPL, anche se può comunque essere software libero, dato che il software di pubblico dominio è anche libero.

Tuttavia, quando un'agenzia federale statunitense si rivolge a consulenti esterni la situazione è diversa. Il contratto può richiedere che il consulente rilasci il codice sotto licenza GNU GPL, come è successo nel caso di GNU Ada. Oppure il contratto può assegnare il diritto d'autore all'agenzia governativa in questione, che a sua volta può decidere di rilasciare il codice sotto licenza GNU GPL.

Può il governo statunitense rilasciare miglioramenti a un programma distribuito con licenza GPL?
Sì. Se i miglioramenti sono sviluppati da impiegati federali degli Stati Uniti d'America come parte del loro lavoro, sono di pubblico dominio, ma la versione migliorata nel suo complesso rimane coperta da GNU GPL, senza problemi.

Se il governo statunitense si rivolge a consulenti esterni è possibile porre sotto licenza GPL anche gli stessi miglioramenti.

C'è qualche maniera per poter proteggere con la GPL l'output che gli utenti ottengono usando il mio programma? Per esempio, se il mio programma fosse usato per sviluppare progetti hardware, potrei richiedere che questi progetti debbano essere liberi?
In generale ciò è legalmente impossibile; la legge sul copyright non dà all'autore alcun potere sull'uso dell'output che gli utenti ottengono dai loro dati usando il suo programma. Se l'utente usa il programma per inserirvi e far manipolare i suoi propri dati, il copyright sull'output appartiene a lui, e non all'autore del programma. Più in generale, quando un programma traduce il suo input in qualche altra forma, l'output eredita lo stato del copyright dell'input dal quale è stato generato.

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.

In quali casi l'output di un programma GPL è coperto anch'esso dalla GPL?
Solamente quando il programma copia parti di se stesso nel suo output.
Se aggiungo un modulo ad un altro coperto dalla GPL, devo usare la GPL come licenza per il mio modulo?
La GPL dice che l'intero programma risultante dalla combinazione dev'essere rilasciato sotto la GPL. Così il modulo in questione deve essere reso disponibile per l'uso sotto la GPL.

È possibile però concedere dei permessi in più per l'uso del proprio codice: se lo si desidera, si può rilasciare il modulo 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.

Se una libreria è rilasciata sotto la GPL (non la LGPL), significa che qualunque programma che ne faccia uso deve essere disponibile sotto la GPL?

Sì, perché il programma si collega alla libreria e quindi all'intera combinazione si applicano le condizioni della GPL. I moduli software che si collegano alla libreria possono essere sotto varie licenze purché compatibili con la GPL, ma il lavoro nel complesso deve essere considerato sotto licenza GPL. Vedere anche la definizione di compatibilità.

Se l'interprete di un linguaggio di programmazione è rilasciato sotto la GPL, questo significa che tutti i programmi scritti per essere da esso interpretati devono essere disponibili sotto licenze compatibili con la GPL?
Se l'interprete si occupa esclusivamente di interpretare un linguaggio, la risposta è no. Il programma interpretato, dal punto di vista dell'interprete, è solo un insieme di dati; una licenza per il software libero come la GPL, basata sulla legge sul copyright, non può porre restrizioni su quali dati vengono usati con l'interprete. Esso può esser fatto funzionare con un qualsiasi input (ovvero con un qualunque programma da interpretare), a completa discrezione dell'utente, e non ci sono limiti sulle licenze che si concedono per tali dati a chicchessia.

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. Queste librerie sono collegate anche all'interprete. Se l'interprete è collegato staticamente con tali librerie, o è progettato per collegarsi dinamicamente con queste specifiche librerie, allora anch'esso deve essere distribuito con una licenza compatibile con la GPL.

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.

Sto scrivendo un'applicazione per Windows con Microsoft Visual C++ (o Visual Basic) e vorrei rilasciarla sotto la GPL. È permesso dai termini della GPL che il mio programma sia dinamicamente collegato con le librerie di run-time del Visual C++ (o Visual Basic)?
Sì, perché quelle librerie di run-time vengono solitamente distribuite col compilatore che si sta usando. E quindi ricadono nell'eccezione prevista dalla sezione 3 della GPL.

Tuttavia questo non significa che sia una buona idea scrivere il programma in modo che funzioni solo su Windows, perché facendolo si ottiene software libero che è in realtà “intrappolato” (in questo caso, intrappolato da Windows e non da Java, ma l'effetto è lo stesso). (Nota storica: in dicembre 2006 Sun sta lavorando per distribuire la sua piattaforma Java con licenza GNU GPL).

Perché la licenza originale BSD è incompatibile con la GPL?
Perché essa impone un requisito specifico che non è nella GPL: nella fattispecie, tale requisito consiste nell'obbligo della pubblicità del programma. La GPL dice:

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.

Quando un programma e i suoi plugin sono considerati un unico programma combinato?
Dipende da come il programma principale chiama i plugin. Se il programma principale usa fork e exec per chiamarli, e se tra loro c'è una comunicazione profonda che li porta a condividere strutture dati complesse, o a passarsi strutture dati complesse, allora è possibile considerarli come un unico programma combinato. Invece, se un programma principale usa semplicemente fork e exec per chiamare i plugin e non viene stabilita una comunicazione profonda allora i plugin si possono considerare programmi separati.

Se il programma principale è 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 combinato. Se il programma principale è collegato dinamicamente ai plug-in, ma la comunicazione è limitata alla chiamata della funzione "main" del plugin con determinate optioni e all'attesa di una risposta, questo è un caso limite.

Usare memoria condivisa per comunicare con strutture dati complesse è molto simile al link dinamico.

Se un programma rilasciato sotto la GPL fa uso di plug-in, quali sono i requisiti da includere nelle licenze di questi plug-in?
Si veda questa domanda per capire quando i plugin e un programma principale sono da considerare programmi diversi e quando no.

Se il programma e i plugin sono un unico programma combinato, i plug-in devono essere rilasciati sotto la GPL o sotto una licenza ad essa compatibile, e che quando si distribuiscono i plug-in si devono rispettare le condizioni della GPL. Invece un programma principale separato dai plugin non impone alcun requitio su questi ultimi.

Posso usare la GPL per un plug-in destinato ad un programma non libero?
Si veda questa domanda per capire quando i plugin e un programma principale sono da considerare programmi diversi e quando no.

Se formano un unico programma combinato, collegare il plug-in GPL col programma principale non libero 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.

Vedere anche "Posso scrivere programmi liberi che fanno uso di librerie non libere?".

Posso rilasciare un programma non libero che ha come scopo quello di caricare un plug-in coperto da GPL?
Si veda questa domanda per capire quando i plugin e un programma principale sono da considerare programmi diversi e quando no.

Se formano un unico programma combinato, il programma principale deve essere rilasciato sotto la GPL o sotto una licenza ad essa compatibile, e quando si distribuisce il programma principale for l'uso con questo plugin si devono rispettare le condizioni della GPL.

Tuttavia se sono programmi separati allora la licenza del plugin non impone alcun requisito sul programma principale.

Vedere anche "Posso scrivere programmi liberi che fanno uso di librerie non libere?".

Tu hai un programma sotto GPL a cui vorrei collegare del mio codice per costruire un programma proprietario. Il fatto che io sfrutti il tuo programma mi obbliga a usare la GPL per il mio programma?
Sì.
Se è così, c'è qualche speranza che io possa ottenere una licenza del tuo programma sotto Lesser GPL?
Si può chiedere, ma molti programmatori non cambieranno idea e diranno di no. L'idea della GPL è che se si vuole includere del codice GPL in un programma, anche questo programma deve essere software libero. È pensata per spingere le persone a rilasciare il codice in modo da renderlo disponibile a tutta la comunità.

Si ha sempre la possibilità legale di non usare il programma.

Come posso permettere che ad una mia libreria coperta da GPL vengano collegati moduli proprietari solo per mezzo di un'interfaccia controllata?
Basta aggiungere il testo seguente alla licenza riportata in ogni file del programma, alla fine del testo che dice che il file è distribuito sotto la GNU GPL:

Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code.

Note that people who make modified versions of ABC 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.

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.

Ho scritto una applicazione che è collegata ad altro software con licenze diverse. Sono molto confuso sul tipo di licenza che posso usare per il mio programma. Mi potete dire quali licenze posso usare?
Per rispondere a questa domanda, abbiamo bisogno di una lista di tutti i componenti che usa il programma, la licenza di quei componenti e un appunto (poche righe per ogni componente possono bastare) che descriva l'uso che il programma fa di quelle librerie. Ecco due esempi:
  • Per farlo funzionare, il mio programma deve essere collegato alla libreria FOO che è disponibile sotto licenza Lesser GPL.
  • Il mio programma esegue una chiamata di sistema (con una linea di codice che ho scritto io) per far funzionare il programma BAR, che è sotto licenza "GPL ma con il permesso speciale di collegarlo con QUUX".
Qual è la differenza tra "semplice aggregazione" e "fondere due moduli in un programma"?
La "semplice aggregazione" di due programmi consiste nel metterli entrambi sullo stesso CD-ROM o disco fisso. Usiamo questo termine quando vogliamo indicare due programmi separati, che non siano parti di un singolo programma. In questo caso se uno è sotto GPL, non c'è alcuna restrizione per l'altro programma.

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.

Perchè la FSF richiede che i collaboratori ai programmi sotto il suo copyright debbano trasferire il copyright alla FSF? Se io detengo il copyright di un programma GPL, devo fare lo stesso? Se è così, come?
I nostri avvocati ci hanno detto che per essere nella migliore posizione per far valere la GPL in tribunale contro i trasgressori, dobbiamo far rimanere il copyright del programma il più semplice possibile. A questo fine chiediamo a ogni collaboratore di cedere il copyright del suo contributo alla FSF, o di recedere dal copyright e renderlo così di pubblico dominio.

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 fare valere la GPL del proprio programma, probabilmente è una buona idea seguire una strategia simile. Si contatti <licensing@gnu.org> per ottenere maggiori informazioni.

Posso modificare la GPL e ottenere una licenza diversa?
Si possono usare le condizioni della GPL (anche modificate) in un'altra licenza a condizione che si dia un altro nome a quella licenza e non si includa la premessa della GPL, e si modifichino le istruzioni per l'uso alla fine in modo che siano scritte in maniera diversa e non citino GNU, anche se il significato può rimanere simile.

Per usare la nostra premessa in una licenza modificata è necessario scrivere a <licensing@gnu.org> ed ottenere il permesso. Vorremo esaminare tra l'altro le condizioni previste dalla licenza modificata per vedere se incontrano la nostra approvazione.

Anche se non solleveremo obiezioni di tipo legale nei confronti di chi crea una licenza modificata in questo modo, speriamo che questa strada non sia seguita: una licenza del genere sarà quasi sicuramente incompatibile con la GNU GPL e quell'incompatibilità proibirà di combinare proficuamente codice. La proliferazione delle diverse licenze di software libero è un problema in sé.

Se uso un programma che ho ottenuto sotto GNU GPL, sono autorizzato a modificare il codice sorgente in un nuovo programma e quindi a distribuire e vendere il nuovo programma?
Si è autorizzati a vendere copie del programma modificato, ma solo sotto i termini della GNU GPL. Così, per esempio, si deve rendere disponibile il codice sorgente agli utenti e loro devono essere autorizzati a ridistribuirlo e a modificarlo come descritto dalla GPL.

Questi requisiti sono le condizioni per includere il codice protetto dalla GPL in un proprio programma.

Posso usare la GPL per qualcosa che non sia software?
Si può usare la GPL per qualsiasi lavoro, se è chiaro cosa costituisce il "codice sorgente" dell'opera. La GPL lo definisce come "the preferred form of the work for making changes in it" ("la forma preferenziale usata per modificare un'opera").

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.

Come funziona la LGPL nel caso di Java?
Per i dettagli vedere questo articolo. Funziona come previsto e desiderato.
Prendiamo in esame questa situazione: 1. X rilascia la versione 1 di un progetto sotto GPL. 2. Y contribuisce allo sviluppo della versione 2 con cambiamenti sostanziali e nuovo codice basato sulla prima versione. 3. X vuole cambiare la licenza della versione 2 in una licenza non-GPL. X deve chiedere il permesso a Y?
Sì. Y è stato obbligato a rilasciare la sua versione sotto GNU GPL, basandosi sulla prima versione di X. Nessuno può obbligare Y a accettare altre licenze per il suo codice. Quindi, X deve avere il permesso di Y per rilasciare il codice sotto un'altra licenza.
Mi piacerebbe incorporare del software coperto dalla GPL nel mio sistema proprietario. Lo posso fare?
Non è possibile incorporare del software rilasciato sotto licenza GPL in un sistema proprietario. L'obiettivo della licenza GPL è quello di garantire a chiunque la libertà di copiare, redistribuire, capire e modificare un programma. Se fosse possibile incorporare del software GPL all'interno di un sistema non libero, l'azione avrebbe l'effetto di rendere non libero anche quel software.

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.

Vorrei incorporare software coperto da GPL nel mio sistema proprietario. Posso farlo inserendo un “wrapper”, con licenza permissiva compatibile con la GPL (come la licenza di X11) tra la parte coperta da GPL e la parte proprietaria?
No. La licenza di X11 è compatibile con la GPL, quindi si può aggiungere un modulo al programma coperto da GPL e mettere questo modulo sotto la licenza di X11. Ma se si volesse incorporare il tutto in un programma più grande, allora la presenza di una parte protetta da GPL implicherebbe che tutto quanto debba essere protetto con licenza GPL.

Il fatto che il modulo proprietario A comunichi con il modulo C (protetto da GPL) solo attraverso il modulo B (distribuito con la licenza di X11) è irrilevante dal punto di vista legale; importa solo che il modulo C sia compreso nell'insieme.

L'eccezione libstdc++ permette il linking dinamico?
Sì. Scopo di questa eccezione è quello di permettere di compilare software proprietario con gcc.
Vorrei modificare dei programmi coperti da licenza GPL e linkare i medesimi con le librerie di portabilità della Money Guzzler Inc. Non posso distribuire i codici sorgenti di queste librerie, cosicché qualsiasi utente volesse modificare quelle versioni, dovrebbe comprare quelle librerie. Per quale motivo la GPL non permette questa operazione?
Ci sono due ragioni.

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 la licenza di un modulo Q ha un requisito incompatibile con la GPL, ma il requisito si applica solo quando Q è distribuito da solo, non quando Q è incluso in un programma più grande, questa licenza è compatibile con la GPL? Posso combinare o linkare Q con un programma coperto da GPL?
Se un programma P è distribuito con licenza GPL questo significa che ogni sua parte può essere usata secondo le condizioni della GPL. Se si unisce un modulo Q e si rilascia il programma combinato P+Q sotto licenza GPL, ogni parte di P+Q può essere usata secondo le condizioni della GPL. E Q è una parte di P+Q. Quindi distribuire P+Q con licenza GPL significa che Q e ogni parte di Q possono essere utilizzate secondo la GPL. In altre parole: chi ottiene P+Q con licenza GPL può eliminare P e mantenere solo Q sempre con licenza GPL.

Se la licenza del modulo Q permette di consentire a chi riceve il software questa operazione, allora è compatibile con la GPL, altrimenti no.

Se la licenza di Q afferma chiaramente che si devono effettuare alcune operazioni (incompatibili con la GPL) quando si redistribuisce Q per suo conto, allora non permette di distribuire Q sotto licenza GPL. Ne consegue che nemmeno P+Q si può distribuire con licenza GPL. Quindi non si può collegare o combinare P con Q.

Posso rilasciare una versione modificata di un programma GPL in forma solo binaria?
No. La GPL ha come scopo principale quello di garantire che anche tutte le versioni modificate siano software libero, e in particolare che il codice sorgente delle versioni modificate sia disponibile agli utenti.
Ho scaricato solo il formato binario via rete. Se distribuisco copie, devo procurarmi il codice sorgente e distribuire anche quello?
Sì. La regola generale è che se si distribuiscono i binari si deve distribuire anche il corrispondente codice sorgente. Fa eccezione il caso, poco diffuso, in cui si sia ricevuta un'offerta scritta per il codice sorgente.
Voglio distribuire i binari di un programma senza accompagnarli con i codici sorgenti. Posso rendere disponibili i sorgenti via FTP anziché per posta?
Il codice sorgente deve essere fornito per posta su un supporto fisico, se qualcuno lo richiede. Naturalmente la pratica di mettere a disposizione su FTP, oltre che per posta, i codici sorgenti è comunque incoraggiata, ma il solo accesso via FTP ai sorgenti non è sufficiente a soddisfare la sezione 3 della GPL.

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 possono scaricare i sorgenti in questo modo. E costoro hanno gli stessi diritti degli altri di avere i sorgenti: per questo occorre essere pronti a spedire loro i sorgenti 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.

Se distribuite i binari via FTP, dovete distribuire i sorgenti via FTP.

Un mio amico ha ottenuto un programma coperto da GPL in forma binaria, con un'offerta per avere i sorgenti, e me ne ha dato una copia. Posso usare l'offerta per ottenere i sorgenti?
Sì. L'offerta deve essere valida per chiunque abbia una copia dei binari; infatti la GPL impone che il vostro amico vi passi anche una copia dell'offerta insieme a una copia dei binari, proprio perché possiate usarla se volete.
Posso mettere i binari sul mio server internet e i sorgenti su un altro server internet?
La GPL richiede che l'accesso alla copia dei sorgenti sia offerto "dallo stesso posto"; ovvero, accanto al codice binario. In ogni caso, se ci sono degli accordi con un altro sito affinchè venga mantenuta la disponibilità dei codici sorgenti, e si usi poi un link o un altro tipo di rimando, in prossimità dei binari, a dove questi risiedano, in questo caso pensiamo che la clausola "dallo stesso posto" sia soddisfatta.

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 semplicemente 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.

Voglio distribuire una versione estesa di un programma protetto da GPL, in forma binaria. È sufficiente distribuire i codici sorgenti della versione originale?
No, è necessario fornire il codice sorgente corrispondente ai binari. Sorgenti corrispondenti significa i sorgenti dai quali l'utente possa eventualmente ricostruire lo stesso binario della distribuzione.

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.

Voglio distribuire i binari, ma distribuire tutti i sorgenti non è conveniente. Posso rilasciare agli utenti, oltre ai binari, solo i file che descrivono le differenze dalla versione "standard"?
Questa è una buona domanda, ma tale metodo di offrire i sorgenti non è realmente efficace.

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.

Voglio rendere disponibili i binari attraverso un servizio FTP anonimo, ma dare i sorgenti solo a coloro che ne fanno esplicita richiesta.

Se si desidera distribuire i binari tramite FTP anonimo, si deve fornire anche il codice sorgente attraverso una delle possibilità previste dalla sezione 3. Questo non dovrebbe essere difficile. Ad esempio, è possibile fornire un'offerta scritta per i sorgenti se lo si desidera, secondo la sezione 3(b). Ma se si trova un sito disposto a distribuire il programma, sicuramente si può trovare un sito che distribuisca anche i sorgenti.

A prescindere dalla modalità di distribuzione, 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.

Come posso essere sicuro che tutti coloro che scaricano i binari scarichino anche i sorgenti?
Non è necessario assicurarsi di questo. Un volta resi disponibili i sorgenti e i binari in modo che gli utenti possano vedere ciò che è disponibile e prendere quello che vogliono, chi distribuisce il programma è a posto. Scaricare o meno i sorgenti è a quel punto una decisione dell'utente.

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.

Un'azienda sta usando su un sito web una copia modificata di un programma coperto da GPL. Secondo la GPL, l'azienda deve rilasciare il codice modificato?
La GPL permette a chiunque di produrre una versione modificata e di usarla senza mai distribuirla ad altri, e questo caso rientra in questo permesso. Quindi l'azienda non è obbligata a rilasciare i sorgenti modificati.

È essenziale che ci sia la libertà di fare modifiche e usarle in privato senza mai pubblicarle. Tuttavia, mettere il programma su un server in modo che utenti esterni vi si possano interfacciare è una forzatura dell'uso "privato", quindi in quel caso si potrebbe considerare legittimo chiedere che il codice sorgente venga distribuito. Stiamo pensando di prevedere qualcosa del genere nella versione 3 della GPL ma non abbiamo ancora formulato un testo preciso.

Nel frattempo si può usare la Affero GPL per programmi destinati ad essere eseguiti su server di rete.

L'utilizzo internamente ad una singola organizzazione o azienda è considerato “distribuzione”?
No, in quel caso l'organizzazione sta solo facendo copie ad uso interno. Quindi un'azienda o altra organizzazione può sviluppare una versione modificata e installarla sulle sue infrastrutture, senza permettere ai dipendenti di fornire quella versione modificata a persone esterne.

Però nel momento in cui l'organizzazione trasferisce copie ad altre organizzazioni o individui si ha distribuzione. In particolare, conta come distribuzione anche la fornitura di copie che vengono usate da consulenti fuori dall'azienda.

Se qualcuno ruba un CD che contiene una copia di un programma coperto da GPL, la GPL gli dà diritto di redistribuire quella versione?
Se quella versione è stata rilasciata in altro modo, allora il ladro probabilmente ha il diritto di fare copie e redistribuirle con licenza GPL (se è in prigione per avere rubato il CD, dovrà attendere la scarcerazione!).

Se la versione in questione non è mai stata pubblicata ed è considerata segreto industriale da un'azienda, allora pubblicarla può essere, in certe circostanze, violazione di segreto industriale. La GPL non modifica questo. Se l'azienda cercasse di distribuire la propria versione e continuare a segreto industriale questo violerebbe la GPL, ma finché l'azienda distribuisce questa versione la violazione non accade.

Cosa succede se un'azienda distribuisce una copia come segreto industriale?
Se un'azienda distribuisce una copia e sostiene che sia un segreto industriale, l'azienda ha violato la GPL e dovrà cessare la distribuzione. Si tratta di un caso diverso da quello del furto sopra esaminato: nel caso del furto la distribuzione non è intenzionale e quindi l'azienda non ha violato la GPL.
Per quale motivo alcune librerie GNU sono rilasciate sotto la normale licenza GPL invece che sotto la Lesser GPL?
Usare la Lesser GPL per qualsiasi particolare libreria costituisce un passo indietro per il software libero. Significa abbandonare parzialmente il tentativo di difendere la libertà dell'utente, ed alcuni dei requisiti nel condividere di ciò che è stato costruito sopra il software coperto da GPL. In se stessi, sono cambiamenti per il peggio.

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 uns 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.

Il fatto che un certo programma GNU sia rilasciato sotto GPL non ci permette di usarlo nel nostro progetto di sviluppo di software proprietario. Potete fare un'eccezione per noi? Questo potrebbe significare allargare il bacino di utenza per quel programma.
Spiacenti, ma non facciamo questo tipo di eccezioni. Non sarebbe giusto.

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.

Per quale motivo i programmi devono riportare la dicitura: "Version 2 of the GPL or any later version"?
Con il passare del tempo, ad intervalli di anni, noi apportiamo delle modifiche alla GPL -- talvolta per renderla più chiara, altre per permettere certi tipi di uso precedentemente non permessi, altre volte ancora per rendere più rigoroso un determinato requisito. (L'ultimo cambiamento è del 1991.) Usare questo "puntatore indiretto" in tutti i programmi fa sì che sia per noi possibile cambiare i termini della distribuzione sull'intera collezione di software GNU, non appena dovessimo, appunto, aggiornare la GPL.

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à di 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 dei 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.

Perché non usate la GPL per i manuali?
È possibile usare la licenza GPL per i manuali e la documentazione, ma la Licenza Libera GNU per la Documentazione (GFDL) è più adatta allo scopo.

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. Ad esempio, chiunque pubblicasse il libro su carta dovrebbe includere il "codice sorgente" leggibile da una macchina con ogni copia stampata, oppure un'offerta scritta con cui si impegna a inviare su richiesta il "codice sorgente" in un secondo momento.

Per contro, la GFDL ha clausole che aiutano gli editori di manuali liberi a trarre profitto da essi, ad esempio. Regole speciali nella sezione delle Approvazioni rendono possibile usare la GFDL per uno standard ufficiale. Sarebbero sempre possibili versione modificate, ma non si potrebbero indicare come "standard".

Con la GFDL noi permettiamo modifiche in testi che trattano argomenti tecnici. È 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. La libertà di farlo è per noi necessaria.

I nostri manuali comprendono anche sezioni che affermano le nostre posizioni politiche sul software libero. Indichiamo queste sezioni come "invarianti", per indicare che non possono essere modificate o eliminate. La GFDL pone delle condizioni per queste "sezioni invarianti".

Come funziona la GPL nel caso dei font (tipi di carattere)?
Lalicenza dei font è una questione complessa, da esaminare con attenzione. La seguente eccezione di licenza è sperimentale ma approvata per l'uso generico. Opinioni in merito sono benvenute: leggete questo articolo di approfondimento e scrivete a <licensing@gnu.org>.

Per usare l'eccezione, aggiungete questo testo alle note di licenza di ciascun file (per quanto possibile) nel pacchetto, al termine del testo che dice che il file è distribuito con licenza GNU GPL:

As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

Sto scrivendo un sistema di gestione dei siti web (anche noto impropriamente come “CMS”), o altre applicazioni che generano pagine web da modelli. Qual è la licenza più opportuna per tali modelli?

I modelli sono abbastanza secondari da non richiedere copyleft. Di solito imporre il copyleft su opere minori non fa danno, ma i modelli sono un caso speciale, perché vengono combinati con dati forniti dagli utenti dell'applicazione e la combinazione viene distribuita. Quindi consigliamo di usare termini di licenza semplici e permissivi per i modelli.

Alcuni modelli potrebbero usare funzioni JavaScript, che spesso sono non banali e meritevoli di licenza copyleft. Dato che i modelli devono essere combinati con dati dell'utente, è possibile che ai fini di copyright si intenda la combinazione modello+dati+JavaScript come un'unica opera. Bisogna tracciare un confine tra il JavaScript (sotto licenza copyleft) e i dati utente (spesso sotto licenze incompatibili).

Una rappresentazione grafica del concetto

Ecco un'eccezione per il codice JavaScript che fa quanto descritto:

As a special exception to GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL. You may copy and distribute such a system following the terms of the GNU GPL for this code and the LGPL for the libraries. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

È possibile rilasciare con licenza GPL un programma sviluppato utilizzando strumenti non liberi?
La licenza del codice sorgente non è condizionata, di solito, da quali programmi si sono utilizzati per modificare, compilare, studiare o registrare il codice stesso.

Tuttavia, se collegate librerie non libere al codice sorgente, questa è una questione da chiarire. Non vieta di rilasciare il codice sorgente sotto la GPL, ma se le librerie non rientrano nell'eccezione prevista per le "librerie di sistema", dovreste aggiungere una nota esplicita che permette di collegare il vostro programma a tali librerie. La FSF vi può dare consigli in merito.

Esistono traduzioni della GPL?
Sarebbe utile tradurre la GPL in altre lingue, oltre all'inglese. Alcuni hanno persino scritto delle traduzioni e ce le hanno mandate, ma non abbiamo osato approvarle come ufficialmente valide: rappresentano un rischio così grande che non osiamo accettarlo.

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:

  • Indirizzando le persone alle traduzioni non ufficiali. 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.

  • Pubblicando traduzioni valide solo per un singolo paese.

    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.

Se l'interprete di un linguaggio di programmazione ha una licenza che lo rende incompatibile con la GPL, posso usarlo per eseguire dei programmi coperti dalla GPL?
Quando l'interprete si limita ad interpretare un linguaggio, la risposta è sì. Il programma interpretato, per l'interprete, è solo un insieme di dati: la GPL non pone restrizioni sugli strumenti usati per processare il programma.

Tuttavia, quando l'interprete viene esteso per fornire dei "binding" ad altri servizi (spesso, ma non necessariamente, a delle librerie), il programma interpretato è effettivamente collegato ai servizi di cui si avvale tramite questi "binding". Un esempio di questi servizi è la JNI, o Java Native Interface; le librerie usate in questo modo sono collegate dinamicamente con i programmi Java che le chiamano.

Dunque, se questi servizi sono rilasciati sotto una licenza incompatibile con la GPL, la situazione è uguale agli altri tipi di collegamento con una libreria incompatibile con la GPL. Il che implica che:

  1. Se state scrivendo del codice e lo rilasciate sotto la GPL, potete indicare un'esplicita eccezione dando il permesso di collegarlo con questi servizi incompatibili con la GPL.
  2. Se avete scritto e rilasciato un programma sotto la GPL, e lo avete progettato per lavorare specificamente con i suddetti servizi, ciò può essere inteso come un'eccezione implicita che dà il permesso di collegarlo ad esse. Ma se intendete effettivamente dare questo permesso, è meglio che lo scriviate esplicitamente.
  3. Non potete prendere il codice GPL di qualcun altro ed utilizzarlo in questo modo, o aggiungervi la suddetta eccezione. Soltanto i detentori dei diritti d'autore di quel codice possono aggiungere l'eccezione.
Chi ha il potere di far valere la GPL?
Poiché la GPL è una licenza sui diritti d'autore, sono i detentori di tali diritti sul software che hanno il potere di far valere la GPL. Se vi accorgete di una violazione della GPL, dovreste informarne gli sviluppatori del software coinvolto, i quali sono o possono facilmente raggiungere i detentori dei diritti d'autore. Altre informazioni su come trattare le violazioni della GPL.
In un linguaggio orientato agli oggetti come Java, se utilizzo una classe coperta dalla GPL senza modificarla, e ne creo una sottoclasse, in che modo il programma risultante è affetto dalla GPL?
Creare una sottoclasse si configura come lavoro derivato: di conseguenza i termini della GPL si applicano a tutto il programma risultante dalla creazione di una classe figlia della classe coperta da GPL.
Se porto il mio programma su GNU/Linux, devo rilasciarlo come software libero coperto dalla GPL o da qualche altra licenza libera?
In generale, la risposta è no--non è un obbligo legale. Per essere più specifici, la risposta dipende da quali librerie intendete usare e quali sono le rispettive licenze. La maggior parte delle librerie di sistema sono coperte o dalla GNU Lesser GPL, o dalla GPL con un'esplicita eccezione che permette di collegare la libreria ad altri software qualsiasi sia la licenza con cui vengono rilasciati. Queste librerie possono essere usate in programmi non liberi; ma nel caso della Lesser GPL, vi sono alcuni doveri che dovete rispettare.

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.

Ho appena scoperto che un'impresa ha una copia di un programma coperto dalla GPL, e che occorre pagare per averlo. L'impresa non sta violando la GPL non rendendo disponibile il software su Internet?
No. La GPL non richiede a nessuno di usare Internet per la distribuzione. Inoltre, non richiede a nessuno in particolare di ridistribuire il programma. E (a parte un caso speciale), anche se qualcuno decide di non ridistribuire il programma, la GPL non impone a costui di darne una copia ad una specifica persona.

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.

Posso rilasciare un programma sotto una licenza che dica che si possono distribuire versioni modificate del programma sotto la GPL, ma che l'originale non si può distribuire sotto la GPL?
No. Una licenza di questo tipo sarebbe contraddittoria. Vediamo cosa comporterebbe per l'utente.

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.

Viene considerato distribuzione il trasferimento di una copia ad un'azienda controllata a maggioranza?

Questo va deciso in ciascun caso secondo la legge del copyright attiva nell'ordinamento legale in questione. La GPL non si impone sulle leggi locali. Nel caso degli Stati Uniti d'America, ad esempio, la legge non è molto chiara ma sembra non considerare il caso in questione come "distribuzione".

Se in qualche paese questo fosse invece considerato "distribuzione", e la controllata dovesse ricevere il diritto di redistribuire il programma, comunque non ci saranno differenze sostanziali: a prescindere dai diritti, la controllata non distribuirà il programma se l'azienda madre non lo permetterà.

Il programma di installazione può chiedere di accettare la GPL con un clic? Se ottengo software coperto da GPL, devo accettare qualcosa?

Alcuni sistemi di distribuzione del software hanno la possibilità di chiedere di accettare con un clic o qualche altra procedura le condizioni della GPL. Questo non è richiesto ma nemmeno vietato: con o senza questo assenso, le regole dalla GPL rimangono identiche.

Dare il consenso alla GPL non pone alcun obbligo. Non si è obbligati ad accettare nulla per il semplice utilizzo di software che usa la licenza GPL. Gli obblighi arrivano solo nel momento in cui si modifica o distribuisce il software. E se vi dà fastidio la richiesta di consenso, potete modificare il programma e rimuoverla.

Mi piacerebbe distribuire software coperto da GPL insieme ad un programma di installazione. Il programma di installazione deve avere una licenza compatibile con la GPL?

No. Il programma di installazione e i file che installa sono opere separate. Le condizioni della GPL non si applicano al programma di installazione.