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

LGPL

LGPL (GNU Lesser General Public License, GNU Меньшая универсальная общественная лицензия) — это лицензия на свободное и открытое программное обеспечение, разработанная Фондом свободного программного обеспечения (FSF). Она представляет собой компромиссный вариант между строгой копилефт-лицензией GNU GPL и разрешительными лицензиями, такими как MIT или BSD. Основное отличие LGPL от GPL заключается в том, что она позволяет использовать лицензированный код в качестве библиотеки в проприетарных (несвободных) программах без необходимости распространять исходный код всей программы на условиях GPL, при условии соблюдения определённых требований к модификациям самой библиотеки.

История

LGPL была создана в 1991 году как «Библиотечная общественная лицензия GNU» (GNU Library General Public License). Первоначально она предназначалась для библиотеки GNU C Library (glibc), чтобы стимулировать её широкое использование в коммерческом программном обеспечении. Разработчики FSF осознали, что строгая копилефт-лицензия GPL для библиотек может отпугнуть разработчиков проприетарного ПО, что замедлило бы распространение свободных библиотек.

В 1999 году вышла версия 2.1, которая была переименована в «Меньшую универсальную общественную лицензию GNU» (GNU Lesser General Public License). Изменение названия отражало смену акцента: лицензия позиционировалась не как «библиотечная», а как «меньшая» по силе копилефта по сравнению с GPL. В 2007 году, одновременно с выходом GPLv3, была опубликована версия LGPLv3, которая была приведена в соответствие с GPLv3 и включала дополнительные положения, касающиеся патентов и совместимости с другими лицензиями.

Основные положения

LGPL основана на принципе копилефта, но с ослабленными требованиями по сравнению с GPL. Ключевые условия включают:

  • Свобода распространения: Пользователи могут свободно копировать, распространять и модифицировать код, лицензированный под LGPL.
  • Требование к модификациям: Если пользователь вносит изменения в саму библиотеку LGPL и распространяет модифицированную версию, он обязан предоставить исходный код этих изменений на условиях LGPL. Это касается только самой библиотеки, а не программы, которая её использует.
  • Динамическое связывание: Основное преимущество LGPL — разрешение на динамическое связывание библиотеки с проприетарным кодом. Если программа использует LGPL-библиотеку через динамическое связывание (например, загружая её как .dll или .so), то программа может распространяться под любой лицензией, включая проприетарную, при условии, что пользователь имеет возможность заменить библиотеку на модифицированную версию.
  • Статическое связывание: При статическом связывании (когда код библиотеки встраивается в исполняемый файл) требования более строгие. Распространитель должен предоставить пользователю либо объектный код программы, достаточный для перекомпоновки с модифицированной версией библиотеки, либо сам исходный код программы на условиях, позволяющих её модификацию.
  • Обратная инженерия: LGPL не запрещает обратную инженерию для отладки или модификации библиотеки.

Отличия от GPL

Основное различие между LGPL и GPL заключается в объёме копилефта:

  • GPL: Требует, чтобы вся производная работа (включая программу, использующую GPL-библиотеку) распространялась под GPL. Это означает, что любое проприетарное ПО, использующее GPL-библиотеку, должно быть открыто под GPL.
  • LGPL: Требует, чтобы только сама библиотека и её модификации оставались под LGPL. Программа, использующая библиотеку, может быть проприетарной, если она не является производной работой от библиотеки в смысле копирайта (обычно это достигается динамическим связыванием).

Таким образом, LGPL является более «разрешительной» для разработчиков коммерческого ПО, так как позволяет им использовать свободные библиотеки, не раскрывая исходный код своих продуктов.

Совместимость с другими лицензиями

LGPLv2.1 совместима с GPLv2 и GPLv3, но с оговорками. LGPLv3 специально разработана для совместимости с GPLv3. Разработчики могут перелицензировать код под LGPLv3 на условиях GPLv3, если это необходимо. Однако LGPL несовместима с некоторыми разрешительными лицензиями, такими как Apache License 2.0, из-за различий в патентных оговорках.

Применение

LGPL широко используется для библиотек, которые разработчики хотят сделать доступными как для свободных, так и для проприетарных проектов. Наиболее известные примеры:

  • GNU C Library (glibc): Основная библиотека языка C для GNU/Linux-систем, лицензирована под LGPLv2.1.
  • GTK: Кроссплатформенная библиотека для создания графических интерфейсов, используемая в GNOME, GIMP и других проектах. Лицензирована под LGPLv2.1.
  • Qt: До версии 4.5 использовала собственную лицензию, но затем перешла на LGPLv2.1 для версии с открытым исходным кодом.
  • LibreOffice: Использует LGPLv3 для некоторых своих библиотек.
  • Mozilla Firefox: Некоторые компоненты браузера, такие как NSPR (Netscape Portable Runtime), лицензированы под LGPL.

Критика

LGPL подвергалась критике с разных сторон:

  • Со стороны сторонников свободного ПО: Некоторые считают, что LGPL ослабляет принципы копилефта, позволяя проприетарным программам использовать свободные библиотеки без раскрытия исходного кода. Ричард Столмен, основатель FSF, первоначально выступал против LGPL, но позже признал её полезность для определённых категорий программного обеспечения.
  • Со стороны разработчиков проприетарного ПО: Некоторые компании считают LGPL слишком сложной и неудобной для использования, особенно в контексте статического связывания. Требование предоставлять возможность замены библиотеки может быть технически сложным для встраиваемых систем.
  • Юридическая неопределённость: В некоторых юрисдикциях трактовка термина «производная работа» применительно к динамическому связыванию остаётся неоднозначной, что создаёт риски для разработчиков.

Источники

  • GNU Lesser General Public License, версия 3 (текст лицензии)
  • GNU Lesser General Public License, версия 2.1 (текст лицензии)
  • Free Software Foundation. «Why you shouldn't use the Lesser GPL for your next library» (1999)
  • Stallman, Richard. «Free Software, Free Society: Selected Essays of Richard M. Stallman» (2002)
  • Rosen, Lawrence. «Open Source Licensing: Software Freedom and Intellectual Property Law» (2004)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →