GNU Lesser General Public License¶
GNU Lesser General Public License (LGPL) — это лицензия на свободное и открытое программное обеспечение, разработанная Проектом GNU. Она представляет собой ослабленную (менее строгую) версию GNU General Public License (GPL), предназначенную в первую очередь для библиотек и программных компонентов, которые могут быть включены в проприетарные (несвободные) программы без требования раскрывать исходный код всего производного произведения. LGPL предоставляет пользователям те же основные свободы, что и GPL (использовать, изучать, изменять и распространять программу), но с более мягкими условиями копирования для случаев, когда программа используется в качестве библиотеки.
¶История
Лицензия LGPL была создана в ответ на практические проблемы, возникшие при лицензировании библиотек под стандартной GPL. В начале 1990-х годов разработчики свободного программного обеспечения заметили, что многие проприетарные компании не хотят использовать библиотеки, распространяемые под GPL, так как это потребовало бы раскрытия исходного кода их собственных проприетарных приложений. Это создавало препятствия для распространения свободных библиотек и их внедрения в индустрии.
Первая версия LGPL была опубликована Фондом свободного программного обеспечения (FSF) в 1991 году под названием GNU Library General Public License. Название было выбрано, чтобы подчеркнуть, что лицензия предназначена именно для библиотек. Однако со временем выяснилось, что LGPL может быть полезна и для других типов программ, не являющихся библиотеками, но предназначенных для интеграции с проприетарным кодом. В 1999 году вышла вторая версия (LGPL v2.1), которая была переименована в GNU Lesser General Public License. Слово «Lesser» (меньший, ослабленный) было выбрано, чтобы подчеркнуть, что лицензия предоставляет меньше защиты свободы пользователя, чем GPL, но при этом остаётся лицензией свободного ПО.
В 2007 году, одновременно с выходом GPL v3, была опубликована версия LGPL v3. Она была обновлена для совместимости с GPL v3 и включила новые положения, касающиеся патентов, управления цифровыми правами (DRM) и совместимости с другими лицензиями.
¶Отличия от GPL
Основное различие между LGPL и GPL заключается в условиях распространения производных произведений, когда лицензированный компонент используется в виде библиотеки.
¶GPL (GNU General Public License)
- Копилефт: Если программа распространяется как часть более крупного произведения (производного произведения), всё произведение в целом должно распространяться под GPL.
- Требование раскрытия кода: Любой, кто получает исполняемый файл GPL-программы, имеет право получить полный исходный код всей программы, включая любые изменения и связанные компоненты, которые являются частью того же производного произведения.
- Эффект заражения: GPL-код «заражает» всё произведение, делая его полностью свободным.
¶LGPL (GNU Lesser General Public License)
- Ослабленный копилефт: Если LGPL-программа используется в качестве библиотеки, то проприетарная программа, которая её вызывает (например, через динамическое связывание), может распространяться под любой лицензией, включая проприетарные.
- Условия для модификации: Если пользователь модифицирует саму LGPL-библиотеку, то модифицированная версия библиотеки должна распространяться под LGPL. Однако проприетарная программа, использующая эту модифицированную библиотеку, может оставаться проприетарной, если пользователь может заменить модифицированную библиотеку обратно на оригинальную (например, через динамическое связывание).
- Требование раскрытия кода для библиотеки: Исходный код самой библиотеки (включая любые модификации) должен быть доступен. Проприетарный код, использующий библиотеку, раскрывать не требуется.
¶Основные положения LGPL v3
LGPL v3, как и GPL v3, включает несколько ключевых разделов, направленных на защиту прав пользователей и разработчиков.
¶Определение «основного произведения» и «библиотеки»
Лицензия определяет «Основное произведение» (Corresponding Source) — это полный исходный код, необходимый для сборки, установки и запуска модифицированных версий программы. Для библиотек LGPL v3 вводит понятие «Использование библиотеки» (Use of the Library), которое включает динамическое связывание, статическое связывание и другие формы интеграции.
¶Условия для проприетарных программ
Если проприетарная программа использует LGPL-библиотеку, она должна соответствовать одному из следующих условий:
- Динамическое связывание: Программа должна быть скомпонована таким образом, чтобы пользователь мог заменить LGPL-библиотеку на модифицированную версию (например, через LD_LIBRARY_PATH в Unix-системах).
- Предоставление исходного кода библиотеки: Разработчик проприетарной программы должен предоставить исходный код LGPL-библиотеки (включая любые изменения) вместе с исполняемым файлом.
- Использование в качестве «шапки»: Если программа использует только заголовочные файлы библиотеки (header-only) или статически связывается с ней, то применяются более строгие правила, аналогичные GPL.
¶Патентная защита
LGPL v3, следуя GPL v3, включает явные положения о патентах. Лицензия предоставляет пользователям неявную патентную лицензию от всех участников, распространяющих код. Если участник подаёт патентный иск против пользователя, его права на распространение кода аннулируются.
¶Совместимость с GPL
LGPL v3 совместима с GPL v3. Это означает, что код, распространяемый под LGPL v3, может быть включён в проект, распространяемый под GPL v3, без нарушения условий лицензий. Однако LGPL v2.1 несовместима с GPL v3, если только не используется специальное исключение.
¶Применение
LGPL широко используется в проектах, где разработчики хотят, чтобы их библиотеки были доступны как для свободных, так и для проприетарных программ. Это позволяет увеличить распространение библиотеки и её влияние на индустрию.
¶Примеры известных проектов под LGPL
- GTK (GIMP Toolkit) — кроссплатформенная библиотека для создания графических интерфейсов. Используется в GNOME, GIMP и многих других свободных программах, а также может быть использована в проприетарных приложениях.
- Qt (до версии 4.5) — после смены лицензионной политики, Qt распространяется под LGPL v3 (а также под коммерческой лицензией). Это позволяет использовать Qt в проприетарных программах.
- GNU C Library (glibc) — основная библиотека языка C в GNU/Linux-системах. Распространяется под LGPL v2.1.
- LibreOffice — часть кода LibreOffice распространяется под LGPL, что позволяет использовать его в других проектах.
- FFmpeg — библиотеки для обработки мультимедиа. Часть компонентов распространяется под LGPL.
¶Критика
LGPL подвергается критике с двух сторон.
¶Со стороны сторонников строгого копилефта
Некоторые активисты свободного ПО, включая Ричарда Столлмана, считают LGPL компромиссом, который ослабляет защиту свободы пользователей. Они утверждают, что LGPL позволяет проприетарным компаниям использовать свободные библиотеки, не раскрывая свой код, что противоречит духу GNU. Сам Столлман в своё время рекомендовал использовать GPL вместо LGPL, если это возможно, и называл LGPL «меньшим злом».
¶Со стороны проприетарных разработчиков
Некоторые проприетарные компании критикуют LGPL за то, что она всё же накладывает определённые обязательства (например, необходимость предоставления исходного кода библиотеки и возможность её замены). Это может усложнить распространение программного обеспечения, особенно на платформах, где динамическое связывание затруднено (например, на iOS).
¶Интересные факты
- Название «Lesser» (меньший) было выбрано не случайно. FSF хотела подчеркнуть, что эта лицензия предоставляет меньше свободы, чем GPL, но при этом остаётся лицензией свободного ПО.
- Существует также GNU Affero General Public License (AGPL), которая является ещё более строгой версией GPL, предназначенной для программ, работающих в сети (SaaS). LGPL, напротив, является самой мягкой из трёх основных лицензий GNU.
- В некоторых проектах, таких как Mozilla Firefox, используется Mozilla Public License (MPL), которая по своей сути похожа на LGPL, но имеет свои особенности.
¶Источники
- Free Software Foundation. GNU Lesser General Public License, version 3. (2007).
- Free Software Foundation. GNU Lesser General Public License, version 2.1. (1999).
- Stallman, R. Why you shouldn't use the Lesser GPL for your next library. (1999).
- GNU Project. Frequently Asked Questions about the GNU Licenses.
- Open Source Initiative. The LGPL License.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

