{
  "key": "llgpl",
  "short_name": "LLGPL",
  "name": "Lisp Lesser General Public License (LLPGL)",
  "category": "Copyleft Limited",
  "owner": "Franz Inc",
  "homepage_url": "http://opensource.franz.com/preamble.html",
  "is_exception": true,
  "spdx_license_key": "LLGPL",
  "other_spdx_license_keys": [
    "LicenseRef-scancode-llgpl"
  ],
  "faq_url": "http://opensource.franz.com/",
  "other_urls": [
    "http://www.gnu.org/licenses/lgpl-2.1.txt",
    "https://github.com/franzinc"
  ],
  "text": "The concept of the GNU Lesser General Public License version 2.1\n(\"LGPL\") has been adopted to govern the use and distribution of above-\nmentioned application. However, the LGPL uses terminology that is more\nappropriate for a program written in C than one written in Lisp.\nNevertheless, the LGPL can still be applied to a Lisp program if certain\nclarifications are made. This document details those clarifications.\nAccordingly, the license for the open-source Lisp applications consists\nof this document plus the LGPL. Wherever there is a conflict between\nthis document and the LGPL, this document takes precedence over the\nLGPL.\n\nA \"Library\" in Lisp is a collection of Lisp functions, data and foreign\nmodules. The form of the Library can be Lisp source code (for processing\nby an interpreter) or object code (usually the result of compilation of\nsource code or built with some other mechanisms). Foreign modules are\nobject code in a form that can be linked into a Lisp executable. When we\nspeak of functions we do so in the most general way to include, in\naddition, methods and unnamed functions. Lisp \"data\" is also a general\nterm that includes the data structures resulting from defining Lisp\nclasses. A Lisp application may include the same set of Lisp objects as\ndoes a Library, but this does not mean that the application is\nnecessarily a \"work based on the Library\" it contains.\n\nThe Library consists of everything in the distribution file set before\nany modifications are made to the files. If any of the functions or\nclasses in the Library are redefined in other files, then those\nredefinitions ARE considered a work based on the Library. If additional\nmethods are added to generic functions in the Library, those additional\nmethods are NOT considered a work based on the Library. If Library\nclasses are subclassed, these subclasses are NOT considered a work based\non the Library. If the Library is modified to explicitly call other\nfunctions that are neither part of Lisp itself nor an available add-on\nmodule to Lisp, then the functions called by the modified Library ARE\nconsidered a work based on the Library. The goal is to ensure that the\nLibrary will compile and run without getting undefined function errors.\n\nIt is permitted to add proprietary source code to the Library, but it\nmust be done in a way such that the Library will still run without that\nproprietary code present. Section 5 of the LGPL distinguishes between\nthe case of a library being dynamically linked at runtime and one being\nstatically linked at build time. Section 5 of the LGPL states that the\nformer results in an executable that is a \"work that uses the Library.\"\nSection 5 of the LGPL states that the latter results in one that is a\n\"derivative of the Library\", which is therefore covered by the LGPL.\nSince Lisp only offers one choice, which is to link the Library into an\nexecutable at build time, we declare that, for the purpose applying the\nLGPL to the Library, an executable that results from linking a \"work\nthat uses the Library\" with the Library is considered a \"work that uses\nthe Library\" and is therefore NOT covered by the LGPL.\n\nBecause of this declaration, section 6 of LGPL is not applicable to the\nLibrary. However, in connection with each distribution of this\nexecutable, you must also deliver, in accordance with the terms and\nconditions of the LGPL, the source code of Library (or your derivative\nthereof) that is incorporated into this executable."
}