Разрешения, условия и ограничения с первого взгляда
Условия
- Уведомление об авторском праве и лицензииПри распространении нужно прилагать копию лицензии и уведомление об авторском праве.
- Раскрытие исходного кодаПри распространении нужно предоставлять исходный код.
- Указание измененийЕсли оригинал изменён, это нужно отметить.
- Та же лицензия (на уровне библиотеки)Изменения библиотеки должны быть под той же лицензией, но на использующие её программы это может не распространяться.
Ограничения
- Ограничение ответственностиПрямо указано, что ответственность за ущерб не несётся.
- Без гарантийПрямо указано, что никакие гарантии не даются.
Классификация разрешений, условий и ограничений: данные choosealicense.com (GitHub, лицензия MIT).
Что это за лицензия
LGPL-2.1 опубликована FSF в феврале 1999 года. Раньше она называлась «GNU Library General Public License» (2.0), а в версии 2.1 стала «Lesser». В отличие от LGPL-3.0, это самостоятельный полный документ. Библиотека GNU C (glibc) использует LGPL-2.1-or-later, а FFmpeg в конфигурации по умолчанию распространяется под LGPL-2.1-or-later (некоторые необязательные компоненты — под GPL).
Программы, использующие библиотеку (разделы 5 и 6)
Программа, написанная для работы в компоновке с библиотекой («произведение, использующее библиотеку»), может считаться не производной от библиотеки, а скомпонованный исполняемый файл можно распространять на своих условиях при соблюдении раздела 6.
- Приложите уведомление о том, что используется библиотека под LGPL, и копию лицензии.
- Предоставьте исходные или объектные файлы, чтобы пользователь мог изменить библиотеку и заново скомпоновать программу, либо используйте разделяемую библиотеку.
- Нужно разрешить обратную разработку для отладки таких изменений.
Переход на GPL (раздел 3)
LGPL-2.1 разрешает применить к копии библиотеки вместо LGPL условия GPL версии 2 (или, по желанию, любой более поздней). Поэтому код LGPL-2.1 можно включать и в проекты GPL-2.0, и в проекты GPL-3.0. Копию, однажды переведённую на GPL, нельзя вернуть обратно под LGPL.
Частые заблуждения
- «LGPL-2.1 устарела, её нельзя использовать» — Она по-прежнему действует и широко распространена. Но в ней нет положений о патентах и сведениях для установки.
- «Код LGPL-2.1 можно без изменений включить в проект LGPL-3.0» — Если это код LGPL-2.1-only (без «or later»), объединённое произведение нельзя перевести на LGPL-3.0. Однако через раздел 3 его можно распространять как объединённое произведение под GPL-3.0.
- «Даже использование заголовков библиотеки делает всё LGPL» — Раздел 5 делает исключение, в частности, для использования небольших макросов и встраиваемых функций (не длиннее десяти строк) из заголовков. Граница требует толкования.
Как применить
Поместите текст без изменений в COPYING.LIB или LICENSE и добавьте в каждый файл официальное уведомление. Идентификатор SPDX — LGPL-2.1-only или LGPL-2.1-or-later.
Когда подходит
Для существующих библиотек C, которые должны быть совместимы и с экосистемой GPL-2.0, и для производных от проектов, уже выпущенных под LGPL-2.1. Для новых библиотек чаще сначала рассматривают LGPL-3.0 с патентной лицензией или MPL-2.0.
Можно ли включить код под LGPL-2.1 в другие проекты?
Общая оценка для случая, когда код под этой лицензией берут и распространяют вместе с проектом под указанной ниже лицензией. Другие сочетания — в проверке совместимости →
| Целевой проект | Вывод | Примечание |
|---|---|---|
| Проприетарное (коммерческое) ПО | Можно с условиями | Подключать как библиотеку можно, если пользователь может заменить и заново скомпоновать LGPL-часть, а её исходный код предоставлен. Если код скопирован и смешан, всё объединённое произведение должно следовать условиям (L)GPL. |
| MIT | Можно с условиями | Подключать как библиотеку можно, если пользователь может заменить и заново скомпоновать LGPL-часть, а её исходный код предоставлен. Если код скопирован и смешан, всё объединённое произведение должно следовать условиям (L)GPL. |
| Apache-2.0 | Можно с условиями | Подключать как библиотеку можно, если пользователь может заменить и заново скомпоновать LGPL-часть, а её исходный код предоставлен. Если код скопирован и смешан, всё объединённое произведение должно следовать условиям (L)GPL. |
| MPL-2.0 | Можно с условиями | Подключать как библиотеку можно, если пользователь может заменить и заново скомпоновать LGPL-часть, а её исходный код предоставлен. Если код скопирован и смешан, всё объединённое произведение должно следовать условиям (L)GPL. |
| LGPL-3.0 | Можно с условиями | LGPL-2.1 разрешает распространять этот код под любой версией GPL начиная с 2.0 (раздел 3). |
| GPL-2.0 | Можно с условиями | LGPL-2.1 разрешает распространять этот код под любой версией GPL начиная с 2.0 (раздел 3). |
| GPL-3.0 | Можно с условиями | LGPL-2.1 разрешает распространять этот код под любой версией GPL начиная с 2.0 (раздел 3). |
| AGPL-3.0 | Можно с условиями | LGPL-2.1 разрешает распространять этот код под любой версией GPL начиная с 2.0 (раздел 3). GPL-3.0 и AGPL-3.0 разрешают объединение в своих разделах 13. В объединённом произведении для AGPL-части сохраняется обязанность предоставлять исходный код по сети. |
Материалы сайта носят общий информационный характер и не являются юридической консультацией. Решения о распространении, договорах и спорах принимайте после консультации с юристом или другим специалистом.