Открыть сервис

Стандартная общественная лицензия ограниченного применения

Стандартная общественная лицензия ограниченного применения (англ. 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-библиотеку в проприетарном проекте, разработчик должен:

  1. Предоставить пользователю возможность получить исходный код библиотеки (например, в виде отдельного файла).
  2. Обеспечить возможность модификации библиотеки и её замены на модифицированную версию (например, через динамическое связывание).
  3. Включить уведомление о лицензии 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 →