GNU Lesser General Public License

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Lesser General Public License»)
Перейти к: навигация, поиск
GNU Lesser General Public License
LGPLv3 Logo.svg
Логотип
Автор

Фонд свободного программного обеспечения

Версия

3 (2007-07-24; 3653 дня тому назад)

Опубликована

1991-07-24; 9497 дней тому назад

Совместима с DFSG

Да

Одобрена OSI

Да

Совместима с GPL

Да

Копилефт

Да

Позволяет коду под другой лицензией линковаться

Да

GNU Lesser General Public License (LGPL) - это лицензия свободного программного обеспечения за авторством Free Software Foundation (FSF). Лицензия позволяет разработчикам и предприятиям использовать и внедрять программное обеспечение, лицензированное на условиях LGPL в их собственном (даже проприетарном) программном обеспечении, при этом отсутствует обязательное требование предоставления исходного кода собственных компонентов под копилефт лицензией. Необходимым условием лицензии является только возможность модифицировать программное обеспечение, лицензируемое под LGPL, конечными пользователям, предоставляя им для этого исходный код. В проприетарном программном обеспечении, код под лицензией LGPL обычно используется в форме разделяемой библиотеки, так что существует четкое разделение между проприетарными компонентами и LGPL компонентами. LGPL в основном используется библиотеками программного обеспечения, впрочем она также используется некоторыми автономными приложениями. Ранее лицензия называлась GNU Library General Public License и была впервые опубликована в 1991, номер версии 2 был взят для сходства с лицензией GPL версии 2. LGPL претерпела незначительные изменения в версии 2.1, выпущенной в 1999, тогда же была переименована из GNU Lesser General Public License для отражения позиции FSF, который считал, что лицензия применима не для всех библиотек. Версия 3 LGPL вышла в 2007 в виде расширяющего GPL версии 3 списка дополнительных разрешений.

LGPL разработана как компромисс между строгой копилефт лицензией GNU General Public License (GPL) и более разрешительными лицензиями, такими как лицензии BSD и лицензия MIT. Слово "Lesser" в названии указывает, что LGPL не гарантирует конечному пользователю полную свободу использовать программное обеспечение как угодно; она гарантирует свободу изменения тех его компонентов, которые лицензированы под LGPL, но не проприетарных компонентов.

История[править | править вики-текст]

Ранее лицензия называлась GNU Library General Public License и была впервые опубликована в 1991, номер версии 2 был взят для сходства с лицензией GPL версии 2. LGPL претерпела незначительные изменения в версии 2.1, выпущенной в 1999, тогда же была переименована из GNU Lesser General Public License для отражения позиции FSF, который считал, что лицензия применима не для всех библиотек. Версия 3 LGPL вышла в 2007 в виде расширяющего GPL версии 3 списка дополнительных разрешений.

Отличия от GPL[править | править вики-текст]

Главное отличие GPL от LGPL в том что последняя позволяет лицензируемой под ней работе линковаться (в случае библиотеки, "использоваться") с не-(L)GPL программным обеспечением, вне зависимости от того, свободное это программное обеспечение или проприетарное.[1] Не-(L)GPL программное обеспечение затем может распространяться под любыми условиями, если не является производной работой вышеупомянутого ПО. Если это не так, программное обеспечение должно позволять "модификацию конечным пользователем для целей использования данного программного обеспечения, а также обратную разработку для отладки внесенных изменений." Впрочем, лицензия устанавливает это юридическое требование вне зависимости от того, является ли программное обеспечение под лицензией LGPL производной работой или нет. Автономный исполнимый модуль, динамически линкующийся с библиотекой путем .so, .dll, или схожим способом является приемлемым и не является производной работой, это определено в LGPL. Он характеризуется определением "работы, которая использует библиотеку". В параграфе 5 LGPL версии 2.1 указано:

A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

По существу, если это "работа, которая использует библиотеку", тогда должна быть возможность линковки программного обеспечения с новой версией продукта, лицензируемого под LGPL. Самый часто используемый метод это сделать это использовать "подходящий механизм разделяемых библиотек для линковки". В качестве альтернативы разрешена статическая линковка если предоставлен исходный код или объектные файлы для линковки.[2]

Совместимость[править | править вики-текст]

Одним из прав, предоставляемых LGPL является право перелицензирования под лицензией GPL любой части программного обеспечения, полученного на условиях LGPL (смотрите секцию 3 LGPL версии 2.1, и секцию 2 опцию b LGPL версии 3). Это право позволяет прямое использование кода под LGPL в библиотеках и приложениях под лицензией GPL.

Версия 3 LGPL не является автоматически совместимой с версией 2 GPL. Тем не менее работы, использующие последнюю, с разрешением использовать более позднюю версию GPL, совместимы:[3] работа, лицензируемая под GPLv2 "и более поздними" может быть совмещена с кодом под лицензией LGPL версии 3, получившаяся работа подпадает под условия лицензии GPLv3.[4]

LGPL для библиотек[править | править вики-текст]

Раннее имя "GNU Library General Public License" создавало впечатление что рекомендуемые FSF библиотеки используют LGPL а программное обеспечение GPL. В феврале 1999, лидер проекта GNU Ричард Столлман написал эссе Почему вы не должны использовать Lesser GPL в вашей следующей библиотеке объяснив что LGPL не была объявлена неподдерживаемой, но что она не обязательно непременно использовать LGPL для всех библиотек:

Which license is best for a given library is a matter of strategy... Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it... When a free library's features are readily available for proprietary software through other alternative libraries... the library cannot give free software any particular advantage, so it is better to use the Lesser GPL for that library.[1]

Столлман и FSF, мысля стратегически, временами отстаивают использование даже менее ограничивающих чем LGPL лицензий. Ярким примером является поддержка Столлмана использования лицензий BSD проектом Vorbis в своих библиотеках.[5]

Спецификации языков программирования[править | править вики-текст]

Лицензия использует терминологию, применимую в основном в приложениях, написанных на C и языках его семейства. Franz Inc. опубликовало собственное введение в лицензию для разъяснения терминологии в контексте Lisp. На LGPL с этой преамбулой иногда ссылаются как LLGPL.[6]

В дополнение к этому, Ada имеется специальная возможность, generics, которая предлагает использовать GNAT Modified General Public License: она позволяет коду линковаться c или создавать экземпляры компонентов, покрываемых лицензией GMGPL без покрытия кода лицензией GPL.

Наследование классов[править | править вики-текст]

Поднялось некоторое беспокойство по поводу возможности наследовать классы объектно-ориентированного программирования из программного обеспечения по лицензии LGPL в программном обеспечении в не-(L)GPL коде. Разъяснение дано на официальном сайте GNU:

The LGPL does not contain special provisions for inheritance, because none are needed. Inheritance creates derivative works in the same way as traditional linking, and the LGPL permits this type of derivative work in the same way as it permits ordinary function calls.[7]

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]

Внешние ссылки[править | править вики-текст]