From: Bruno H. <br...@cl...> - 2004-09-15 15:14:22
|
Sam wrote: > Note that he made a specific exception in the COPYRIGHT file: code which > replies on ANSI CL and some "standard extensions", i.e., which "would as > well run in any other Common Lisp implementation", is not covered by the > CLISP GPL. > > My CLOCC/PORT replies on many non-standard extensions, and Bruno > specifically encouraged me to release it under LGPL, as opposed to GPL. Yes. The idea is that when some code supports a number of CL implementations, it can reasonably be considered independent work of CLISP. > This suggests that there is another, implicit, exception to the > COPYRIGHT: that compatibility packages whose main purpose is to allow > portable software may be released under a Free license laxer than GPL > and still use CLISP internals. > > E.g., if I write a program which relies on CLISP FFI, the program is > GPL. If, OTOH, I write a compatibility layer which will allow my > program to run on other FFIs too, then only the compatibility layer must > be free and the program itself may be released under a proprietary > license. Yes, this is my understanding of clisp's COPYRIGHT file, and it matches the goal of promoting portable Lisp programs. However, the C part of your module, even if it is loaded via the compatibility layer, must still be free (i.e. come with source and Makefile). The reason for this is 1. otherwise clisp would be too much LGPL, 2. users need to be free to fix bugs when foreign C code makes clisp crash. > Bruno, could you please clarify this matter here and in clisp/COPYRIGHT > file? OK. Here's the new text: This copyright does *not* cover user programs that run in CLISP and third-party packages not part of CLISP, if a) They only reference external symbols in CLISP's public packages (namely the packages COMMON-LISP, COMMON-LISP-USER, KEYWORD, EXT), i.e. if they don't rely on CLISP internals and would as well run in any other Common Lisp implementation. Or b) They only reference external symbols in CLISP's public packages (namely the packages COMMON-LISP, COMMON-LISP-USER, KEYWORD, EXT) and some external, not CLISP specific, symbols in third-party packages that are released with source code under a GPL compatible license and that run in a great number of Common Lisp implementations, i.e. if they rely on CLISP internals only to the extent needed for gaining some functionality also available in a great number of Common Lisp implementations. Such user programs are not covered by the term "derived work" used in the GNU GPL. Neither is their compiled code, i.e. the result of compiling them by use of the function COMPILE-FILE. We refer to such user programs as "independent work". ... Foreign non-Lisp code that is linked with CLISP or loaded into CLISP through dynamic linking is not exempted from this copyright. I.e. such code, when distributed for use with CLISP, must be distributed under the GPL. Bruno |