LLGPL Clarification
Marc Santoro
ultima@tunes.org
Fri, 31 May 2002 07:19:55 -0000
I think we may have to agree to disagree on this one.
Regardless, I do not believe that saying Section X is invalid is a proper
way to clarify anything.
Also, you are limiting the scope of the LGPL drastically by your
statements. Yet you claim to seek the spirit of the LGPL in the LLGPL. The
spirit of that particular snippet is to ensure that use of complex macros
and data structures by programs using a library give proper credit to the
use of the library in the program -- that a program using complex macros
and data structures contains a significant portion of Library code in it's
object files. That is the spirit that you fail completely to capture. How
powerful a macro system is does not matter -- what matters is that in the
end, [L]LGPL source code ends up in non-[L]LGPL routines that get compiled.
Take a look at Bison for an example of why this causes problems -- Bison
outputs it's own source code into generated code )doing what one could do
with significantly complex Lisp macros.) The FSF states (In the GPL FAQ)
that portions of Bison's source code in that respect were relicensed so
that the outputted source code could be included in anything
(unrestricted). They didn't LGPL the code because the LGPL is just as
restrictive in this case.
The LLGPL does not encompass that capability of Lisp. You do not mention
macros at all, and there are more problems than just macros, such as higher-
order functions.
You ask me to understand the distinctions between Lisp and C, as if the
thing is very simple. But it is not: How Lisp "libraries" work could be
very complicated. One could claim that on certain systems a Lisp namespace
with a package system is somewhat like a "filesystem" and that intern'd
Lisp functions are like files -- and are therefore completely seperate
elements of something that even as a whole does not constitute a program
(in the same way that GNU + Linux does not constitute a program, it
constitutes an operating system and environment). The distinction between
Lisp and C is very variable, and depends highly on the setting and
particular Lisp used. What about a Lisp-to-C compiler that could in fact
use header files?
I could go on for pages (as I'm sure you could) about how complex Lisp is.
That complexity *is not captured* by the LLGPL, which exists only as an
ambiguous modification to an ambiguous license (ponder Section 6 of the
LGPL in relations to "debugging" copy protection code and the DMCA...)
As it stands, I would have to highly recommend free and non-ambiguous
methods of licensing, such as Public Domain and Bugroff, and not the LLGPL.
Both of these give you an extreme amount of control over your own source
code, and the ability to use source code other people have developed in any
way you wish. Isn't that what free software is all about?
I must point out that I don't believe many people understand the LGPL --
most people think they understand the spirit when they do not. The LGPL is
designed to be viral. It *is* designed to try and convince people to
release their code under the GPL/LGPL. It is not designed to simply protect
your code.