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

From: Rüdiger Asche (rac at ruediger-asche.de)
Date: Sat Apr 7 05:40:08 EDT 2012

Thanks for this enlightening contribution!

This just reaffirms my former conviction that nothing is really free, and 
I'd much rather spend my money on a good commercial product (and therebye 
support the people who deserve to have their development efforts paid as 
well as be entitled to professional product support*) than on a plethora of 
lawyers to clarify whether something dubbed as "free" really *is* free 
(which is also a moral issue, of course; since I expect my customers to 
appreciate the value of my development efforts by paying for the product, 
how could I justify *not* paying those whose work I use as ground work for 
my product?).

So if anyone has pointers to commercial variations of Racket or Scheme to be 
used as building and deployment platforms for my commercial software (Chez 
Scheme seems to have ceased out of existence; I downloaded the trial version 
and found that it doesn't run on XP anymore and therefore most probably not 
on later versions of Windows), I'd be glad to hear about them. In the 
meantime, I'll probably stick to what I'm doing right now - use Racket for 
prototyping, testing, internal utilties etc. and code the production level 
software in plain ol' C/C++. Bummer because I know by now that coding in 
Scheme/Racket WILL produce sturdier, smaller and generally better software 
even in the field, but apparently there world ain't ready for it yet.

Thanks again!

*Don't get me wrong - the support on this mailing list is exceptionally 
good, but it's all voluntary, and in a commercial environment, it is sort of 
dangerous to rely on voluntary support no matter how good the quality.

----- Original Message ----- 
From: "Brian Mastenbrook" <brian at mastenbrook.net>
To: <users at racket-lang.org>
Sent: Friday, April 06, 2012 9:22 PM
Subject: Re: [racket] Clarification on licensing of Racket code?...

> On 04/06/2012 03:06 AM, Eli Barzilay wrote:
>> No, that's a roughly description of GPL.  With the LGPL you're free to
>> do whatever you want to do -- 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.  (And Racket is using the
>> LGPL to *encourage* such uses.)
> No; the straightforward license you just described is the MPL, not the 
> LGPL. This is a very common and frustrating misconception. The LGPL says a 
> lot of very complicated things which require a lawyer to interpret 
> correctly.
> (Disclaimer: I'm not a lawyer, but in a previous life I worked with 
> lawyers to set company-wide processes and create training on how to comply 
> with open source licenses for a Fortune 100 technology company.)
> In the case of a Racket-generated executable, you must follow the 
> requirements of section 6 of the LGPL 2.1, which says that the user must 
> be able to relink the executable to a modified version of Racket. This is 
> because the exception in section 5 only applies if you use "numerical 
> parameters, data structure layouts and accessors, and small macros and 
> small inline functions (ten lines or less in length)" from the LGPL'ed 
> library, and any Racket of nontrivial complexity will probably involve a 
> macro whose implementation happens to be longer than 10 lines of source 
> code.
> Section six says that you need to provide either object files which can be 
> linked with a modified library, or use a "suitable shared library 
> mechanism" which allows "interface-compatible" versions of the library to 
> be linked. The difficulty in my mind comes in interpreting what 
> "interface-compatible" means, and how to separate out the portions of the 
> object file that are actually portions of the library (since they are the 
> result of expanding a Racket macro). Other projects have either added a 
> blanket exception for these kinds of cases [*], but adding such an 
> exception for Racket would be tantamount to relicensing it.
> You're in the clear if you include the source to your proprietary program 
> with the binary, and the source can still be licensed under the terms of 
> your choice. If you don't want to do so, talk to a lawyer.
> [*]: The "LLGPL", a preamble to the LGPL used by a number of CL projects, 
> is an example of this: http://opensource.franz.com/preamble.html . But 
> instead of adding a preamble that contains additional conditions or terms, 
> I'd recommend using the MPL instead. MPL v2.0 when used without the 
> "incompatible with secondary licenses" option is an extensively reviewed, 
> well-recognized and very straightforward license which is also compatible 
> with the LGPL and the GPL via an explicit conversion clause.
> -- 
> Brian Mastenbrook
> brian at mastenbrook.net
> http://brian.mastenbrook.net/
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

Posted on the users mailing list.