GNU Lesser General Public License

The GNU Lesser General Public License or LGPL (formerly GNU Library General Public License ) is another of the Free Software Foundation (FSF ) has developed a Free Software license. The LGPL allows developers and companies using and integration of LGPL software in their own ( even proprietary) software, without being forced by a strong copyleft having to disclose the source code of your own pieces of software. Merely changing the LGPL software components has to end users are enabled: This is why the LGPL parts are usually (eg DLL) used in the form of a dynamic program library in the case of proprietary software, thus ensuring the necessary separation between proprietary and open source LGPL parts allow.

The LGPL was thus developed as a compromise between the strong copyleft GNU General Public License (GPL) and less restricted licenses such as the BSD licenses and the MIT License. The word " Lesser " (in the sense of " less " ) on behalf of the license is intended to express that LGPL end users can not guarantee complete freedom in the use of software, because only the LGPL - parts, but not any proprietary software parts give the end users the freedom to modification.

The LGPL was released in 1991 and immediately took the version number to 2 to numerically match the GPL version 2. In 1999, the LGPL was slightly modified and versioned with 2.1, also the name was changed to the GNU Lesser General Public License, to give the position of the FSF expression that not all libraries should use the LGPL. Version 3 of the LGPL was released in 2007 to coincide with additional privileges for the GPL version 3.

The LGPL is mainly used for software libraries, but also with independent software.

Conditions / technical compliance

Unlike the GPL, LGPL also may attend the closed (that is, proprietary ) code to the LGPL code combined, but only if the following condition is met: A program that LGPL Code used in conjunction with its own proprietary code, must be constructed so that any end user the open source LGPL Code used in the final program (independently) left (or modified versions of it). This can be done either through dynamic linking (where the LGPL Code used in a dynamic library ); then the end user can have its own dynamic library (Linux jargon: Shared Objects) of the LGPL part ( for example, from a modified version of the LGPL code ) and use it. Or it can be done by static linking - then gets an end-user typically the object files (or source) of the proprietary code and the source code of the LGPL code and can together left them.

This condition is such that the user can must and must not be restricted from changing the LGPL part and re- integrate; Thus, the user must be provided installation information available in order to install and execute a modified version of the LGPL part in the Combined Work can; nor shall the user to debug changes to the LGPL part and reverse engineering can not be prohibited.

Usually it is so that the proprietary software vendors simply dynamically is linking its program against the LGPL library in question. This software contains a clear separation between the LGPL code and the proprietary part.

Examples of libraries under LGPL are the standard libraries of the various programming languages, such as glibc ( implementation of the standard C library, the Free Software Foundation ) or the GnuMP library.

For a C library that uses many inline functions and templates, a ( possible third developers across the street) is usually chosen a less restrictive license than LGPL, provided that use of the library is to be allowed together with closed ( proprietary ) code. Because of the proprietary code must in that case, the inline functions and template code of the library, etc. already included in the source code, and therefore the end user can not object files of proprietary codes are given, as any modifications of inline functions ( the library) must be included already in the source code. As an example, libstdc ( GNU C Library) to call, which uses many inline functions and templates: Here, the developers of libstdc for a GPL license with a special additive have decided that allows the developer to mix libstdc with its own code, the native code must not be under GPL LGPL yet (but it may of course). In particular, in this case eliminates the requirement that an end user, the libstdc library in an altered form (static or dynamic), and is thus left may have to over proprietary developers who use the library less restrictive than the LGPL.

It applies the principle that any changes to LGPL - parts themselves (if the changes were not made solely for their own use, but are sold as a program or whatever passed ) must always be made accessible to end-users. A disclosure of a private code that is independent of the LGPL code is only necessary if there are in the overall software source code - parts ( or is built on such ), which are under the GPL license and therefore the copyleft principle subject.

The LGPL contains an option to publish a modified version of a software under the GPL. This gives programmers free software the opportunity to publish their extensions as desired under a copyleft license.