stringtranslate.com

Меньшая стандартная общественная лицензия GNU

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

LGPL была разработана как компромисс между строгим авторским левом Стандартной общественной лицензии GNU (GPL) и более либеральными лицензиями, такими как лицензии BSD и MIT License . Слово «Меньшее» в названии показывает, что LGPL не гарантирует конечному пользователю полную свободу в использовании программного обеспечения; он гарантирует свободу модификации только компонентов, лицензированных по LGPL, но не каких-либо проприетарных компонентов.

История

Лицензия первоначально называлась GNU Library General Public License и была впервые опубликована в 1991 году, и ей был присвоен номер версии 2 для соответствия версии 2 GPL. LGPL была незначительно переработана в версии 2.1, опубликованной в 1999 году, когда она была переименована в GNU Lesser General Public License, чтобы отразить позицию FSF, согласно которой не все библиотеки должны ее использовать. Версия 3 LGPL была опубликована в 2007 году как список дополнительных разрешений, применимых к версии 3 GPL.

Помимо термина «произведение, основанное на Программе» GPL, в LGPL версии 2 введены два дополнительных поясняющих термина «произведение, основанное на библиотеке» и «произведение, использующее библиотеку». [4] В LGPL версии 3 эти условия частично исключены.

Отличия от GPL

Основное различие между GPL и LGPL заключается в том, что последняя позволяет связать произведение (в случае библиотеки, «используемое») с программой, не подпадающей под (L)GPL, независимо от того, лицензирована ли она под лицензией GPL. лицензия семейства GPL или другие лицензии. [5] В LGPL 2.1 программа без (L)GPL может распространяться на любых условиях, если она не является производной работой . Если это производная работа, то условия программы должны разрешать «модификацию работы для собственного использования заказчиком и обратное проектирование для отладки таких модификаций». Является ли произведение, в котором используется программа LGPL, производным произведением или нет, является юридическим вопросом. Автономный исполняемый файл, который динамически связывается с библиотекой через .so , .dll или аналогичный носитель, обычно не считается производным произведением, как это определено LGPL. Это подпадает под определение «произведения, в котором используется Библиотека». Параграф 5 LGPL версии 2.1 гласит:

Программа, которая не содержит производных от какой-либо части Библиотеки, но предназначена для работы с Библиотекой путем компиляции или компоновки с ней, называется «произведением, использующим Библиотеку». Такая работа сама по себе не является производной работой Библиотеки и, следовательно, выходит за рамки настоящей Лицензии.

По сути, если это «произведение, в котором используется библиотека», тогда должна быть возможность связать программное обеспечение с более новой версией программы, подпадающей под действие LGPL. Наиболее часто используемый метод для этого — использовать «подходящий механизм общей библиотеки для связывания». В качестве альтернативы допускается использование статически связанной библиотеки , если предоставлен исходный код или подключаемые объектные файлы. [6]

Совместимость

Одной из особенностей LGPL является разрешение сублицензировать [7] по GPL любую часть программного обеспечения, полученную по LGPL (см. раздел 3 LGPL версии 2.1 и раздел 2, опция b LGPL версии 3). Эта функция позволяет напрямую повторно использовать код LGPL в библиотеках и приложениях под лицензией GPL.

Версия 3 LGPL по своей сути несовместима с версией 2 GPL. Однако работы, использующие последнюю версию и давшие разрешение на использование более поздней версии GPL, совместимы: [8] работа, выпущенная под GPLv2 «или любой более поздней версии», может быть объединена с кодом из библиотеки LGPL версии 3, с комбинированная работа в целом подпадает под условия GPLv3. [9]

Рекомендации ФСФ по лицензированию библиотек

Прежнее название GNU Library General Public License создавало у некоторых впечатление, что FSF рекомендовал всем библиотекам программного обеспечения использовать LGPL, а программам — GPL. В эссе 1999 года «Почему вам не следует использовать Меньшую GPL для вашей следующей библиотеки» Ричард Столлман объяснил, что, хотя LGPL не устарела , не обязательно использовать LGPL для всех библиотек, поскольку использование GPL может дать преимущество разработчикам свободного программного обеспечения. . [5]

С другой стороны, FSF иногда выступает за еще менее строгие лицензии. Например, Столлман одобрил использование лицензии в стиле BSD проектом Vorbis в своих библиотеках в 2001 году. [10]

Спецификации языка программирования

В лицензии используется терминология, которая в основном предназначена для приложений, написанных на языке программирования C или его семействе. Franz Inc., разработчики Allegro Common Lisp , опубликовали собственную преамбулу к лицензии для пояснения терминологии в контексте Lisp . LGPL с этой преамбулой иногда называют LLGPL. [11]

Кроме того, в Ada есть специальная функция — дженерики, которая может побудить к использованию модифицированной стандартной общественной лицензии GNAT (GMGPL): она позволяет коду связываться с модулями, охватываемыми GMGPL, или создавать экземпляры модулей, охватываемых GMGPL, без того, чтобы сам код попадал под действие GPL.

Шаблоны C++ и библиотеки только заголовков имеют ту же проблему, что и дженерики Ada. Версия 3 LGPL рассматривает такие случаи в разделе 3. [12]

Наследование классов

Возникла некоторая обеспокоенность по поводу возможности наследования объектно-ориентированных классов в коде, лицензируемом LGPL, кодом, отличным от (L)GPL. Разъяснения даны на официальном сайте GNU:

LGPL не содержит специальных положений о наследовании, поскольку в них нет необходимости. Наследование создает производные работы так же, как традиционное связывание, и LGPL разрешает этот тип производных работ так же, как и обычные вызовы функций. [13]

Смотрите также

Рекомендации

  1. ^ Информация о лицензии Debian
  2. ^ abc «Различные лицензии и комментарии к ним». Фонд свободного программного обеспечения . 26 июня 2018 года . Проверено 2 августа 2018 г.
  3. ^ Инициатива по лицензиям и стандартам с открытым исходным кодом
  4. ^ «Глава 10. Меньшая лицензия GPL». Авторское лево и Универсальная общественная лицензия GNU: комплексное руководство и руководство . 2018.
  5. ^ аб Столлман, Ричард. «Почему вам не следует использовать Меньшую GPL для своей следующей библиотеки». Официальный сайт Фонда свободного программного обеспечения .
  6. ^ Gnu Lesser General Public License, Раздел 4, pt. г) 0)
  7. ^ «Сублицензия». Викисловарь . 7 декабря 2020 г.
  8. ^ GNU Lesser General Public License (LGPL), версия 3. Официальный сайт Фонда свободного программного обеспечения .
  9. ^ Часто задаваемые вопросы о лицензиях GNU — Проект GNU — Фонд свободного программного обеспечения. Официальный сайт Фонда свободного программного обеспечения .
  10. ^ Столлман, Ричард. Re: [с открытым исходным кодом] [Вперед: [icecast-dev] Xiph.org анонсирует Vorbis Beta 4 и Xiph.org
  11. ^ Преамбула к Gnu Lesser General Public License
  12. ^ LGPLv3 для библиотеки шаблонов Pure C++?
  13. ^ Тернер, Дэвид. LGPL и Java. Официальный сайт GNU .

Внешние ссылки