Chris Uppal said:
Because that notion of "linking" is /not/ how most interesting or useful
languages work these days. Ok, I'm overstating that a bit (there is still
I don't know of any other use for the term. What can you be thinking
of? (yes, I am a language designer and author). The alterative is to
run an interpreter at some level, instead of linking the machine code
or some other level of code.
Yet you sound confident that your understanding of it is correct in law ?
I am as confident as a person can be who has never bothered to read the
LGPL because of his confidence in all the lawyering that went into it,
and his confidence in the aims of its creators.
Fair enough. I'll have to try read it for the Nth time, to see what I've
I was able to scan it in about 5 mins after I wrote my message, and it
did not seem at all difficult or strange to me.
missed. /That/ is the main problem. It's a legal document, but it is not
clear (to me) what it means.
It says explicitly what it means! I don't see your problem. I read what
it meant to mean in the intro blurb - don't make me quote it!
Under the circumstances there is no way whatsoever that I'll put any of my
stuff out under the LPGP (and the GPL would be completely inappropriate). And
I'm suspicious of any other LGPLed software.
The LGPL is quite explicit about what it does. It binds the receiver of
the library to allow the receiver of a linked work from him access to
the library code and the capability to relink it, but does not
contaminate the whole product with the same licence. I quote:
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
In other words, "do what you like except prohibiting people from
reverse engineering and debugging and improving to taste". In other
words still, "free software".
In practise I've been treating as: if the software is in a DLL then it clearly
OK to use it, if not then you have to take a very fine reading of the LGPL to
What? Why a DLL? The LGPL refers to "libraries", not "dynamically
linked libraries". That qualification is all your own invention and I
do not know where you got it from. If you want to see explicitly:
... linking a "work that uses the Library" with the Library creates an
executable that is a derivative of the Library (because it contains
portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 [which I quoted above] states terms for distribution of
such executables.
It's quite irrelevant if it's a DLL or something liked in statically or
something TO BE linked in statically. It's still linked in, and that
has a precise and unambiguous meaning.
permit it (assuming you don't want to LGPL your own stuff).
I don't get you. The LGPL specifically says that it allows you to
distribute a linked in work "under terms of your choice" (provided that
they are not onerous in that they prohibit reverse engineering or some
like thing).
That's its whole intent - to allow "linking in" to be regarded as
"using", and thus let you escape the legal trap of having created a
derived work. The LGPL specifically gives you permission to distribute
the derived work under your own terms, provided those terms do not
impinge on peoples rights to "free software" vis a vis the library
under LGPL. Under section 6, the licence goes on to specify what you
must do in order to maintain peoples rights to the library. It's very
explicit. I don't see your problem with the understanding of it:
Also, you must do one of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including
whatever changes were used in the work ... [and provide
the OBJECT code of yours that is linked with the library
so that people can relink it with a different library if they
like]
[or] b) Accompany the work with a written offer, valid for at least
three years, to give the same user the materials specified in
[a)] ...
[or] c) ... offer ... access to copy the above specified materials ...
[or] d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
So - in summary, you must make available the object code that you
linked with the library in order to create your derived work, provide
access to the source code of the library, and then you can distribute
the whole under whatever terms you like, provided that you don't
violate the forgoing and don't prohibit people from the act of reverse
engineering or debugging.
Seems completely straightforward to me.
Because it says so, and it's clear about it.
The creators.
T> he GNU people ?
Yes.
The author/owner
of the particular code that has been issued under LGPL ?
Of course.
And anyway, I don't
think /intent/ counts for all that much in a legal agreement (though it does
It's a contract, so intent IS what counts.
As far as I recall the reasons for creating the LGPL, it
was to ENABLE authors to distribute libraries under free-software terms
without running afoul of the legal problem [..]
That's my understanding too. But the range of ways in which bits of software
can be hooked together (such that I'd expect/hope the author didn't want them
to be considered to be "combined" for these purposes) is larger than that
provided by what a techie would call "linking".
You either link or you interpret, or you arrange for a proxy to do it
for you, and talk to the proxy through a communication mechanism. There
is no other possibility. And the LGPL only gives you an out for
linking, since linking is the only thing apart from authoring that
creates a combiend work under law. Anything else is just "using" your
thing. You don't become derived from a teacup when you use a teacup, do
you?
Peter