LLGPL Clarification

John Foderaro jkf@franz.com
Thu, 30 May 2002 11:14:46 -0700


>> Seems to me Section 5 is using "header files" as an example -- the next 
>> paragraph does not mention header files in the least. It discusses macros 
>> and data structures. 

let's look at how that paragraph starts:

    If such an object file uses only numerical parameters, data
    structure layouts and accessors, and small macros and small inline
    functions (ten lines or less in length),   ....


Now where are the 
    "numerical parameters, data structure layouts and 
    accessors, and small macros ..."  

coming from?   Clearly they are coming from the header
files mentioned in the preceeding paragraph:

    When a "work that uses the Library" uses material from a header file
    that is part of the Library, 


So again this paragraph is trying to establish rules to handle
people making use of very fancy header files to create
their own library which they want to consider as an independent
work yet in reality it's simply derived from the 
work done to write the existing library.

There is simply no parallel in the Lisp world.  

Also all section 5 of the LGPL does is say that sometimes 
things fall under section 6.  But our preamble to the LGPL 
says that

    Because of this declaration, section 6 of LGPL is not 
    applicable to the Library.

so this wipes out section 6.


We tried to be as clear as possible that a Lisp Library is 
a collection of functions (and macros are just source transformation
functions) and data.   Even if you load a Lisp Library
into your code and use those functions and macros
you haven't made a work derived from that Library.

It's just that simple.


LGPL, since it has many C language things in it, isn't 
the perfect open source license for Lisp.  I'll admit that.
We considered making yet another open source license but
found that people were happier to with an existing license 
whose intent they understood.  

The intent of the LGPL (and LLGPL) isn't to trick you into forcing you
to make your code open source.   Its intent is to ensure
that modification to the library itself are shared yet
people can write applications using the library and
have the choice as to whether to open source their applications.

Ultimately whether the LLGPL does what it's supposed to
will be up to a judge.  I sure hope it never comes to that.