Стандартная общественная лицензия ограниченного применения
Стандартная общественная лицензия ограниченного применения (англ. GNU Lesser General Public License, LGPL) — это тип лицензии на свободное и открытое программное обеспечение (СПО), разработанный Фондом свободного программного обеспечения (Free Software Foundation, FSF). LGPL является производной от Стандартной общественной лицензии GNU (GNU GPL) и предоставляет более мягкие условия для связывания лицензированного кода с проприетарным (закрытым) программным обеспечением. Основная цель LGPL — поощрять использование свободных библиотек в коммерческих проектах, не требуя при этом открытия всего исходного кода программы, использующей библиотеку.
История
Предпосылки создания
В начале 1990-х годов, после успеха GNU GPL (версия 2, 1991 год), возникла проблема: библиотеки, распространяемые под GPL, не могли использоваться в проприетарных приложениях без того, чтобы всё приложение не становилось свободным. Это ограничивало распространение свободных библиотек, так как разработчики коммерческого ПО избегали их использования. В ответ на это FSF разработал LGPL, первоначально названную «Library General Public License» (Лицензия для библиотек GNU).
Версии
- LGPL v2.0 (1991 год): первая версия, созданная для библиотек. Позволяла связывание с проприетарным кодом при условии, что пользователь может модифицировать библиотеку и перекомпилировать её.
- LGPL v2.1 (1999 год): переименована в «Lesser General Public License» (Общественная лицензия ограниченного применения), чтобы подчеркнуть, что она не является универсальной, а предназначена для особых случаев. Внесены уточнения по динамическому и статическому связыванию.
- LGPL v3 (2007 год): выпущена одновременно с GPL v3. Включает положения о патентах, защите от тивоизации (ограничений на модификацию встраиваемых устройств) и совместимости с другими лицензиями.
Классификация и отличия от GPL
Основные различия
LGPL является более «слабой» (англ. weak copyleft) лицензией по сравнению с GPL. Ключевые отличия:
- GPL: если программа включает GPL-код, всё производное произведение (включая любую часть, связанную с ней) должно распространяться под GPL. Это называется «сильным копилефтом».
- LGPL: если программа использует LGPL-библиотеку, то сама библиотека остаётся под LGPL, а остальная часть программы может распространяться под любой лицензией, включая проприетарные, при условии соблюдения определённых условий.
Условия для проприетарного использования
Чтобы использовать LGPL-библиотеку в проприетарном проекте, разработчик должен:
- Предоставить пользователю возможность получить исходный код библиотеки (например, в виде отдельного файла).
- Обеспечить возможность модификации библиотеки и её замены на модифицированную версию (например, через динамическое связывание).
- Включить уведомление о лицензии LGPL в документацию или интерфейс программы.
Устройство и правовые аспекты
Структура лицензии
LGPL состоит из преамбулы, 19 разделов (в версии 3) и приложений. Основные положения:
- Раздел 0: определения (например, «производное произведение», «библиотека», «соответствующий исходный код»).
- Раздел 1–3: условия распространения неизменённой библиотеки, модифицированных версий и программ, использующих библиотеку.
- Раздел 4–7: положения о патентах, защите от тивоизации и совместимости с другими лицензиями.
- Раздел 8–19: общие положения (отказ от гарантий, юрисдикция, переходные нормы).
Связывание и распространение
LGPL различает три типа использования:
- Динамическое связывание (англ. dynamic linking): библиотека загружается во время выполнения. Это считается «использованием», а не «производным произведением», поэтому проприетарный код может оставаться закрытым.
- Статическое связывание (англ. static linking): библиотека включается в исполняемый файл на этапе компиляции. Это считается производным произведением, и для такого случая LGPL v2.1 требует, чтобы пользователь мог получить объектный код библиотеки или перекомпилировать программу с модифицированной библиотекой. LGPL v3 смягчает это требование, допуская статическое связывание при предоставлении исходного кода библиотеки.
- Модификация библиотеки: если разработчик вносит изменения в саму библиотеку, то модифицированная версия должна распространяться под LGPL, а изменения — быть доступными.
Применение
Типичные случаи
LGPL чаще всего используется для библиотек (включая системные, графические, математические), которые разработчики хотят сделать доступными для широкого круга, включая коммерческие проекты. Примеры:
- GNU C Library (glibc): одна из ключевых библиотек для Linux, распространяется под LGPL v2.1.
- GTK (GIMP Toolkit): библиотека для создания графических интерфейсов, используемая в GNOME и многих приложениях, распространяется под LGPL v2.1.
- Qt (до версии 4.5): библиотека для разработки кроссплатформенных приложений, ранее распространялась под LGPL, что позволило ей стать популярной в коммерческой среде.
- Java библиотеки (например, Apache Commons): некоторые библиотеки Apache используют LGPL.
Исключения и специальные случаи
FSF рекомендует использовать LGPL только для библиотек, а для приложений — GPL. В некоторых случаях разработчики выбирают LGPL для программ, которые должны быть интегрированы в проприетарные системы (например, драйверы, плагины).
Критика и ограничения
Споры о «слабости» копилефта
Критики LGPL (включая Ричарда Столлмана, основателя FSF) отмечают, что LGPL позволяет компаниям использовать свободные библиотеки без внесения вклада в сообщество. Например, проприетарное приложение может использовать LGPL-библиотеку, но не открывать свой код, что противоречит духу свободного ПО. Столлман называл LGPL «компромиссом», а не идеалом.
Сложность соблюдения
LGPL v3, как и GPL v3, содержит сложные положения о патентах и тивоизации, что может отпугивать разработчиков. Кроме того, требования по предоставлению исходного кода библиотеки при статическом связывании часто нарушаются из-за непонимания разработчиками.
Альтернативы
- MIT License: полностью свободная лицензия, не требующая открытия кода и не имеющая копилефта. Используется для библиотек, где важна максимальная совместимость.
- Apache License 2.0: также свободная, но с защитой от патентных исков. Часто используется в корпоративной среде.
- BSD License: аналогична MIT, но с разными вариантами (2-клаузульная, 3-клаузульная).
Интересные факты
- LGPL была первой лицензией, которая ввела термин «слабое копилефт» (англ. weak copyleft), впоследствии использованный в других лицензиях, таких как Mozilla Public License (MPL) и Eclipse Public License (EPL).
- В 2007 году, при выпуске LGPL v3, FSF провёл масштабное обсуждение с сообществом, в котором участвовали более 2000 человек.
- LGPL v2.1 является одной из самых распространённых лицензий для библиотек в экосистеме GNU/Linux, но её доля снижается в пользу MIT и Apache в веб-разработке.
Источники
- Free Software Foundation. GNU Lesser General Public License, Version 3. — 2007. — Текст лицензии.
- Stallman, Richard. Free Software, Free Society: Selected Essays. — GNU Press, 2002. — ISBN 1-882114-98-1.
- Rosen, Lawrence. Open Source Licensing: Software Freedom and Intellectual Property Law. — Prentice Hall, 2004. — ISBN 0-13-148787-6.
- GNU Project. Why you shouldn’t use the Lesser GPL for your next library. — 1999. — Официальная позиция FSF.
- Lindberg, Van. Intellectual Property and Open Source: A Practical Guide to Protecting Code. — O'Reilly Media, 2008. — ISBN 0-596-51796-3.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →