GNU Lesser General Public License facts for kids
File:LGPLv3 Logo.svg
Logo
|
|
Published | 1991 |
---|---|
DFSG compatible | Yes |
OSI approved | Yes |
GPL compatible | Yes |
Copyleft | Yes (library or dynamic linking-based) |
Linking from code with a different license | Yes |
The GNU Lesser General Public License (often called LGPL) is a special set of rules for computer programs. It's like a permission slip that tells people how they can use, share, and change certain software. The Free Software Foundation (FSF) created it.
This license lets software developers and companies use parts of programs (called "components") that are under the LGPL. They can even use these parts in their own programs that they sell and keep secret (called proprietary software). They don't have to share the secret code of their own parts. However, if someone changes an LGPL-covered part, they must share their changed version under the same LGPL rules.
The LGPL is often used for software libraries. These are like toolkits that other programs can use. The LGPL was made to be a middle ground. It's not as strict as the GNU General Public License (GPL), which requires almost all linked code to be shared. But it's also not as loose as other licenses like the BSD license or MIT License. The word "Lesser" means it gives a bit less freedom to the end user compared to the full GPL. It mainly focuses on keeping the LGPL-covered parts free to modify.
Contents
History of the LGPL License
How the LGPL Started
The LGPL was first released in 1991. Back then, it was called the GNU Library General Public License. It was given the version number 2 to match the GPL, which was also at version 2.
Updates and Renaming
In 1999, the license got a small update and became version 2.1. At this time, its name was changed to the GNU Lesser General Public License. This new name showed that the FSF didn't think all software libraries should use this license.
LGPL Version 3
A newer version, LGPL version 3, came out in 2007. This version added more permissions and worked with GPL version 3.
LGPL vs. GPL: Key Differences
Understanding the Main Difference
The biggest difference between the LGPL and the GPL is how they allow programs to connect. The LGPL lets a program link with (or "use") other programs that are not under the LGPL. This means you can combine LGPL code with code that has different rules.
How Programs Use LGPL Code
When a program uses an LGPL library, it's usually done in a way that keeps the LGPL part separate. Imagine a program that needs a specific tool. If that tool is an LGPL library, the program can use it without having to share all its own secret code.
For example, if a program uses a "shared library" (like a `.dll` file on Windows or a `.so` file on Linux), it's generally seen as just "using" the library, not becoming a "derivative work" of it. This means the main program doesn't have to follow the LGPL rules for its own code.
Linking with LGPL Programs
The LGPL requires that if a program uses an LGPL-covered part, it must be possible to link that program with a newer version of the LGPL part. The easiest way to do this is by using a "shared library" system. This allows the LGPL part to be updated without changing the main program.
Compatibility with Other Licenses
Sharing LGPL Code with GPL
One cool thing about the LGPL is that you can take software released under the LGPL and then release it under the stricter GPL. This makes it easy to use LGPL code directly in programs or libraries that are under the GPL.
LGPLv3 and GPLv2 Compatibility
LGPL version 3 isn't directly compatible with GPL version 2. However, if a program released under GPLv2 says it can be used with "any later version" of the GPL, then it can be combined with code from an LGPL version 3 library. The combined program would then follow the rules of GPL version 3.
FSF Advice on Library Licenses
Why Not Always Use LGPL?
The old name, "GNU Library General Public License," made some people think that the FSF wanted all software libraries to use the LGPL. However, in 1999, Richard Stallman (a key figure at the FSF) wrote an essay titled Why you shouldn't use the Lesser GPL for your next library. He explained that while the LGPL is still useful, using the full GPL for a library can sometimes be better for promoting free software.
How LGPL Works with Programming Languages
Object-Oriented Programming and LGPL
Some people wondered if LGPL rules applied differently to object-oriented programming, especially when one part of a program "inherits" features from an LGPL-licensed part. The official GNU website has clarified this:
Inheritance works just like regular linking. The LGPL allows this kind of connection, just as it allows normal function calls. So, if your program inherits from an LGPL class, it's treated the same as if it were linking to an LGPL library.
See also
In Spanish: GNU Lesser General Public License para niños
- GNU Affero General Public License
- GNU Free Documentation License
- GNAT Modified General Public License
- GPL linking exception
- Software using the GNU Lesser General Public License (category)