Разрешения, условия и ограничения с первого взгляда
Условия
- Уведомление об авторском праве и лицензииПри распространении нужно прилагать копию лицензии и уведомление об авторском праве.
- Указание измененийЕсли оригинал изменён, это нужно отметить.
- Раскрытие исходного кодаПри распространении нужно предоставлять исходный код.
- Сетевое использование = распространениеПользователи, работающие с программой по сети, тоже имеют право получить исходный код.
- Та же лицензияИзменённые и производные версии нужно распространять под той же (или совместимой) лицензией.
Ограничения
- Ограничение ответственностиПрямо указано, что ответственность за ущерб не несётся.
- Без гарантийПрямо указано, что никакие гарантии не даются.
Классификация разрешений, условий и ограничений: данные choosealicense.com (GitHub, лицензия MIT).
Что это за лицензия
AGPL-3.0 опубликована FSF в ноябре 2007 года. Её текст почти совпадает с GPL-3.0; отличается раздел 13 «Удалённое сетевое взаимодействие». В GPL обязанность предоставить исходный код возникает только при «распространении» программы, поэтому веб-сервис, который запускает изменённое GPL-ПО только на сервере, может не раскрывать исходники. Это так называемая «лазейка SaaS». AGPL её закрывает. AGPL-3.0 используют Mastodon, сервер Nextcloud и Grafana (перешла с Apache-2.0 в 2021 году).
Чего требует раздел 13
Если программа изменена, всем пользователям, которые удалённо взаимодействуют с этой изменённой версией через компьютерную сеть, нужно заметным образом предоставить возможность получить соответствующий исходный код. Обычно это выполняется ссылкой «Исходный код» в интерфейсе сервиса.
Что соблюдать при распространении
Все обязанности GPL-3.0 (предоставление исходного кода, сохранение уведомлений, пометка изменений, та же лицензия, запрет дополнительных ограничений) действуют без изменений, и к ним добавляется раздел 13.
Частые заблуждения
- «Если просто использовать AGPL-ПО на сервере, придётся раскрыть весь свой сервис» — Раздел 13 требует исходный код изменённой программы, предоставляемой по сети. Распространено толкование, что одно лишь использование немодифицированной AGPL-базы данных отдельным процессом вряд ли создаёт обязанности для всего вашего приложения, но в зависимости от способа объединения вывод может быть иным.
- «AGPL запрещает коммерческое использование» — Не запрещает. Её можно использовать и в коммерческих сервисах при соблюдении условий.
- «AGPL — не открытая лицензия» — Это лицензия открытого ПО, одобренная OSI, и лицензия свободного ПО, признанная FSF. Путаница возникает из-за MongoDB, которая в 2018 году перешла с AGPL на SSPL, но SSPL — отдельная лицензия, не получившая одобрения OSI.
- «Её нельзя смешивать с кодом GPL» — GPL-3.0 и AGPL-3.0 взаимно разрешают объединение в своих разделах 13. В объединённом произведении сетевое положение для AGPL-части сохраняется.
Как применить
Поместите текст без изменений в LICENSE и добавьте в каждый файл официальное уведомление AGPL. Для веб-сервиса полезно заранее встроить в код функцию, показывающую пользователю ссылку на репозиторий с исходниками: так тем, кто будет запускать изменённые версии, проще соблюдать раздел 13. Идентификатор SPDX — AGPL-3.0-only или AGPL-3.0-or-later.
Когда подходит
Для ПО, которое в основном работает на серверах (веб-приложения, инструменты совместной работы, аналитические платформы), когда вы публикуете его и хотите не допустить, чтобы другие компании запускали изменённые версии как закрытый сервис. Её также часто выбирают в модели двойного лицензирования вместе с коммерческой лицензией.
Можно ли включить код под AGPL-3.0 в другие проекты?
Общая оценка для случая, когда код под этой лицензией берут и распространяют вместе с проектом под указанной ниже лицензией. Другие сочетания — в проверке совместимости →
| Целевой проект | Вывод | Примечание |
|---|---|---|
| Проприетарное (коммерческое) ПО | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| MIT | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| Apache-2.0 | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| MPL-2.0 | Нельзя | Всю совместно распространяемую программу пришлось бы раскрыть под той же лицензией GNU вместе с исходным кодом, поэтому сохранить лицензию проекта и включить этот код нельзя. |
| LGPL-2.1 | Можно с условиями | Объединённое произведение нужно распространять на условиях GPL-3.0. GPL-3.0 и AGPL-3.0 разрешают объединение в своих разделах 13. В объединённом произведении для AGPL-части сохраняется обязанность предоставлять исходный код по сети. |
| LGPL-3.0 | Можно с условиями | Объединённое произведение нужно распространять на условиях GPL-3.0. GPL-3.0 и AGPL-3.0 разрешают объединение в своих разделах 13. В объединённом произведении для AGPL-части сохраняется обязанность предоставлять исходный код по сети. |
| GPL-2.0 | Нельзя | Код версии 3.0 несовместим с условиями GPL-2.0 (only), его нельзя включить. |
| GPL-3.0 | Можно с условиями | GPL-3.0 и AGPL-3.0 разрешают объединение в своих разделах 13. В объединённом произведении для AGPL-части сохраняется обязанность предоставлять исходный код по сети. |
Материалы сайта носят общий информационный характер и не являются юридической консультацией. Решения о распространении, договорах и спорах принимайте после консультации с юристом или другим специалистом.