Разрешения, условия и ограничения с первого взгляда
Условия
- Уведомление об авторском праве и лицензииПри распространении нужно прилагать копию лицензии и уведомление об авторском праве.
- Указание измененийЕсли оригинал изменён, это нужно отметить.
- Раскрытие исходного кодаПри распространении нужно предоставлять исходный код.
- Та же лицензияИзменённые и производные версии нужно распространять под той же (или совместимой) лицензией.
Ограничения
- Ограничение ответственностиПрямо указано, что ответственность за ущерб не несётся.
- Без гарантийПрямо указано, что никакие гарантии не даются.
Классификация разрешений, условий и ограничений: данные choosealicense.com (GitHub, лицензия MIT).
Что это за лицензия
GPL-2.0 — вторая редакция GPL, опубликованная FSF в июне 1991 года. Принцип копилефта тот же, что у GPL-3.0: при распространении программы, содержащей этот код или объединённой с ним, всё целиком нужно предоставлять под GPL-2.0 вместе с исходным кодом. Типичные примеры — ядро Linux (GPL-2.0-only, с исключением syscall для части заголовков), Git (GPL-2.0-only) и WordPress (GPL-2.0-or-later).
only и or-later
Проекты под GPL-2.0 обычно выбирают один из двух вариантов.
- GPL-2.0-only: распространять можно только на условиях этой редакции. Так устроено ядро Linux, поэтому перейти на GPL-3.0 оно не может.
- GPL-2.0-or-later: получатель может выбрать 2.0 или любую более позднюю редакцию, выпущенную FSF (3.0 и т. д.). Рекомендуемое уведомление в тексте GPL соответствует именно этому варианту.
Раздел 9 устанавливает, что для программы без указания номера версии можно выбрать любую редакцию, выпущенную FSF. Поэтому важно явно указать вариант в заголовке файла или идентификаторе SPDX (руководство).
Что соблюдать при распространении
- Прилагайте исходный код или предоставляйте его по письменному предложению, действующему не менее трёх лет (раздел 3).
- Сохраняйте уведомления об авторском праве, отказ от гарантий и копию лицензии (раздел 1).
- В изменённых файлах указывайте факт и дату изменения (раздел 2 a).
- Нельзя налагать дополнительные ограничения на права получателя (раздел 6). Если из-за патентного соглашения и т. п. соблюсти условия GPL невозможно, распространять нельзя вовсе (раздел 7).
Частые заблуждения
- «GPL-2.0 и GPL-3.0 — одна и та же GPL, их можно смешивать» — Код под GPL-2.0-only и код под GPL-3.0 нельзя объединять и распространять вместе. Одна из них должна быть «or later».
- «Можно включить и код Apache-2.0» — FSF считает Apache-2.0 несовместимой с GPL-2.0. Для проекта «or later» проблему можно решить, распространяя его под GPL-3.0.
- «Раз нет патентного положения, можно предъявлять патенты» — Явной патентной лицензии нет, но раздел 7 и преамбула направлены на то, чтобы не допустить распространения, ограничивающего свободу патентами. Толкования расходятся; если патенты важны, рассмотрите GPL-3.0.
Как применить
Поместите текст без изменений в LICENSE или COPYING и добавьте в каждый файл официальное уведомление. Если оставить фразу «either version 2 of the License, or (at your option) any later version», получится or-later, если убрать — only. Идентификаторы SPDX — GPL-2.0-only / GPL-2.0-or-later.
Когда подходит
Необходима проектам, которые обмениваются кодом с экосистемой GPL-2.0-only, например модулям ядра Linux. Если в новом проекте цель — сильный копилефт, гибче будут GPL-3.0 с улучшенными патентным положением и совместимостью или «GPL-2.0-or-later».
Можно ли включить код под GPL-2.0 в другие проекты?
Общая оценка для случая, когда код под этой лицензией берут и распространяют вместе с проектом под указанной ниже лицензией. Другие сочетания — в проверке совместимости →
| Целевой проект | Вывод | Примечание |
|---|---|---|
| Проприетарное (коммерческое) ПО | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| MIT | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| Apache-2.0 | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| MPL-2.0 | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| LGPL-2.1 | Можно с условиями | Поскольку LGPL-2.1 разрешает переход на GPL, это возможно только при распространении объединённого произведения под GPL-2.0-only. |
| LGPL-3.0 | Нельзя | Код под GPL-2.0-only несовместим с дополнительными условиями GPL-3.0, LGPL-3.0 и AGPL-3.0. |
| GPL-3.0 | Нельзя | Код под GPL-2.0-only несовместим с дополнительными условиями GPL-3.0, LGPL-3.0 и AGPL-3.0. |
| AGPL-3.0 | Нельзя | Код под GPL-2.0-only несовместим с дополнительными условиями GPL-3.0, LGPL-3.0 и AGPL-3.0. |
Материалы сайта носят общий информационный характер и не являются юридической консультацией. Решения о распространении, договорах и спорах принимайте после консультации с юристом или другим специалистом.