stringtranslate.com

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

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

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

История

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

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

Отличия от GPL

Основное различие между GPL и LGPL заключается в том, что последняя позволяет связывать работу с (в случае библиотеки, «используемой») не-(L)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]

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

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

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

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

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

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

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

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

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

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

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

Ссылки

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

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