diff --git a/docs/intro/author.ru.md b/docs/intro/author.ru.md index 1c1cacd7..aad73ff6 100644 --- a/docs/intro/author.ru.md +++ b/docs/intro/author.ru.md @@ -12,6 +12,14 @@ Лицензия: VNPL 1.1 на серверный код и двойная VNPL 1.1 + GPL 2.0+ на клиентский. +Серверные компоненты распространяются только на условиях VNPL. + +Клиентские библиотеки распространяются на условиях двойной лицензии VNPL 1.0 +и также на условиях GNU GPL 2.0 или более поздней версии. Так сделано в целях +совместимости с таким ПО, как QEMU и fio. + +## VNPL + VNPL - "сетевой копилефт", собственная свободная копилефт-лицензия Vitastor Network Public License 1.1, основанная на GNU GPL 3.0 с дополнительным условием "Сетевого взаимодействия", требующим распространять все программы, @@ -29,9 +37,70 @@ Vitastor Network Public License 1.1, основанная на GNU GPL 3.0 с д На Windows и любое другое ПО, не разработанное *специально* для использования вместе с Vitastor, никакие ограничения не накладываются. -Клиентские библиотеки распространяются на условиях двойной лицензии VNPL 1.0 -и также на условиях GNU GPL 2.0 или более поздней версии. Так сделано в целях -совместимости с таким ПО, как QEMU и fio. +## Пояснение -Вы можете найти полный текст VNPL 1.1 на английском языке в файле [VNPL-1.1.txt](../../VNPL-1.1.txt), -VNPL 1.1 на русском языке в файле [VNPL-1.1-RU.txt](../../VNPL-1.1-RU.txt), а GPL 2.0 в файле [GPL-2.0.txt](../../GPL-2.0.txt). +Сетевой копилефт регулируется пунктом лицензии **13. Удалённое сетевое взаимодействие**. + +Программа считается "прокси-программой", если верны оба условия: +- Она создана специально для работы вместе с Vitastor. По сути это означает, что программа + должна иметь специфичный для Vitastor функционал, то есть, "знать", что она взаимодействует + именно с Vitastor. +- Она прямо или косвенно взаимодействует с Vitastor через абсолютно любой программный + интерфейс, включая любые способы вызова: API, CLI, сеть или через какую-то обёртку (в + свою очередь тоже являющуюся прокси-программой). + +Если в дополнение к этому также: +- Вы предоставляете любому пользователю возможность взаимодействовать с Vitastor по сети, + опять-таки, через любой интерфейс или любую серию "обёрток" (прокси-программ) + +То, согласно VNPL, вы должны открыть код "прокси-программ" **таким пользователям** на условиях +любой GPL-совместимой лицензии - то есть, GPL, LGPL, MIT/BSD или Apache 2 - "совместимость с GPL" +понимается как возможность включать лицензируемый код в GPL-приложение. + +Соответственно, если у вас есть "прокси-программа", но её код не открыт пользователю, +который прямо или косвенно взаимодействует с Vitastor - вам запрещено использовать Vitastor +на условиях VNPL и вам нужна коммерческая лицензия, не содержащая требований об открытии кода. + +## Примеры + +- Kubernetes CSI-драйвер Vitastor, создающий PersistentVolume с помощью вызова vitastor-cli create. + - Да, взаимодействует с Vitastor через vitastor-cli. + - Да, создавался специально для работы с Vitastor (иначе в чём же ещё его смысл). + - Значит, CSI-драйвер **точно считается** "прокси-программой" и должен быть открыт под свободной + лицензией. +- Windows, установленный в виртуальную машину на диске Vitastor. + - Да, взаимодействует с Vitastor "прямо или косвенно" - пишет и читает данные через интерфейс + блочного устройства, эмулируемый QEMU. + - Нет, точно не создан *специально для работы с Vitastor* - когда его создавали, никакого + Vitastor ещё и в помине не было. + - Значит, Windows **точно не считается** "прокси-программой" и на него требования VNPL не распространяются. +- Панель управления облака, делающая запросы к Kubernetes CSI-драйверу Vitastor. + - Да, взаимодействует с Vitastor косвенно через CSI-драйвер, являющийся "прокси-программой". + - Сходу не известно, создавалась ли конкретно для работы с Vitastor. Как понять, да или нет? + Представьте, что Vitastor заменён на любую другую систему хранения (например, на проприетарную). + Работа панели управления изменится? Если да (например, перестанут работать снапшоты) - значит, + панель содержит специфичный функционал и "создана специально для работы с Vitastor". + Если нет - значит, специфичного функционала панель не содержит и в принципе она универсальна. + - Нужно ли открывать панель - **зависит** от того, содержит она специфичный функционал или нет. + +## Почему так? + +Потому что я одновременно верю в дух копилефт-лицензий (Linux не стал бы так популярен, +если бы не GPL!) и хочу иметь возможность монетизации продукта. + +При этом использовать даже AGPL для программной СХД бессмысленно - это глубоко внутреннее +ПО, которое пользователь почти наверняка не увидит вообще, поэтому и открывать код никому +никогда не придётся, даже при создании производного продукта. + +Да и в целом сложившаяся в мире ситуация, при которой действие GPL ограничивается только +прямым связыванием в один исполняемый файл, не очень корректна. В настоящее время программы +гораздо чаще интегрируют сетевыми вызовами, а не с помощью /usr/bin/ld, и общий программный +продукт может состоять из нескольких десятков микросервисов, взаимодействующих по сети. + +Поэтому для сохранения достаточной "копилефтности" и придумана VNPL. + +## Тексты лицензий + +- VNPL 1.1 на английском языке: [VNPL-1.1.txt](../../VNPL-1.1.txt) +- VNPL 1.1 на русском языке: [VNPL-1.1-RU.txt](../../VNPL-1.1-RU.txt) +- GPL 2.0: [GPL-2.0.txt](../../GPL-2.0.txt)