[cairo] Cairo now available under either LGPL or MPL

Carl Worth cworth at east.isi.edu
Sat Sep 4 06:38:12 PDT 2004

At the risk of sounding wishy-washy, I'm happy to announce another
license change for cairo.

Cairo is now available under the terms of either the LGPL (as before) or
the Mozilla Public License (MPL) version 1.1.


I'd like to express my thanks to everyone who has put their effort and
support into this process, (even the discussions with attorneys were
quite pleasant). This change has the unanimous support of all authors of

I'm optimistic that this change will address almost all of the concerns
that were raised after the switch to the LGPL. If there are some
concerns left unaddressed, or any new concerns raised, I'm sorry. But in
that case, you're just going to have to figure out what you want to do
on your own, because I, for one, am not planning on thinking about
licensing for cairo again for quite some time.

For any that might be interested, the rationale for the change is
described below. Of course, I can't speak for other authors, but the
stuff below has some of my own thoughts. It's likely to be quite boring
so feel free to ignore it or take advantage of its sleep-inducing
qualities as appropriate.


[*] I also asked for approval from everyone that has contributed any
code whatsoever to cairo. Every response I received was in support of
the change. For the few who did not respond, the relevant changes were
minor, (not likely to be relevant under copyright). Additionally, all
such changes were contributed under the terms of the MIT license, so
those contributors had already provided the code under terms allowing
the current license change.

Why isn't the LGPL alone sufficient?
The mailing list traffic over the past few weeks provides a pair of
perceived problems:

1) The Mozilla project really wants to use cairo, but requires cairo
   to be re-distributable under the Mozilla tri-license,

2) Some people anticipate difficulty being able to comply with the
   LGPL in some embedded systems.

I don't necessarily agree with all of the details of these problems,
but the fact of the matter is that two projects, (Mozilla and Mono),
have already discussed plans to fork the last MIT-licensed version of
cairo. That's far from an ideal outcome, and I do feel some obligation
to try to help pre-existing users like these be able to continue to
use new versions of cairo.

I've looked over the MPL 1.1 and decided that a dual-license with
options for either LGPL or MPL fits my goals for licensing cairo.

So, what exactly are the goals for the cairo license?
I wanted to find a single most well-accepted, GPL-compatible
free-software license that required users to release (as source)
modifications made to cairo, (but not necessarily release source for
programs built on top of cairo).

Initially, the LGPL was the best I could find, but it was not accepted
by everyone, as discussed above.

The MPL alone is also not sufficient, as it is GPL-incompatible.

Adding both as an option seems like the right compromise, even if it
isn't a single license.

But is the MPL less free than the LGPL?
I consider the MPL to be quite similar in spirit to the LGPL.

Both licenses are free software licenses with a limited copyleft,
(intended to apply to modifications of the library itself, but not to
reach out into new code that merely uses the library). The two
licenses use different mechanisms to draw this boundary. The MPL is
finer, in that it refers to new files containing no code from the
original library, while the LGPL requires the new parts to "be
reasonably considered independent and separate works in
themselves". My feeling is that there is not a significant loss of
freedom here.

The LGPL definitely tries harder to guarantee that every recipient of
the library receives at least some freedom to modify that library.
This includes the relinking language that was such a source of
contention in the recent mailing list threads. I actually do like the
idea behind the relinking language, but it's clear that some people
regard it as too unclear or too risky. And it appears to me that a
determined opponent could impose technical barriers (such as DRM) on
modifying the code in a device in ways that are not prevented by the
LGPL. So, the MPL doesn't try to guarantee these freedoms, but the
LGPL probably can't succeed anyway. So I don't think there's a
significant loss there.

And, finally the MPL does have an interesting clauses providing
revocation bases on patent infringement claims. The LGPL does not have
similar protections. So, the dual-license doesn't play completely into
the hands of an evil software distributor, who would at least be
forced to choose between DRM and patents as a means for thwarting
the freedom of the software.

But what about the GPL-incompatibility of the MPL?
There is still a potential problem here, but I think it is minor.

I definitely want to see GPL programs able to use cairo, and as
described above, GPL-compatibility is a primary goal of the cairo

The dual LGPL/MPL license is GPL-compatible, but it leaves open the
possibility of an MPL-only fork that would not be compatible with the
GPL. I think the risk of this is low, as there would not be much to be
gained by anyone, (friendly or evil), switching to an MPL-only
model. The Mozilla project provides anecdotal evidence in support.
That project had initial concerns about an LGPL/GPL-only fork, but
there have been no such attempts that I am aware of.

But does it make sense to change the license just for one application?
No, it does not. And this is the argument I presented myself when
people interested in Mozilla first approached me with concerns about
cairo and the LGPL.

It was only after some of the people that had raised other non-Mozilla
concerns said that they would be satisfied with the MPL---only then did
I start to seriously consider using the MPL.

Won't the dual-license make the cairo license harder to understand and accept?
I hope not.

Making the change did require a fair amount of work on our part, as the
authors we needed to understand the consequences of both licenses as
much as possible.

But users of cairo can continue to use cairo under the terms of the LGPL
alone, if they wish. So there's no new requirement to have to understand
and accept any new license.

Similarly, any organization that is already comfortable with the MPL
should be able to pick up cairo and start using it immediately.

More information about the cairo mailing list