A GPL linking exception modifies the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
(GPL) in a way that enables software projects which provide
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
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
In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data fi ...
. It is performed either at
compile time
In computer science, compile time (or compile-time) describes the time window during which a computer program is compiled.
The term is used as an adjective to describe concepts related to the context of program compilation, as opposed to concept ...
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. This has not been explicitly tested in court, but linking violations have resulted in settlement. 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
ERIKA Enterprise is a real-time operating system (RTOS) kernel for embedded systems, which is OSEK/VDX certified. It is free and open source software released under a GNU General Public License (GPL). The RTOS also includes RT-Druid, an integr ...
,
GNU Guile
GNU Ubiquitous Intelligent Language for Extensions (GNU Guile) is the preferred extension language system for the GNU Project and features an implementation of the programming language Scheme. Its first version was released in 1993. In additio ...
,
[Stallman, Richard]
Various Licenses and Comments about Them
. Free Software Foundation. Published on 2007-05-17. Retrieved on 2007-05-18. the run-time libraries of
GNAT
A gnat () is any of many species of tiny flying insects in the dipterid suborder Nematocera, especially those in the families Mycetophilidae, Anisopodidae and Sciaridae. They can be both biting and non-biting. Most often they fly in large n ...
,
GNU Classpath[Classpath::License](_blank)
Free Software Foundation. 2007-04-23. Retrieved on 2007-05-18. and the
GCC Runtime Library Exception.
[GCC Runtime Library Exception](_blank)
Free Software Foundation. 2009-03-31. Retrieved on 2011-10-18.
Compiler runtime libraries also often use this license modification or an equivalent one, e.g. the
libgcc
library in the
GNU Compiler Collection
The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free sof ...
, as well as all libraries of the
Free Pascal
Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, witexception clausesthat allow static linking against i ...
project.
In 2007, Sun Microsystems released most of the
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
to the
class libraries for the
Java SE
Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).
The platform uses J ...
and
Java EE projects under version 2 of the GPL license plus the Classpath linking exception, and used the same license as one possible license for their enterprise server
GlassFish
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by Payara, Oracle and Red Hat. The supported ...
and for their
NetBeans
NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
Java
IDE.
[Netbeans license](_blank)
. 2008-03-27. Retrieved on 2008-03-27.
Version 3 of the
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL) is likewise constructed as an exception to the GPL.
Guide to the second draft of LGPLv3
2007-04-03. Retrieved on 2007-05-10.
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:
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.
The GNU Lesser General Public License
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.
See also
*
* Free software licence
* GNAT Modified General Public License
The GNAT Modified General Public License (short: Modified GPL, GMGPL) is a version of the GNU General Public License specifically modified for compiled units and for the generic feature found in the Ada programming language.
The modification i ...
* OpenSSL Exception
* Software using the GPL linking exception (category)
* GPL font exception
The GPL font exception clause (or GPL+FE, for short) is an optional clause that can be added to the GNU General Public License (GNU GPL) permitting digital fonts shared with that license to be embedded within a digital document file without requ ...
References
External links
{{DEFAULTSORT:Gpl Linking Exception
GNU Project
Software licenses