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