[racket] Clarification on licensing of Racket code?...

From: Brian Mastenbrook (brian at mastenbrook.net)
Date: Sat Apr 7 15:36:13 EDT 2012

On 04/07/2012 01:17 PM, Stephan Houben wrote:
> It seems quite unfortunate that this is apparently a grey area,
> since this is exactly what I would expect what somebody who wants to
> create closed-source software with Racket would like to do (i.e.
> distribute the .zo files for his own code, distribute compiled Racket
> + Racket source code to satisfy LGPL).
>
> Would it perhaps be possible that the Racket copyright holders would
> add a section to their license either explicitly condoning or
> forbidding this distribution model? Since the ambiguity seems to
> serve nobody.

(Since I'm not a Racket author and thus don't have any skin in the game,
and these kinds of licensing discussions from the peanut gallery tend to
devolve into flamewars very quickly, this will be my last post on the
topic.)

For reference, here are some exceptions used by other projects. I don't
think any of these are 100% applicable to Racket, but they're indicative
of the existence of the problem and the possible approaches to solving it.

Franz's preamble to the LGPL: http://opensource.franz.com/preamble.html

Nokia's LGPL exception:
http://qt-project.org/doc/qt-4.8/lgpl.html#nokia-qt-lgpl-exception-version-1-0

This is weaker than Franz's exception, and the 5% number seems a little
arbitrary.

Some other projects have decided to start with the GPL and add their own
exception clause to it rather than modifying the LGPL. libstdc++ is an
example of this:

http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01s02.html
http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license.what

Note that this is possibly weaker than LGPL with the Franz exception,
and I don't find the wording to be terribly clear.

GNAT uses an Ada-specific version of this exception:

http://en.wikipedia.org/wiki/GNAT_Modified_General_Public_License

... as does GNU Classpath for Java; note that there's no mention of
macros or inline functions as it's not really relevant for Java.

http://www.gnu.org/software/classpath/license.html

Adding a preamble or exception is tantamount to relicensing, so every
Racket contributor whose code is part of the Racket distribution would
be required to acquiesce to the change. It also effectively creates a
new license ((L)GPL with Racket exception), which contributes to the
problem of license proliferation. If Eli's statement of what he believes
the LGPL to mean -- "you're only required to make public any patches you
did to the code you're using (ie, fixes and extensions to racket
itself), but your own code is yours" -- is what's intended by the other
Racket authors, maybe the best thing to do is just to pick a well-known
license which already says exactly that instead of adding a new
exception to the LGPL or GPL.

-- 
Brian Mastenbrook
brian at mastenbrook.net
http://brian.mastenbrook.net/


Posted on the users mailing list.