• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1r#"Preamble to the Gnu Lesser General Public License
2
3Copyright (c) 2016 Franz Inc., Berkeley, CA 94704
4
5The concept of the GNU Lesser General Public License version 2.1 ("LGPL")
6has been adopted to govern the use and distribution of above-mentioned
7application. However, the LGPL uses terminology that is more appropriate
8for a program written in C than one written in Lisp. Nevertheless, the
9LGPL can still be applied to a Lisp program if certain clarifications
10are made. This document details those clarifications. Accordingly, the
11license for the open-source Lisp applications consists of this document
12plus the LGPL. Wherever there is a conflict between this document and
13the LGPL, this document takes precedence over the LGPL.
14
15A "Library" in Lisp is a collection of Lisp functions, data and foreign
16modules. The form of the Library can be Lisp source code (for processing
17by an interpreter) or object code (usually the result of compilation of
18source code or built with some other mechanisms). Foreign modules are
19object code in a form that can be linked into a Lisp executable. When
20we speak of functions we do so in the most general way to include, in
21addition, methods and unnamed functions. Lisp "data" is also a general
22term that includes the data structures resulting from defining Lisp
23classes. A Lisp application may include the same set of Lisp objects
24as does a Library, but this does not mean that the application is
25necessarily a "work based on the Library" it contains.
26
27The Library consists of everything in the distribution file set before
28any modifications are made to the files. If any of the functions or
29classes in the Library are redefined in other files, then those
30redefinitions ARE considered a work based on the Library. If additional
31methods are added to generic functions in the Library, those additional
32methods are NOT considered a work based on the Library. If Library classes
33are subclassed, these subclasses are NOT considered a work based on the Library.
34If the Library is modified to explicitly call other functions that are neither
35part of Lisp itself nor an available add-on module to Lisp, then the functions
36called by the modified Library ARE considered a work based on the Library.
37The goal is to ensure that the Library will compile and run without getting
38undefined function errors.
39
40It is permitted to add proprietary source code to the Library, but it must
41be done in a way such that the Library will still run without that proprietary
42code present. Section 5 of the LGPL distinguishes between the case of a
43library being dynamically linked at runtime and one being statically linked
44at build time. Section 5 of the LGPL states that the former results in an
45executable that is a "work that uses the Library." Section 5 of the LGPL
46states that the latter results in one that is a "derivative of the Library",
47which is therefore covered by the LGPL. Since Lisp only offers one choice,
48which is to link the Library into an executable at build time, we declare that,
49for the purpose applying the LGPL to the Library, an executable that results
50from linking a "work that uses the Library" with the Library is considered a
51"work that uses the Library" and is therefore NOT covered by the LGPL.
52
53Because of this declaration, section 6 of LGPL is not applicable to the Library.
54However, in connection with each distribution of this executable, you must also
55deliver, in accordance with the terms and conditions of the LGPL, the source code
56of Library (or your derivative thereof) that is incorporated into this executable.
57"#