Сильный копилефт

GNU Affero General Public License v3.0

Самый сильный копилефт — GPL-3.0 плюс раздел 13, по которому предоставление программы по сети тоже порождает обязанность дать исходный код.

SPDXAGPL-3.0-onlyAGPL-3.0-or-later

Разрешения, условия и ограничения с первого взгляда

Разрешения

  • Коммерческое использованиеОригинал и производные можно использовать в коммерческих целях.
  • ИзменениеКод можно изменять.
  • РаспространениеКод можно распространять.
  • Использование патентовУчастники явно предоставляют права на использование патентов.
  • Частное использованиеКод можно использовать и изменять внутри, не публикуя.

Условия

  • Уведомление об авторском праве и лицензииПри распространении нужно прилагать копию лицензии и уведомление об авторском праве.
  • Указание измененийЕсли оригинал изменён, это нужно отметить.
  • Раскрытие исходного кодаПри распространении нужно предоставлять исходный код.
  • Сетевое использование = распространениеПользователи, работающие с программой по сети, тоже имеют право получить исходный код.
  • Та же лицензияИзменённые и производные версии нужно распространять под той же (или совместимой) лицензией.

Ограничения

  • Ограничение ответственностиПрямо указано, что ответственность за ущерб не несётся.
  • Без гарантийПрямо указано, что никакие гарантии не даются.

Классификация разрешений, условий и ограничений: данные 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.

Частые заблуждения

Как применить

Поместите текст без изменений в 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-части сохраняется обязанность предоставлять исходный код по сети.

Материалы сайта носят общий информационный характер и не являются юридической консультацией. Решения о распространении, договорах и спорах принимайте после консультации с юристом или другим специалистом.