| http://opensource.franz.com/preamble.html |
| |
| Preamble to the Gnu Lesser General Public License |
| |
| Copyright (c) 2000 Franz Incorporated, Berkeley, CA 94704 |
| |
| The concept of the GNU Lesser General Public License version 2.1 |
| ("LGPL") has been adopted to govern the use and distribution of |
| above-mentioned application. However, the LGPL uses terminology that |
| is more appropriate for a program written in C than one written in |
| Lisp. Nevertheless, the LGPL can still be applied to a Lisp program if |
| certain clarifications are made. This document details those |
| clarifications. Accordingly, the license for the open-source Lisp |
| applications consists of this document plus the LGPL. Wherever there |
| is a conflict between this document and the LGPL, this document takes |
| precedence over the LGPL. |
| |
| A "Library" in Lisp is a collection of Lisp functions, data and |
| foreign modules. The form of the Library can be Lisp source code (for |
| processing by an interpreter) or object code (usually the result of |
| compilation of source code or built with some other |
| mechanisms). Foreign modules are object code in a form that can be |
| linked into a Lisp executable. When we speak of functions we do so in |
| the most general way to include, in addition, methods and unnamed |
| functions. Lisp "data" is also a general term that includes the data |
| structures resulting from defining Lisp classes. A Lisp application |
| may include the same set of Lisp objects as does a Library, but this |
| does not mean that the application is necessarily a "work based on the |
| Library" it contains. |
| |
| The Library consists of everything in the distribution file set before |
| any modifications are made to the files. If any of the functions or |
| classes in the Library are redefined in other files, then those |
| redefinitions ARE considered a work based on the Library. If |
| additional methods are added to generic functions in the Library, |
| those additional methods are NOT considered a work based on the |
| Library. If Library classes are subclassed, these subclasses are NOT |
| considered a work based on the Library. If the Library is modified to |
| explicitly call other functions that are neither part of Lisp itself |
| nor an available add-on module to Lisp, then the functions called by |
| the modified Library ARE considered a work based on the Library. The |
| goal is to ensure that the Library will compile and run without |
| getting undefined function errors. |
| |
| It is permitted to add proprietary source code to the Library, but it |
| must be done in a way such that the Library will still run without |
| that proprietary code present. Section 5 of the LGPL distinguishes |
| between the case of a library being dynamically linked at runtime and |
| one being statically linked at build time. Section 5 of the LGPL |
| states that the former results in an executable that is a "work that |
| uses the Library." Section 5 of the LGPL states that the latter |
| results in one that is a "derivative of the Library", which is |
| therefore covered by the LGPL. Since Lisp only offers one choice, |
| which is to link the Library into an executable at build time, we |
| declare that, for the purpose applying the LGPL to the Library, an |
| executable that results from linking a "work that uses the Library" |
| with the Library is considered a "work that uses the Library" and is |
| therefore NOT covered by the LGPL. |
| |
| Because of this declaration, section 6 of LGPL is not applicable to |
| the Library. However, in connection with each distribution of this |
| executable, you must also deliver, in accordance with the terms and |
| conditions of the LGPL, the source code of Library (or your derivative |
| thereof) that is incorporated into this executable. |
| |
| End of Document |