Preamble to the Gnu Lesser General Public License

Copyright (c) 2000 Franz Incorporated, Berkeley, CA 94704

Franz Inc. has adopted the concept of the GNU Lesser General Public License
version 2.1 ("LGPL") to govern the use and distribution of AllegroServe.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.


