Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
GNU Lesser General Public License

GNU Lesser General Public License

Overview
The GNU Lesser General Public License (formerly the GNU Library General Public License) or LGPL is a free software license published by the Free Software Foundation
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...

 (FSF). It was designed as a compromise between the strong-copyleft
Copyleft
Copyleft is a play on the word copyright to describe the practice of using copyright law to offer the right to distribute copies and modified versions of a work and requiring that the same rights be preserved in modified versions of the work...

 GNU General Public License or GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 and permissive
Permissive free software licence
A permissive free software licence is a class of free software licence with minimal requirements about how the software can be redistributed. This is in contrast to copyleft licences, which have reciprocity / share-alike requirements. Both sets of free software licences offer the same freedoms in...

 licenses such as the BSD licenses and the MIT License
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

. The GNU Library General Public License (as the LGPL was originally named) was published in 1991, and adopted the version number 2 for parity with GPL version 2. The LGPL was revised in minor ways in the 2.1 point release, published in 1999, when it was renamed the GNU Lesser General Public License to reflect the FSF's position that not all libraries should use it. Version 3 of the LGPL was published in 2007 as a list of additional permissions applied to GPL version 3.
Discussion
Ask a question about 'GNU Lesser General Public License'
Start a new discussion about 'GNU Lesser General Public License'
Answer questions from other users
Full Discussion Forum
 
Unanswered Questions
Encyclopedia
The GNU Lesser General Public License (formerly the GNU Library General Public License) or LGPL is a free software license published by the Free Software Foundation
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...

 (FSF). It was designed as a compromise between the strong-copyleft
Copyleft
Copyleft is a play on the word copyright to describe the practice of using copyright law to offer the right to distribute copies and modified versions of a work and requiring that the same rights be preserved in modified versions of the work...

 GNU General Public License or GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 and permissive
Permissive free software licence
A permissive free software licence is a class of free software licence with minimal requirements about how the software can be redistributed. This is in contrast to copyleft licences, which have reciprocity / share-alike requirements. Both sets of free software licences offer the same freedoms in...

 licenses such as the BSD licenses and the MIT License
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

. The GNU Library General Public License (as the LGPL was originally named) was published in 1991, and adopted the version number 2 for parity with GPL version 2. The LGPL was revised in minor ways in the 2.1 point release, published in 1999, when it was renamed the GNU Lesser General Public License to reflect the FSF's position that not all libraries should use it. Version 3 of the LGPL was published in 2007 as a list of additional permissions applied to GPL version 3.

The LGPL places copyleft
Copyleft
Copyleft is a play on the word copyright to describe the practice of using copyright law to offer the right to distribute copies and modified versions of a work and requiring that the same rights be preserved in modified versions of the work...

 restrictions on the program governed under it but does not apply these restrictions to other software that merely link with the program. There are, however, certain other restrictions on this software.

The LGPL is primarily used for software libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

, although it is also used by some stand-alone applications, most notably Mozilla
Mozilla
Mozilla is a term used in a number of ways in relation to the Mozilla.org project and the Mozilla Foundation, their defunct commercial predecessor Netscape Communications Corporation, and their related application software....

 and OpenOffice.org
OpenOffice.org
OpenOffice.org, commonly known as OOo or OpenOffice, is an open-source application suite whose main components are for word processing, spreadsheets, presentations, graphics, and databases. OpenOffice is available for a number of different computer operating systems, is distributed as free software...

.

Differences from the GPL


The main difference between the GPL and the LGPL is that the latter allows the work to be linked with (in the case of a library, 'used by') a non-(L)GPLed program, regardless of whether it is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 or proprietary software
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

. The non-(L)GPLed program can then be distributed under any terms if it is not a derivative work
Derivative work
In United States copyright law, a derivative work is an expressive creation that includes major, copyright-protected elements of an original, previously created first work .-Definition:...

. If it is a derivative work, then the program's terms must allow for "modification for the customer's own use and reverse engineering
Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...

 for debugging such modifications."
Whether a work that uses an LGPL program is a derivative work or not is a legal issue. A standalone executable that dynamically links to a library, through a .so, .dll
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...

, or similar medium, is generally accepted as not being a derivative work (as defined by the LGPL). It would fall under the definition of a "work that uses the Library". The following is an excerpt of paragraph 5 of the LGPL version 2.1:
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.


Essentially, if it is a "work that uses the library", then it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.

One feature of the LGPL is that one can convert any LGPLed piece of software into a GPLed piece of software (section 3 of the license). This feature is useful for direct reuse of LGPLed code in GPLed libraries and applications, or if one wants to create a version of the code that cannot be used in proprietary software products.

Choosing to license a library under the GPL or the LGPL


The former name of "GNU Library General Public License" gave some people the impression that the FSF endorsed that libraries use the LGPL and that programs use the GPL. In February 1999, Richard Stallman wrote the essay Why you shouldn't use the Lesser GPL for your next library explaining that the LGPL has not been deprecated
Deprecation
In the process of authoring computer software, its standards or documentation, deprecation is a status applied to software features to indicate that they should be avoided, typically because they have been superseded...

, but that one should not necessarily use the LGPL for all libraries:
Which license is best for a given library is a matter of strategy... Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it... When a free library's features are readily available for proprietary software through other alternative libraries... the library cannot give free software any particular advantage, so it is better to use the Lesser GPL for that library.


Indeed, Stallman and the FSF sometimes advocate licenses even less restrictive than the LGPL as a matter of strategy. A prominent example was Stallman's endorsement of the use of a BSD-style license by the Vorbis
Vorbis
Vorbis is a free software / open source project headed by the Xiph.Org Foundation . The project produces an audio format specification and software implementation for lossy audio compression...

 project for use in its libraries.

Programming languages specificity


The license uses terminology which is mainly intended for applications written in the C programming language
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 or its family. Franz Inc. published its own preamble to the license to clarify terminology in the Lisp context. LGPL with this preamble is sometimes referred as LLGPL.

In addition, Ada
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...

 has a special feature, generics, that may use the MGPL
GNAT Modified General Public License
The GNAT Modified General Public License is a version of the GNU General Public License specifically modified for the generic feature found in the Ada programming language.The modification is as follows:...

 license.

LGPL regarding inheritance (in programming)


Some concern has risen about the suitability of object-oriented classes in LGPL'd software being inherited
Inheritance (computer science)
In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...

 by non-(L)GPL code. Clarification is given on the official GNU website:
The LGPL contains no special provisions for inheritance, because none are needed. Inheritance creates derivative works in the same way as traditional linking, and the LGPL permits this type of derivative work in the same way as it permits ordinary function calls.

See also



  • Affero General Public License
    Affero General Public License
    The Affero General Public License, often abbreviated as Affero GPL and AGPL , refers to two distinct, though historically related, free software licenses:...

  • Free Software licensing
    Free software licence
    A free software licence is a software licence which grants recipients rights to modify and redistribute the software, which would otherwise be prohibited by copyright law. A free software licence grants, to the recipients, freedoms in the form of permissions to modify or distribute copyrighted work...

  • GNU Free Documentation License
    GNU Free Documentation License
    The GNU Free Documentation License is a copyleft license for free documentation, designed by the Free Software Foundation for the GNU Project. It is similar to the GNU General Public License, giving readers the rights to copy, redistribute, and modify a work and requires all copies and...

  • GNU General Public License
    GNU General Public License
    The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

  • GNAT Modified General Public License
    GNAT Modified General Public License
    The GNAT Modified General Public License is a version of the GNU General Public License specifically modified for the generic feature found in the Ada programming language.The modification is as follows:...

  • GPL linking exception
    GPL linking exception
    A GPL linking exception modifies the GNU General Public License to create a new, modified license. Such modified licenses enable 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...


External links