From 44895a00270fd4b95e12f07e8d5d78f9587cc1eb Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Mon, 28 Oct 2019 09:17:56 -0400 Subject: [PATCH] Relicense this repository under Apache 2.0/MIT. (#2871) Note: the traditional Racket executable continues to incorporate LGPLv3 code and thus modifications to it must be released under that license. However, all Racket code in this repository, as well as the Racket-on-Chez excutable, are more permissively licensed. Thanks in particular to @otherjoel and @zyrolasting for their work on this project. --- LICENSE | 62 ++++++++++++++++++++++++---------- README.md | 5 ++- racket/src/LICENSE.txt | 75 +++++++++++++++++++++++++++--------------- 3 files changed, 94 insertions(+), 48 deletions(-) diff --git a/LICENSE b/LICENSE index 3629a31612..92443c42f7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,17 +1,41 @@ -Racket is distributed under the GNU Lesser General Public License -(LGPL) version 3. This implies that you may link Racket into -proprietary applications, provided you follow the rules stated in the -LGPL. You can also modify Racket; if you distribute a modified -version, you must distribute it under the terms of the LGPL, which in -particular states that you must release the source code for the -modified software. +Racket is distributed under the MIT license and the Apache version 2.0 +license, at your option. However, Racket relies on some components +distributed under other licenses. In short: -See the file racket/src/LICENSE-LGPL.txt for the full text of the -license. + * The traditional Racket executable includes code distributed under + the GNU Lesser General Public License, version 3. This is the + executable built from code in racket/src/racket. -There may also be other licenses for code withing the Racket -distribution with which you must comply. Some of them are listed -below. + * The Racket-on-Chez executable includes code distributed under the + Apache version 2.0 license, in particular Chez Scheme. + +These distinctions apply to the `racket` executable, not to Racket +source code and documentation in this repository. + +See the file racket/src/LICENSE-LGPL.txt for the full text of the GNU +Lesser General Public License. + +See the file racket/src/LICENSE-APACHE.txt for the full text of the +Apache version 2.0 license. + +See the file racket/src/LICENSE-MIT.txt for the full text of the +MIT license. + +Additionally, the default mode of building Racket will install other +packages, which are distributed under their own license. In the +default mode, all of those packages are distributed under the licenses +listed above. + +There may also be other licenses for code within this repository with +which you must comply. Some of them are listed below. + +The following are used in all Racket executables: + +* mbed TLS. Code from mbed TLS can be found in + racket/src/rktio/rktio_sha2.c. mbed TLS is licensed under the Apache + v2.0 License. + +The following are used only in the traditional Racket executable: * libscheme. Code from libscheme can be found in racket/src/racket. See the file racket/src/LICENSE-libscheme.txt. @@ -44,17 +68,19 @@ below. * install. Code from install can be found in racket/src/lt/install-sh and is distributed under the MIT license. +* MemoryModule. Code from MemoryModule can be found in + racket/src/start/MemoryModule.c. MemoryModule is distributed under + the MPL v2.0. + +The following are used only in benchmarks, and are not part of the +standard Racket distribution: + * psyntax. Code from psyntax can be found in pkgs/racket-benchmarks/tests/racket/benchmarks/common/psyntax.sch + and is distributed under the Apache v2.0 License. * SCM. Code from SCM can be found in pkgs/racket-benchmarks/tests/racket/benchmarks/shootout/pidigits1.rkt SCM is available under the LGPL. -* MemoryModule. Code from MemoryModule can be found in - racket/src/start/MemoryModule.c. MemoryModule is distributed under - the MPL v2.0. -* mbed TLS. Code from mbed TLS can be found in - racket/src/rktio/rktio_sha2.c. mbed TLS is licensed under the Apache - v2.0 License. diff --git a/README.md b/README.md index 64a1d984c2..d9f7308b4e 100644 --- a/README.md +++ b/README.md @@ -34,10 +34,9 @@ joining the [development mailing list](https://lists.racket-lang.org), or visiting the IRC or Slack channels. By making a contribution, you are agreeing that your contribution is -licensed under the LGPLv3, Apache 2.0, and MIT licenses. Those +licensed under the Apache 2.0 and MIT licenses. Those licenses are available in this repository in the files -[LICENSE-LGPL.txt](racket/src/LICENSE-LGPL.txt), -[LICENSE-APACHE.txt](racket/src/LICENSE-APACHE.txt), and +[LICENSE-APACHE.txt](racket/src/LICENSE-APACHE.txt) and [LICENSE-MIT.txt](racket/src/LICENSE-MIT.txt). License diff --git a/racket/src/LICENSE.txt b/racket/src/LICENSE.txt index 1b9105a2f3..e5462107e2 100644 --- a/racket/src/LICENSE.txt +++ b/racket/src/LICENSE.txt @@ -1,22 +1,47 @@ -Racket is distributed under the GNU Lesser General Public License -(LGPL) version 3. This implies that you may link Racket into -proprietary applications, provided you follow the rules stated in the -LGPL. You can also modify Racket; if you distribute a modified -version, you must distribute it under the terms of the LGPL, which in -particular states that you must release the source code for the -modified software. +Racket is distributed under the MIT license and the Apache version 2.0 +license, at your option. However, Racket relies on some components +distributed under other licenses. In short: -See the file LICENSE-LGPL.txt for the full text of the license. + * The traditional Racket executable includes code distributed under + the GNU Lesser General Public License, version 3. This is the + executable built from code in the `racket` subdirectory. -There may also be other licenses for code withing the Racket -distribution with which you must comply. Some of them are listed -below. + * The Racket-on-Chez executable includes code distributed under the + Apache version 2.0 license, in particular Chez Scheme. + +These distinctions apply to the `racket` executable, not to Racket +source code and documentation in this repository. + +See the file LICENSE-LGPL.txt for the full text of the GNU +Lesser General Public License. + +See the file LICENSE-APACHE.txt for the full text of the +Apache version 2.0 license. + +See the file LICENSE-MIT.txt for the full text of the +MIT license. + +Additionally, the default mode of building Racket will install other +packages, which are distributed under their own license. In the +default mode, all of those packages are distributed under the licenses +listed above. + +There may also be other licenses for code within this repository with +which you must comply. Some of them are listed below. + +The following are used in all Racket executables: + +* mbed TLS. Code from mbed TLS can be found in + rktio/rktio_sha2.c. mbed TLS is licensed under the Apache + v2.0 License. + +The following are used only in the traditional Racket executable: * libscheme. Code from libscheme can be found in - racket/src/racket. See the file LICENSE-libscheme.txt. + racket. See the file LICENSE-libscheme.txt * GNU Lightning. Code from GNU Lightning can be found in - racket/src/racket/src. GNU Lightning is distributed under the GNU + racket/src. GNU Lightning is distributed under the GNU Lesser General Public License version 3. * GMP. Code from GMP can be found in racket/src. The @@ -31,22 +56,18 @@ below. racket/racket/collects/file/{gzip,gunzip}.rkt. Zlib is distributed under a liberal license, see http://zlib.net/. -* libffi. Code from libffi can be found in foreign/libffi. See - foreign/libffi/LICENSE. +* libffi. Code from libffi can be found in foreign/libffi. + See foreign/libffi/LICENSE. -* libunwind. Code from libunwind can be found in racket/src/unwind. +* libunwind. Code from libunwind can be found in + unwind. -* random.c. Code from random.c from FreeBSD 2.2 found in random.inc. +* random.c. Code from random.c from FreeBSD 2.2 found in + random.inc. -* install. Code from install can be found in lt/install-sh and is - distributed under the MIT license. - -* psyntax. Code from psyntax can be found in - pkgs/racket-benchmarks/tests/racket/benchmarks/common/psyntax.sch +* install. Code from install can be found in lt/install-sh + and is distributed under the MIT license. * MemoryModule. Code from MemoryModule can be found in - start/MemoryModule.c. MemoryModule is distributed under the MPL - v2.0. - -* mbed TLS. Code from mbed TLS can be found in rktio/rktio_sha2.c. - mbed TLS is licensed under the Apache v2.0 License. + start/MemoryModule.c. MemoryModule is distributed under + the MPL v2.0.