GPL linking exception: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Formika (discussione | contributi)
Nessun oggetto della modifica
Lucabon (discussione | contributi)
Riformulazione della spiegazione
Riga 1:
Una '''GPL linking exception''' aggiunge una ''speciale eccezione'' alla [[GNU General Public License]] (GPL) per creare un nuova licenza modificata.
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.
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 sostanzialmnte 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 rilasciata.
 
Molte delle librerie di software libero che sonousano distribuiteuna sotto''GPL lalinking GPLexception'' utilizzano un'eccezione equivalentesimile, sebbene la formulazione dell'eccezione vari. Programmi noti come [[GNU Guile]],<ref name="license-list">Stallman, Richard. [http://www.gnu.org/philosophy/license-list.html Varie Licenze e Commenti su queste]. Free Software Foundation. Pubblicato il 17-05-[[2007]].</ref> le librerie run-time di [[GNAT]],<ref name="license-list" /> e [[GNU Classpath]]<ref name="classpathlicense">[http://www.gnu.org/software/classpath/license.html Classpath::License]. Free Software Foundation. 23-04-[[2007]]</ref> sono esempi di software in cui viene usata una ''GPL linking exception''. Alcuni software che utilizzano la libreria OpenSSL (GPL-incompatibile) includono una eccezione alla GPL<ref>[http://www.gnome.org/~markmc/openssl-and-the-gpl.html The OpenSSL licence and The GPL]</ref>.
 
Le librerie runtime dei compilatori usano spesso questa licenza, per esempio la libreria libgcc nella [[GNU Compiler Collection]] utilizza una eccezione molto simile,<ref>[http://cvs.savannah.gnu.org/viewcvs/*checkout*/gcc/gcc/gcc/libgcc2.c?rev=1.195&content-type=text/plain Testo della licenza GCC] nei repository del codice Savannah. 25-09-[[2007]]</ref>, 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 2 Platform, Standard Edition|Java Standard Edition]] e [[Java EE|Java Platform, Enterprise Edition]] sotto la seconda versione della licenza GPL più la ''Classpath linking exception''<ref>{{cite web
Riga 27 ⟶ 32:
== 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''.
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).
 
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 [[Reingegnerizzazione|reverse-engineering]] e [[Debugging|debugging]].
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.
 
== Voci correlate ==
* [[GNAT Modified General Public License]]
* [[OpenSSL#Licenza|OpenSSL exception]]
* [[Licenza libera]]