57 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| Preamble to the Gnu Lesser General Public License
 | |
| 
 | |
| Copyright (c) 2016 Franz Inc., 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.
 |