code.gitea.io/gitea@v1.21.7/options/license/LLGPL (about)

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