Lesser GPL
Earlier today, I was reading some of the discussion of the KHTML/WebKit discussions, and reading through what KHTML developers had said about Apple’s lack of followthrough, only doing the minimal amount neccesary legally to comply with the LGPL license. I was most interested in what requirements Apple has under the LGPL license to the KHTML community.
In the process of reading this license, I found out that it is completely ridiculous. Some examples:
Section 2d: If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
This seems like some kind of really strange way of saying that a library must provide valid output, even with missing input. I’m not even sure I understand what this is – it seems almost like an indication that you are not to break reverse compatibility in the libraries that are LGPL licensed. I’m sorry, but that (to me, at least) seems like a flaming pile of crap. If someone wants to use an API in an application, it’s up to that developer to ensure that it passes the correct values.
Then for the cases where you are delivering an application linked to an LGPL library:
Section 6c: c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
I have to accompany all works I distribute which are linked against LGPL libraries an offer to the source code for at least three years? It’s my job to maintain the version of XSLT included with every one of my applications for three years after I distribute them, just in case libxml.org goes away? I understand the idea – people should be able to modify the library code behind an Application, so they should have access to that code – but in the case of most of these libraries, I am not going to take the time and effort to maintain a copy of the libraries. That’s what package management is for.
The rest of the license is understandable at least, but for small time projects, these kind of requirements are ridiculous, and I find it really difficult to believe that people use this license. I’m sure that other people think it makes perfect sense, but I’m really just thinking that the use of LGPL is something that I’d never want to see or encourage.
June 9th, 2005 at 1:31 am
It seems to me that the GPL and LGPL are mostly used by people for political reasons, because they want to force software to be as “free”, according to their ideology, as possible. Not necessarily because they want their software to be easy to use and modify as possible.
I prefer the BSD licence, myself. (The one without the so-called “obnoxious advertising clause”.) The X licence is similar.
June 9th, 2005 at 1:36 am
Section 6 is disjunctive.
June 21st, 2005 at 1:00 am
As mentioned, section 6 only requires that you do one of the actions. If you use the LGPL’d code as a DLL or shared library, you’re covered under section 6b and don’t need to produce a written offer for “linking materials”. The 2d section of the license exists to prevent “back-door” extension of a LGPLed library where someone takes the LGPLed code, modifies it to use data or functions in the main non-LGPLed program, then releases it. It basically says that you can’t tightly couple LGPL code with non-free code; you’ve got to preserve the library’s status as a library component that’s not exclusive to your program.