Una
GPL linking exception
aggiunge una
speciale eccezione
alla
GNU General Public License
(GPL) per creare una nuova licenza modificata.
La clausola aggiunta permette al software sotto GPL di essere incluso o di includere (in linguaggio tecnico,
"linked to"
-
"collegato a"
) altro software avente licenza non compatibile con la GPL.
Questa eccezione serve sostanzialmente per due situazioni particolari:
- Nel caso in cui il software GPL venga utilizzato da altro software (cioe il software GPL e o si comporta come una libreria), non e obbligatorio che quest'altro software o altri moduli di questo software sia anch'essi licenziati con la GPL, ma si e solitamente liberi di scegliere la licenza (anche proprietaria).
- Nel caso in cui il software GPL utilizzi librerie GPL-incompatibili, e possibile distribuire il codice binario senza violare la GPL; senza questa eccezione sarebbe infatti possibile distribuire solo il
codice sorgente
, rendendo quindi impossibile l'inclusione di questo software in una distribuzione binaria. In questo secondo caso solitamente viene indicata con precisione qual e la libreria GPL-incompatibile che e possibile utilizzare, specificando anche con quale licenza viene distribuita.
Molte delle librerie di
software libero
che usano una
GPL linking exception
utilizzano un'eccezione simile, sebbene la formulazione dell'eccezione vari.
GNU Guile
,
[1]
le librerie
run-time
di
GNAT
,
[1]
e
GNU Classpath
[2]
sono esempi di software in cui viene usata una
GPL linking exception
.
Alcuni software che utilizzano la libreria OpenSSL (GPL-incompatibile), come
wget
, includono una eccezione alla GPL
[3]
.
Le
librerie runtime
dei compilatori usano spesso questa licenza, per esempio la libreria libgcc nella
GNU Compiler Collection
utilizza una eccezione molto simile, come anche le librerie del progetto
Free Pascal
.
Nel 2007, la Sun Microsystems ha pubblicato gran parte del codice delle librerie di classe dei progetti
Java Standard Edition
e
Java Platform, Enterprise Edition
sotto la seconda versione della licenza GPL piu la
Classpath linking exception
[4]
, ed utilizzo la stessa licenza come una delle licenza possibili per il loro server per le aziende
GlassFish
[5]
. e per la loro
IDE
NetBeans
per Java .
[6]
Anche la versione 3 della LGPL
[7]
e realizzata come un'eccezione della GPL.
[8]
Il progetto
GNU Classpath
fornisce un esempio di utilizzo della
GPL linking exception
. La libreria GNU Classpath utilizza la seguente licenza:
- Classpath is distributed under the terms of the GNU General Public License with the following clarification and special exception.
- Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
- As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version.
- As such, it can be used to run, create and distribute a large class of applications and applets. When GNU Classpath is used unmodified as the core class library for a virtual machine, compiler for the java languge, or for a program written in the java programming language it does not affect the licensing for distributing those programs directly.
[2]
Il progetto
GNU wget
e un esempio di come la
GPL linking exception
puo essere usata per permettere di collegare librerie non compatibili con la GPL ad un progetto GPL:
- Additional permission under GNU GPL version 3 section 7
- If you modify this program, or any covered work, by linking or combining it with the OpenSSL project's OpenSSL library (or a modified version of that library), containing parts covered by the terms of the OpenSSL or SSLeay licenses, the Free Software Foundation grants you additional permission to convey the resulting work. Corresponding Source for a non-source form of such a combination shall include the source code for the parts of OpenSSL used as well as that of the covered work
[9]
.
La versione 2.1 della
GNU Lesser General Public License
(LGPL) era una licenza a se stante, mentre la versione 3 e basata sulla GPL con la semplice aggiunta di una eccezione, rendendola quindi a tutti gli effetti una
GPL linking exception
.
La formulazione dell'eccezione della LGPL e in generale piu articolata per garantire all'utente del prodotto finale piu liberta. In particolare, e possibile collegare il programma a nuove versioni della libreria sotto LGPL, nonche applicare modifiche private, fare
reverse-engineering
e
debugging
.
- ^
a
b
Stallman, Richard.
Varie Licenze e Commenti su queste
, su
gnu.org
, 17 maggio 2007.
- ^
a
b
Classpath::License
, su
gnu.org
, 23 aprile 2007.
- ^
The OpenSSL licence and The GPL
, su
gnome.org
.
- ^
Open-Source Java Project Overview
, su
sun.com
,
Sun Microsystems
.
URL consultato il 22 maggio 2007
(archiviato dall'
url originale
il 14 maggio 2007)
.
- ^
La Licenza Glassfish
, su
glassfish.dev.java.net
, 25 marzo 2008
(archiviato dall'
url originale
il 17 gennaio 2016)
.
- ^
La licenza di Netbeans
, su
netbeans.org
, 27 marzo 2008
(archiviato dall'
url originale
il 27 settembre 2019)
.
- ^
GNU Lesser General Public License, Version 3
, su
gnu.org
, 29 giugno 2007.
- ^
Guide to the second draft of LGPLv3
, su
gplv3.fsf.org
, 3 aprile 2007.
- ^
Il testo dell'eccezione si trova in fondo al file
README
del
pacchetto di wget
, su
ftp.gnu.org
(archiviato dall'
url originale
il 5 marzo 2009)
.