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

GNU LGPLv3

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

История

Предпосылки создания

Первая версия LGPL (тогда называвшаяся GNU Library General Public License) была выпущена в 1991 году как ответ на потребность в лицензии, которая позволила бы использовать свободные библиотеки в коммерческих приложениях, не требуя открытия всего кода программы. Основная цель заключалась в стимулировании распространения свободных библиотек (например, GNU C Library), не отпугивая разработчиков проприетарного ПО.

В 1999 году вышла версия 2.1, которая уточнила терминологию и ввела понятие «производного произведения» для библиотек. Однако к середине 2000-х годов обе версии (2.0 и 2.1) устарели: они не учитывали проблемы, связанные с патентными исками, цифровым управлением ограничениями (DRM) и совместимостью с другими лицензиями.

Разработка LGPLv3

Работа над LGPLv3 началась одновременно с разработкой GNU GPLv3 в 2005 году. FSF стремился создать единую систему лицензий, где LGPLv3 была бы логическим дополнением к GPLv3. Основные изменения коснулись:

  • Усиления защиты от патентных претензий (явный патентный грант от участников).
  • Запрета на использование технических мер защиты (DRM) для ограничения прав пользователей.
  • Улучшения совместимости с другими свободными лицензиями (например, Apache License 2.0).
  • Введения механизма «поздней версии» (any later version), позволяющего переходить на будущие версии лицензии.

Окончательная версия LGPLv3 была опубликована 29 июня 2007 года, одновременно с GPLv3.

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

Определение и сфера действия

LGPLv3 — это копилефт-лицензия, но с ослабленными требованиями по сравнению с GPLv3. Она предназначена в первую очередь для программных библиотек, хотя может применяться и к отдельным программам. Ключевое отличие — разрешение на динамическое связывание (linking) с проприетарным кодом без необходимости лицензировать всю программу под LGPL.

Разрешения и ограничения

Лицензия предоставляет следующие права:

  • Использование: можно запускать, копировать и распространять программу в неизменном виде.
  • Модификация: можно изменять исходный код библиотеки.
  • Распространение: можно передавать копии как в исходных кодах, так и в скомпилированном виде.

Ограничения касаются:

  • Копилефт: если вы распространяете модифицированную версию библиотеки, вы обязаны предоставить её исходный код под той же лицензией (LGPLv3).
  • Связывание: при динамическом связывании с проприетарным кодом не требуется открывать весь проект. Однако если вы статически связываете библиотеку или встраиваете её код в свою программу, то должны предоставить пользователю возможность перелинковать (re-link) вашу программу с модифицированной версией библиотеки. Для этого требуется либо распространение объектных файлов, либо использование подходящего механизма (например, разделяемых библиотек).
  • Патентный грант: каждый участник, распространяющий код под LGPLv3, автоматически предоставляет всем пользователям неотзывную лицензию на свои патенты, которые необходимы для использования этого кода.
  • Защита от DRM: лицензия запрещает использование технических мер, ограничивающих права пользователя, и трактует обход таких мер как разрешённое действие (статья 3).

Условия для проприетарного использования

Разработчик проприетарного ПО может использовать библиотеку под LGPLv3 при соблюдении следующих правил:

  1. Библиотека должна быть доступна в виде исходного кода (или объектных файлов) для модификации.
  2. Пользователь должен иметь возможность заменить библиотеку на модифицированную версию (например, через динамическую линковку).
  3. В документации или интерфейсе программы должно быть указано, что она использует библиотеку под LGPLv3, и предоставлена ссылка на текст лицензии.

Отличия от GPLv3 и LGPLv2.1

Сравнение с GPLv3

  • Строгость копилефта: GPLv3 требует, чтобы любое производное произведение (включая программы, использующие библиотеку) распространялось под GPLv3. LGPLv3 допускает проприетарное использование при условии сохранения свободы самой библиотеки.
  • Применение: GPLv3 чаще используется для приложений, LGPLv3 — для библиотек и фреймворков.

Сравнение с LGPLv2.1

  • Патентная защита: LGPLv2.1 не содержала явного патентного гранта, что создавало риски для пользователей. LGPLv3 включает его.
  • Совместимость: LGPLv3 совместима с Apache License 2.0, GPLv3 и рядом других лицензий. LGPLv2.1 совместима только с GPLv2 и GPLv3.
  • DRM: LGPLv3 явно запрещает ограничения, налагаемые DRM, в то время как LGPLv2.1 этот вопрос не регулировала.
  • Механизм «поздней версии»: LGPLv3 позволяет указать «any later version», что упрощает обновление лицензии. LGPLv2.1 также поддерживала эту опцию, но менее гибко.

Применение

Типичные сценарии

LGPLv3 используется для:

  • Библиотек общего назначения: например, GNU C Library (glibc) — одна из самых известных библиотек под LGPL (хотя glibc использует LGPLv2.1, а не v3).
  • Фреймворков и SDK: многие проекты, такие как Qt (до версии 5.4 использовал LGPLv2.1, затем перешёл на LGPLv3), используют LGPLv3 для привлечения коммерческих разработчиков.
  • Инструментов разработки: например, компилятор GCC (GNU Compiler Collection) распространяется под GPLv3, но его библиотеки (libstdc++) — под GPLv3 с исключением, близким к LGPLv3.

Примеры проектов

  • Qt — кроссплатформенный фреймворк для разработки GUI, использует LGPLv3 (наряду с коммерческой лицензией).
  • GNU C Library — базовая библиотека языка C в системах GNU/Linux, распространяется под LGPLv2.1, но с возможностью перехода на LGPLv3.
  • OpenSSL — библиотека криптографии, перешла на Apache License 2.0, но ранее использовала LGPLv2.1.
  • FFmpeg — библиотека для обработки мультимедиа, использует LGPLv2.1 или LGPLv3 (на выбор).

Критика и ограничения

Недостатки для разработчиков

  • Сложность соблюдения: условия LGPLv3 требуют тщательного проектирования архитектуры (разделение на динамические библиотеки) и юридической проверки, что может быть обременительно для небольших проектов.
  • Несовместимость с некоторыми лицензиями: LGPLv3 несовместима с GPLv2 (из-за различий в патентных положениях), что создаёт проблемы при смешивании кода.
  • Ограничение на статическую линковку: статическое связывание с библиотекой под LGPLv3 требует предоставления объектных файлов, что не всегда удобно.

Критика со стороны сообщества

  • Некоторые разработчики считают LGPLv3 излишне сложной и предпочитают пермиссивные лицензии (MIT, BSD) или LGPLv2.1.
  • Механизм «поздней версии» критикуется за то, что он может привести к автоматическому переходу на будущие версии лицензии, которые могут быть менее выгодными для пользователя.

Интересные факты

  • LGPLv3 является первой версией LGPL, которая официально называется «GNU Lesser General Public License», а не «GNU Library General Public License» (хотя версия 2.1 уже использовала слово «Lesser»).
  • FSF рекомендует использовать LGPLv3 только для библиотек, а для приложений — GPLv3.
  • Существует специальное исключение (exception) для LGPLv3, позволяющее использовать библиотеку в проектах под GPLv2, но это требует отдельного согласования.

Источники

  • Free Software Foundation. GNU Lesser General Public License, version 3. — 2007.
  • Stallman R. Free Software, Free Society: Selected Essays of Richard M. Stallman. — 3rd ed. — Boston: GNU Press, 2015.
  • Lindberg V. Intellectual Property and Open Source: A Practical Guide to Protecting Code. — O'Reilly Media, 2008.
  • Rosen L. Open Source Licensing: Software Freedom and Intellectual Property Law. — Prentice Hall, 2004.
  • Документация проекта Qt. Licensing Overview. — Qt Group, 2023.

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

На главную BFOmetr →