Una GPL linking exception modifica la GNU General Public License (GPL) per creare un nuova licenza modificata. Queste licenze modificate permettono ai progetti software di fornire delle librerie, come software disegnato per essere utilizzato (in linguaggio tecnico, 'linked to' - 'collegato a') ad altro software, per distribuire il codice della libreria stessa sotto condizioni essenzialmente identiche a quelle della GPL senza obbligare gli altri a distribuire codice che utilizza e basta, ma che invece integra, assieme al proprio e in questo modo non si è obbligati a licenziare il nuovo codice con la stessa licenza delle librerie di base.

Molte librerie di software libero che sono distribuite sotto la GPL utilizzano un'eccezione equivalente, sebbene la formulazione dell'eccezione vari. Programmi noti come GNU Guile,[1] le librerie run-time di GNAT,[1] e GNU Classpath[2].

Le librerie runtime dei compilatori usano spesso questa licenza, per esempio la libreria libgcc nella GNU Compiler Collection utilizza una eccezione molto simile,[3] 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[4], ed utilizzò 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] è realizzata come un'eccezione della GPL.[8]

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

Le Differenze con la GNU Lesser General Public License

Le licensenze realizzate utilizzando la GPL con una GPL linking exception che forniscono condizioni simili alle condizioni fissate dalla GNU Lesser General Public License (LGPL).

Una differenza tra i due approcci è che la LGPL limita, anche se in modo minore, le condizioni della licenza che possono essere applicati ad un lavoro incorporando una libreria licenziata sotto LGPL. Nella sezione 6 della licenza, la LGPL dice:

As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

Questa restrizione obbliga ad avere progetti software che integrano una libreria licenziata sotto LGPL che la licenza che abbraccia il codice modificato della licenza fornisca gli stessi permessi. Questo requisito può essere difficile da adempiere, nel caso in qui il codice è distribuito come software collegato staticamente in un dispositivo embedded.

Un'altra differenza tra i due approcci è la differenza di testo che c'è tra i due: le licenze basate sulla GPL più una GPL linking exception prendono il famoso testo della GPL e vi aggiungono una modifica minore mentre la LGPL fornisce una licenza completamente separata. In alcune situazioni, questa differenza può influenzare il numero di controlli legali richiesti per scegliere un approccio rispetto che ad un altro.

Vedi anche

Note

  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. ^ Testo della licenza GCC nei repository del codice Savannah. 25-09-2007
  4. ^ Open-Source Java Project Overview, su sun.com, Sun Microsystems. URL consultato il 22 maggio 2007.
  5. ^ La Licenza Glassfish. 25-03-2008.
  6. ^ La licenza di Netbeans. 27-03-2008.
  7. ^ GNU Lesser General Public License, Version 3. 29-06-2007.
  8. ^ Guide to the second draft of LGPLv3. 03-04-2007