Разрешения, условия и ограничения с первого взгляда
Условия
- Уведомление об авторском праве и лицензииПри распространении нужно прилагать копию лицензии и уведомление об авторском праве.
- Указание измененийЕсли оригинал изменён, это нужно отметить.
- Раскрытие исходного кодаПри распространении нужно предоставлять исходный код.
- Та же лицензияИзменённые и производные версии нужно распространять под той же (или совместимой) лицензией.
Ограничения
- Ограничение ответственностиПрямо указано, что ответственность за ущерб не несётся.
- Без гарантийПрямо указано, что никакие гарантии не даются.
Классификация разрешений, условий и ограничений: данные choosealicense.com (GitHub, лицензия MIT).
Что это за лицензия
GPL (GNU General Public License) 3.0 опубликована Фондом свободного программного обеспечения (FSF) 29 июня 2007 года. Каждый может свободно использовать, изучать, изменять и распространять ПО, но при распространении обязан обеспечить получателям те же свободы — в этом суть принципа копилефта (copyleft). При распространении программы, содержащей этот код или объединённой с ним, вся программа должна предоставляться под GPL вместе с соответствующим исходным кодом. GPL-3.0-or-later используют GNU Bash, GIMP, GNU Emacs и др.
Что изменилось по сравнению с GPL-2.0
- Явная патентная лицензия (раздел 11): участники предоставляют права на патенты, необходимые для их вклада.
- Сведения для установки (Installation Information): если ПО под GPL-3.0 распространяется в составе «пользовательского продукта» (User Product), например бытового устройства, нужно предоставить и сведения (ключи подписи и т. п.), позволяющие установить на это устройство изменённое ПО (раздел 6). Обычно это называют «защитой от тивоизации».
- Срок на устранение нарушения (раздел 8): при первом нарушении права восстанавливаются, если исправить его в течение 30 дней после уведомления правообладателя. В GPL-2.0 права прекращались сразу при нарушении.
- Расширенная совместимость: можно принимать код Apache-2.0 и объединять с AGPL-3.0 (раздел 13).
Что соблюдать при распространении
- Предоставляйте весь соответствующий исходный код (включая сценарии сборки) напрямую или одним из способов раздела 6, например по письменному предложению.
- Сохраняйте уведомления об авторском праве и лицензии, указывайте факт и дату изменений (раздел 5).
- Нельзя налагать дополнительные условия, ограничивающие права получателей по GPL (например, договор о запрете повторного распространения).
Частые заблуждения
- «Используешь код GPL — обязательно раскрывай свой» — Обязанность раскрытия возникает при передаче (conveying). Если использовать только внутри компании или только запускать на сервере, обязанности предоставлять исходный код по GPL-3.0 не возникает. Чтобы охватить и сетевое использование, нужна AGPL-3.0.
- «ПО под GPL нельзя продавать» — Продавать можно. Но запретить получателю распространять его дальше нельзя.
- «Моя программа, работающая поверх программы GPL, тоже становится GPL» — Если она запускается как отдельная программа или взаимодействует стандартными способами, это обычно считается «совокупностью». Вопрос объединения решается по-разному в зависимости от способа компоновки и обмена данными.
- «GPL-3.0 и GPL-2.0 совместимы» — Если GPL-2.0 не «or later», а only, они несовместимы (руководство only и or-later).
Как применить
Поместите текст без изменений в LICENSE (или, по традиции GNU, в COPYING) и добавьте в начало каждого исходного файла официальное уведомление GNU. В нём же определяется, действует ли «or later». В качестве идентификатора SPDX используйте GPL-3.0-only или GPL-3.0-or-later (простой GPL-3.0 в SPDX устарел).
Когда подходит
Для приложений, инструментов и общественных проектов, где вы хотите, чтобы улучшения на основе вашего кода не уходили в закрытые продукты, а возвращались ко всем. Для библиотек стоит также рассмотреть LGPL-3.0, чтобы ими могли пользоваться закрытые приложения.
Можно ли включить код под GPL-3.0 в другие проекты?
Общая оценка для случая, когда код под этой лицензией берут и распространяют вместе с проектом под указанной ниже лицензией. Другие сочетания — в проверке совместимости →
| Целевой проект | Вывод | Примечание |
|---|---|---|
| Проприетарное (коммерческое) ПО | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| MIT | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| Apache-2.0 | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| MPL-2.0 | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| LGPL-2.1 | Можно с условиями | Объединённое произведение нужно распространять на условиях GPL-3.0. |
| LGPL-3.0 | Можно с условиями | Объединённое произведение нужно распространять на условиях GPL-3.0. |
| GPL-2.0 | Нельзя | Код версии 3.0 несовместим с условиями GPL-2.0 (only), его нельзя включить. |
| AGPL-3.0 | Можно | GPL-3.0 и AGPL-3.0 разрешают объединение в своих разделах 13. В объединённом произведении для AGPL-части сохраняется обязанность предоставлять исходный код по сети. |
Материалы сайта носят общий информационный характер и не являются юридической консультацией. Решения о распространении, договорах и спорах принимайте после консультации с юристом или другим специалистом.