GPL linking exception
# GPL linking exception

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.

## Casi in cui usare l'eccezione

Questa eccezione serve sostanzialmente per due situazioni particolari:

* Nel caso in cui il software GPL venga utilizzato da altro software (cioè il software GPL è o si comporta come una libreria), non è obbligatorio che quest'altro software o altri moduli di questo software sia anch'essi licenziati con la GPL, ma si è solitamente liberi di scegliere la licenza (anche proprietaria).
* Nel caso in cui il software GPL utilizzi librerie GPL-incompatibili, è 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 è la libreria GPL-incompatibile che è 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, le librerie run-time di GNAT, e GNU Classpath 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.

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 più la Classpath linking exception, ed utilizzò la stessa licenza come una delle licenza possibili per il loro server per le aziende GlassFish. e per la loro IDE NetBeans per Java .

Anche la versione 3 della LGPL è realizzata come un'eccezione della GPL.

## La Classpath Exception

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.

## Permessi aggiuntivi a wget

Il progetto GNU wget è un esempio di come la GPL linking exception può 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.

## Le Differenze con la GNU Lesser General Public License

La versione 2.1 della GNU Lesser General Public License (LGPL) era una licenza a sé stante, mentre la versione 3 è 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 è in generale più articolata per garantire all'utente del prodotto finale più libertà. In particolare, è possibile collegare il programma a nuove versioni della libreria sotto LGPL, nonché applicare modifiche private, fare reverse-engineering e debugging.

