[cairo] Cairo and static linking

Carl Worth cworth at cworth.org
Thu Dec 8 12:31:15 PST 2005


On Thu, 08 Dec 2005 12:30:26 -0500, Michael Sweet wrote:
> That said, FLTK is distributed under the LGPL, with exceptions that
> allow for static linking against an unmodified library.  This was
> done specifically for commercial vendors and in cases where the use
> of shared libraries is not practical (i.e. embedded platforms)
> I *think* that the MPL license terms are compatible with this, but
> as I have less experience with the MPL I'd like to get confirmation
> before we proceed further.

Ah, license compatibility, what "fun"... :)

I am not a lawyer. What follows is strictly my opinion and does not in
any way constitute legal advice. If you think it would be wise to rely
on the following information in any endeavor with risk of significant
negative impact to yourself or your loved ones, please refrain and
seek legal and/or psychiatric counsel as appropriate.

Here are, in my own words, what are the questions being asked as well
as my answers.

Question #1
-----------
Do the licenses of fltk (LGPL + exceptions)[1] and cairo (LGPL and/or
MPL)[2] allow for a software developer to link her "original" code
with fltk and cairo and distribute the result?

Yes, quite clearly.

The most straightforward mechanism is by distributing the result under
the terms of the LGPL or the GPL.  The next most straightforward way
is to distribute under "terms of your choice" by complying with LGPL
section 6, (and in particular one of 6(a) through 6(d)).

Question #2
-----------
But what if said developer wants to link statically, (so LGPL 6(b)
can't be met), and is unwilling/unable for some reason to release
source or relinkable object code for the "original" pieces of the
application (so LGPL 6(a), 6(c), and 6(d) will not be met).

In this case, is there still some way to be able to distribute the
statically linked application?

I believe the answer is yes.

Question #3
-----------
In that case, what must the software developer do in order to satisfy
both licenses?

In this case, the situation is most clear if we are talking about
"original" code that is linked with unmodified versions of fltk and
cairo.

Paragraph 3 of the fltk exception [3] provides a fairly large escape
hatch which forces the application of the LGPL to "look no further"
than the fltk source itself. So the developer simply needs to ensure
that all terms of the LGPL that are not waived by paragraph 3 of the
exception are met. The requirements of the LGPL will not extend to
cairo in this case.

Section 3.7 of the MPL 1.1 [4] provides a similar escape hatch which
forces the application of the MPL to "look no further" than cairo
itself. This hinges on the definitions of Covered Code, Larger Work,
and Modifications. Notably, new files not containing Covered Code or
any Modifications do not themselves form Modifications. So the
developer simply needs to ensure that all terms of the MPL are met.
The requirements of the MPL will not extend to fltk in this case.

The combination of these two "look no further" clauses means that
"incompatibility" of the MPL and the LGPL need not be considered, (as
it turns out the MPL alone and the LGPL are likely
incompatible[5]).

There are still requirements from both licenses that the
re-distributor must satisfy, (such as the "prominent notice"
requirement of the LGPL section 6), but there is nothing I can see
that would make it impossible to simultaneously satisfy all required
terms.

-Carl (who is glad to decide no re-licensing is necessary on either
 side here, and is looking forward to getting back to coding rather
 than studying licenses)

[1] http://fltk.org/COPYING.php

[2] http://cairographics.org/COPYING

[3] http://fltk.org/COPYING.php
  3 Static linking of applications and widgets to the FLTK library does
    not constitute a derivative work and does not require the author to
    provide source code for the application or widget, use the shared
    FLTK libraries, or link their applications or widgets against a
    user-supplied version of FLTK.

    If you link the application or widget to a modified version of FLTK,
    then the changes to FLTK must be provided under the terms of the LGPL
    in sections 1, 2, and 4.

[4] http://cairographics.org/COPYING-MPL-1.1
  3.7. Larger Works.
    You may create a Larger Work by combining Covered Code with other code
    not governed by the terms of this License and distribute the Larger
    Work as a single product. In such a case, You must make sure the
    requirements of this License are fulfilled for the Covered Code.

[5] The MPL alone is considered GPL-incompatible by the Free Software
    Foundation:

	http://www.gnu.org/philosophy/license-list.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20051208/1ba31793/attachment.pgp


More information about the cairo mailing list