[cairo] Re: License for cairo changed to LGPL

Turner, David 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 
> library.
> 
> 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
structure.

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
   too much.

 - 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).


Best Regards,

- David Turner
- The FreeType Project  (www.freetype.org)



More information about the cairo mailing list