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