LGPL looked like the obvious choice for PCBO when the following problem cropped up – GPL Hijacking.
- LGPL doesn’t spread to other parts of an application and it does allow being linked with closed-source programs. LGPL is “compatible” with GPL in the sense that you can, at your option, convert a LGPLed program to a GPL one any time you want. Such a change is irreversible. For a small project, this is a risk. If a truly skilled person adds a lot of functionality and relicenses the code to GPL, the LGPLed one would swiftly be abandoned and the GPL-changes cannot be applied back in the LGPL version.
- Where lies this license problem? MPL itself has no problems with the LGPL or GPL licenses, the problem is on the GNU side. GPL has a problem with MPL.
I was trying to decide which license to use for my PCBO.
So I had to do a bit of research on the usable licenses. These two sites were very helpful –
Basically GPL is like a virus.
All derived and any larger work of which a GPL code is part of, must be open sourced and licensed under GPL.
But this imposes a lot of restriction on libraries like glibc which are used in almost every project.
So, the LGPL (Library or Lesser GPL) was deviced which allows the LGPLed code to be linked by a non-(L)GPLed program. The LGPL places copyleft restrictions on the program itself but does not apply these restrictions to other software that merely links with the program.
The MPL states that derived may not be under MPL but must contain a documentation of all the changes made.
Here is a link to a great discussion about the differences of GPL and MPL.
Under a copyleft form of copyright license, the restrictions imposed are that the work cannot be copied, modified or used in any subsequent work unless the author of that subsequent work agrees to grant the same copyleft rights to the public to freely copy, use and modify the subsequent work. There are two types of copylefts –
- Strong copyleft : Which implies derived works of all kind has to have the same copyleft rights. Example is GPL.
- Weak copyleft : Allows other software to link to the library, and then be redistributed without the legal requirement for the work to be distributed under the library’s copyleft license. Examples are MPL and LGPL.
Then there’s also the Apache License which states that all derived work must contain text messages indicating that a work under apache is being used. But PCBO is not derived from apache or tomcat. It runs on them.