Jump to content

GPL linking exception

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Tohd8BohaithuGh1 (talk | contribs) at 22:02, 9 September 2008 (edited page). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A GPL linking exception modifies the GNU General Public License (GPL) to create a new, modified license. Such modified licenses enable software projects which provide 'library' code, that is software code which is designed to be used by (in technical terms, 'linked to') other software, to distribute the software code of the library itself under terms essentially identical to the GPL without forcing others distributing code which merely uses, but therefore integrates, the code of the software library to apply the terms of the GPL to their own code.

Many free software libraries which are distributed under the GPL use an equivalent exception, although the wording of the exception varies. Notable projects include GNU Guile,[1] the run-time libraries of GNAT,[1] and GNU Classpath[2].

Compiler runtime libraries also often use this license, e.g. the libgcc library in the GNU Compiler Collection uses a very similar linking exception,[3] as well as all libraries of the Free Pascal project.

In 2007, Sun Microsystems released most of the code to the class libraries for the Java Standard Edition and Java Platform, Enterprise Edition projects under version 2 of the GPL license plus the Classpath linking exception[4], and used the same license as one possible license for their enterprise server GlassFish[5]. and for their NetBeans Java IDE.[6][clarification needed]

Version 3 of the LGPL[7] is likewise constructed as exception to the GPL.[8]

The classpath exception

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

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 language, or for a program written in the java programming language it does not affect the licensing for distributing those programs directly.[2]

The differences with the GNU Lesser General Public License

Licenses using the GPL combined with a GPL linking exception provide terms which are similar to the terms of the GNU Lesser General Public License (LGPL).

One difference between the two approaches is that the LGPL restricts, if only in a minor way, the terms of the license which can be applied to a work incorporating an LGPL licensed library. In section 6 of the license, the LGPL states:

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.

This restriction requires software projects which integrate a code library licensed under the LGPL to ensure that the license covering the combined work provides such permissions. Such a requirement can be difficult to meet, for example, in the case where code is distributed as statically linked software in an embedded device.

A second difference between the two approaches involves the amount of text involved in the two: licenses based on the GPL plus a GPL linking exception take the well known text of the GPL and add a minor modification to it whereas the LGPLv3 adds many more terms and conditions. The LGPL version 2.1 wasn't even based on the GPL but was a completely different license. In certain situations, this difference might impact the amount of legal review required for any group selecting one approach as against another.

See also

References

  1. ^ a b Stallman, Richard. Various Licenses and Comments about Them. Free Software Foundation. Published on 2007-05-17. Retrieved on 2007-05-18.
  2. ^ a b Classpath::License. Free Software Foundation. 2007-04-23. Retrieved on 2007-05-18.
  3. ^ Text of the GCC license Savannah code repository. 2007-09-25. Retrieved on 2008-03-27
  4. ^ "Open-Source Java Project Overview". Sun Microsystems. Retrieved 2007-05-22.
  5. ^ Glassfish license. 2008-03-27. Retrieved on 2008-03-27.
  6. ^ Netbeans license. 2008-03-27. Retrieved on 2008-03-27.
  7. ^ GNU Lesser General Public License, Version 3. 2007-06-29. Retrieved on 2007-10-19.
  8. ^ Guide to the second draft of LGPLv3. 2007-04-03. Retrieved on 2007-05-10.

Works related to GPL linking exception at Wikisource