[Haskell] Understanding the LGPL

Chris Kuklewicz haskell at list.mightyreason.com
Tue May 30 10:31:31 EDT 2006


Brian Hulley wrote:
> Malcolm Wallace wrote:
>> "Brian Hulley" <brianh at metamilk.com> wrote:

>> If what you really mean by "open source" is the ability to take code
>> and into make non-open modifications to it (as BSD permits), then
>> that is far more demanding than what most people mean by the term.
> 
> Well the problem with LGPL afaiu is that if you statically link your
> code to it your are required to make your own source code available.
> 

That is untrue.  You never have to reveal your source code when your code uses
an LGPL libary.  If you modify the LGPL library source then you do have to
release the modified library source under the LGPL -- but this does not mean you
need to release the code that uses your modified library.

http://www.gnu.org/licenses/lgpl.html

"When a program is linked with a library, whether statically or using a shared
library, the combination of the two is legally speaking a combined work, a
derivative of the original library. The ordinary General Public License
therefore permits such linking only if the entire combination fits its criteria
of freedom. The Lesser General Public License permits more lax criteria for
linking other code with the library."

If you dynamically link then there is little to do, as the users can easily
switch to a modified library.  If you statically link you must supply object
code (not source code):

"If you link other code with the library, you must provide complete object files
to the recipients, so that they can relink them with the library after making
changes to the library and recompiling it. And you must show them these terms so
they know their rights."

So there is a difference in static vs dynamic linking -- with static linking you
have to make (at least) your object code available.

-- 
Chris


More information about the Haskell mailing list