[cairo] Re: License for cairo changed to LGPL

Bill Spitzak spitzak at d2.com
Thu Aug 5 13:14:21 PDT 2004

On Thursday 05 August 2004 03:15 am, Jost Boekemeier wrote:

> > 2. The exception is that you may link and distribute under terms of your
> > choice, a "work that uses the Library" as defined in section 6 of the
> > License, provided that the creation of this work does not require the
> > modification of any of the source code of the library.
> So that I can _copy_ (or static link) the FLTK code into my FLTKX
> library, make modifications by adding features not available in FLTK and
> distribute this proprietary work without contributing the code to the
> original work.

Yes, making your own library with FLTK inside it is allowed. I figured this 
was necessary as very large programs that accept plugins may be considered a 
"library" and thus limiting the exception to only "executables" might make it 
not useable for some of the applications it is popular for.

> Clever.  But if you don't care what people do with your code, wouldn't
> be the MIT license more appropriate?
> > 3. Modifications to the source code of the library do not fall under this
> Contradicts with #1,2 above.  Or you must exactly describe how to
> identify your work -- API functions usually start with a fltk_, so that
> should help, but what about internal structures?

If you can use the FLTK source and headers without editing them then you can 
do whatever you want. However we want to be able to see all changes made to 
the code itself.

The biggest hole I see is that the "modification" might be to add 
"call_my_secret_stuff()" to the code. Perhaps there should be a requirement 
that modifications must include enough code to create a working 
implementation of that modification.

> > exception. However you may distribute the modified library under the
> > normal terms of this license and then distribute a work using this
> > modified library using this exception
> This confuses me.  What are "normal terms"?  Is that the GPL with the
> LGPL linking exception or only the GPL?

Normal terms meant the LGPL plus the exception. This seems to have been a 
source of confusion, so I changed the wording it now says:

  However you may distribute the
  modified library under the normal terms of the LGPL, and then
  distribute a work using the modified library under terms of your
  choice by using this exception.

> > 4. If you copy code from files distributed under the terms of the GNU
> > General Public Licence or the GNU Library General Public Licence into a
> > copy of this library, as this licence permits, the exception does not
> > apply to the code that you add in this way. To avoid misleading anyone as
> > to the status of such modified files, you must delete this exception
> > notice from such code and/or adjust the licensing conditions notice
> > accordingly.
> Which special exception do I have to remove?  The one from the LGPL or
> the one of the FLTK license -- or both?

This was copied from the Guile license you quoted. I suppose it is not 
necessary, it is just a clarification that the FLTK license does not 
magically grant you rights to other code that you don't have, just because 
you add some of it to FLTK.

The same is true for the LGPL itself, adding GPL code to an LGPL library 
makes the result GPL. So I guess this idea is already covered. Maybe it would 
be best to just delete this paragraph.

> I suggest to rethink your license terms to be more specific a) use the
> word "executable" instead of "work" and b) apply the special exceptions
> to the GPL directly.  Or, you could use one of the 3 standard fsf
> licenses, for example the "guile license":

I think you are right that the "exception" could be added to the GPL instead 
of the LGPL and the result would be the same. However it appears necessary to 
say "LGPL" as that implies that you can use it in closed programs, if it said 
"GPL+exception" many people would assumme they cannot use it.

More information about the cairo mailing list