[racket] Clarifying the Racket License
There has recently been some discussion on the list about the
Racket license, and we wanted to make our perspective clear. Our
primary goal is to help as many people as possible use and
contribute to Racket. We encourage anyone to develop any kind of
software, with any kind of license, using Racket.
We've chosen the LGPL as the license for Racket, which makes it
possible for for people to create software with Racket, and to
allow us to build on existing libraries that use the LGPL, such
as the Lightning assembler and the GMP math library. The basic
requirement of the LGPL is that you make your changes to Racket
available, and that you let other people use your software with
new versions of Racket.
Since the LGPL license that Racket uses was originally designed
for C programs, parts of it require some interpretation to apply
to Racket in detail. The following is how the Racket maintainers
interpret the license.
* First, if you distribute your Racket application in source form
or as compiled bytecode files, the Racket license does not
restrict you at all.
* Second, if you distribute your Racket application as compiled
binary generated by 'raco exe', there are no requirements
placed on the licensing of your software. However, the LGPL
requires that you make it possible to re-link your software
with modified versions of Racket. This means, basically, that
you need to provide the compiled bytecode files used to produce
the compiled binary, if requested by someone who got your
software from you. Note that this does *not* mean that your
software has to be made open source, nor do you have to give
the source code to anyone, nor do you have to make the ompiled
bytecode files available to the public or let other people
redistribute them. Furthermore, this is not revealing any more
of your source code than the 'raco exe' format, which embeds
these bytecode files.
We are, of course, not lawyers, and this should not be taken as
legal advice. However, we wanted to make it clear that Racket is
an appropriate building block for all kinds of software, and to
clarify how we view the license of Racket.
Sam, for the Racket developers