GPL linking exception

Da Wikipedia, l'enciclopedia libera.

Una GPL linking exception aggiunge una speciale eccezione alla GNU General Public License (GPL) per creare un 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[modifica | modifica sorgente]

Questa eccezione serve sostanzialmente per due situazioni particolari:

  1. 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).
  2. 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 rilasciata.

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[4], come anche le librerie del progetto Free Pascal.

Nel 2007, la Sun Microsystems ha rilasciato 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[5], ed utilizzò la stessa licenza come una delle licenza possibili per il loro server per le aziende GlassFish[6]. e per la loro IDE NetBeans per Java .[7]

Anche la versione 3 della LGPL[8] è realizzata come un'eccezione della GPL.[9]

La Classpath Exception[modifica | modifica sorgente]

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]

Permessi aggiuntivi a wget[modifica | modifica sorgente]

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[10].


Le Differenze con la GNU Lesser General Public License[modifica | modifica sorgente]

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.

Voci correlate[modifica | modifica sorgente]

Note[modifica | modifica sorgente]

  1. ^ a b Stallman, Richard. Varie Licenze e Commenti su queste. Free Software Foundation. Pubblicato il 17-05-2007.
  2. ^ a b Classpath::License. Free Software Foundation. 23-04-2007
  3. ^ The OpenSSL licence and The GPL
  4. ^ Testo della licenza GCC nei repository del codice Savannah. 25-09-2007
  5. ^ Open-Source Java Project Overview, Sun Microsystems. URL consultato il 22 maggio 2007.
  6. ^ La Licenza Glassfish. 25-03-2008.
  7. ^ La licenza di Netbeans. 27-03-2008.
  8. ^ GNU Lesser General Public License, Version 3. 29-06-2007.
  9. ^ Guide to the second draft of LGPLv3. 03-04-2007
  10. ^ Il testo dell'eccezione si trova in fondo al file README del pacchetto di wget