[cairo] Re: License for cairo changed to LGPL
DTurner at nds.com
Fri Aug 6 01:25:21 PDT 2004
> It doesn't require the code to be linked into the program as a shared
> library (in fact, the wording about shared libraries was only
> added in LGPL 2.1). One of the other alternatives is to provide object files
> that the user can statically link with their modified version of the
> Rather than providing all the object files (which might give away
> information about the structure of the app), the app author
> is free to perform an incremental link to produce a single object file which the
> user can link with the library. They might choose to do this
> anyway to simplify distribution.
And sometimes, this is simply not possible, because the "single object"
contains code covered by other licenses that prevent such distribution.
And, as far as I know, incremental linking doesn't magically remove
extern-ed function/variable definitions, still exposing a _lot_ of program
It'd be interesting to see if there exist a lot of products or companies
*legally* using statically-linked LGPL-ed libraries with the scheme you
describe. Personnaly, I don't recall having seen a single one !
Now, let's play devil's advocate and consider this fantasy example:
- I develop software that I put in the ROM or Flash of an embedded device
- I distribute a "single object" generated through incremental
linking. After I've applied enough filtering to remove any
symbol definitions from it, except the imports to the LGPL
library (yes, I'm that wicked !!)
- I distribute on my web site the single object, as well as
the source code for the LGPL library
Am I legal if:
A/ the toolset (compiler,linker) used to generate the
final executable isn't available publicly ? (Of course
the object format is undocumented)
B/ the toolset is only available commercially, i.e. you
must pay for it. Or it is gratis with an EULA that
restricts what you can do with it drastically
(e.g. it include a non-competition clause, like some
of the Microsoft EULAs)
C/ the toolset is available freely, but the user has no way
to put the executable it relinks into my device's ROM (because
it's either real ROM, or because this requires a special device
I developed for this purpose, which I do not sell) ?
In both cases, the user's freedom to use the relinked version of
the program isn't guaranteed at all. Would a judge decide that I
obey the LGPL nevertheless ?
I've tried to answer this question myself and couldn't find any clear
language in the LGPL license that would help me. And I'm a developer,
not a lawyer, who supposedly won't take too much time to understand
subtle technical processes.
I'll stop the nit-picking here, my point is that:
- if you think that non-open source products are going to
use statically-linked LGPL libraries, you probably need
a reality check. The technical and legal hurdles are just
- there is sufficient ambiguity in the LGPL that the user's
freedom to use a relinked version of the program could
not be guaranteed under certain circumstances.
I'm just a bit sick of seeing the same wishful allegations regarding
the LGPL license being made again, and again.
That's not to say that the LGPL isn't appropriate to Cairo.
While there may be better alternatives (like one I proposed recently),
I think it's OK since it guarantees that the code will stay "open".
It really depends on what you want to protect exactly (the code
and/or the user).
- David Turner
- The FreeType Project (www.freetype.org)
More information about the cairo