GPL linking exception

Revision as of 20:52, 17 March 2025 by imported>Lorax (Importing Wikidata short description: "License exception of GNU General Public License")
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be "linked to" the programs that use them, without applying the full terms of the GPL to the using program. Linking is the technical process of connecting code in a library to the using code, to produce a single executable file. It is performed either at compile time or run-time in order to produce functional machine-readable code. The Free Software Foundation states that, without applying the linking exception, a program linked to GPL library code may only be distributed under a GPL-compatible license.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> This has not been explicitly tested in court, but linking violations have resulted in settlement.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> The license of the GNU Classpath project explicitly includes a statement to that effect.

Many free software libraries which are distributed under the GPL use an equivalent exception, although the wording of the exception varies. Notable projects include ERIKA Enterprise,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> GNU Guile,<ref name="license-list">Stallman, Richard. Various Licenses and Comments about Them Template:Webarchive. Free Software Foundation. Published on 2007-05-17. Retrieved on 2007-05-18.</ref> the run-time libraries of GNAT,<ref name="license-list" /> GNU Classpath<ref name="classpathlicense">Classpath::License. Free Software Foundation. 2007-04-23. Retrieved on 2007-05-18.</ref> and the GCC Runtime Library Exception.<ref name="gccruntimelibraryexception">GCC Runtime Library Exception. Free Software Foundation. 2009-03-31. Retrieved on 2011-10-18.</ref>

Compiler runtime libraries also often use this license modification or an equivalent one, e.g. the libgcc library in the GNU Compiler Collection,<ref>Text of the GCC license gcc code repository. 2009-09-24. Retrieved on 2010-01-19.</ref> as well as all libraries of the Free Pascal project.

In 2007, Sun Microsystems released most of the source code to the class libraries for the Java SE and Java EE projects under version 2 of the GPL license plus the Classpath linking exception,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and used the same license as one possible license for their enterprise server GlassFish<ref name="glassfishlicense">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and for their NetBeans Java IDE.<ref name="netbeanslicense">Netbeans license Template:Webarchive. 2008-03-27. Retrieved on 2008-03-27.</ref>

Version 3 of the GNU Lesser General Public License (LGPL)<ref>GNU Lesser General Public License, Version 3. 2007-06-29. Retrieved on 2007-10-19.</ref> is likewise constructed as an exception to the GPL.<ref>Guide to the second draft of LGPLv3. 2007-04-03. Retrieved on 2007-05-10.</ref>

The Classpath exceptionEdit

The GNU Classpath project provides an example of the use of such a GPL linking exception. The GNU Classpath library uses the following license:

Template:Quote

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 language, or for a program written in the Java programming language, it does not affect the licensing for distributing those programs directly.<ref name="classpathlicense"/>

The GNU Lesser General Public LicenseEdit

While version 2.1 of the LGPL was a standalone licence, the current LGPL version 3 is based on a reference to the GPL.

Compared to the GNU Classpath license above, the LGPL formulates more requirements to the linking exception: licensees must allow modification of the portions of the library they use and reverse engineering (of their software and the library) for debugging such modifications. Template:Citation needed

See alsoEdit

Template:Portal

ReferencesEdit

Template:Reflist

External linksEdit

Template:Wikisource inline

Template:GNU