107 lines
8.9 KiB
Markdown
107 lines
8.9 KiB
Markdown
[Документация](../../README-ru.md#документация) → Введение → Автор и лицензия
|
||
|
||
-----
|
||
|
||
[Read in English](author.en.md)
|
||
|
||
# Автор и лицензия
|
||
|
||
Автор: Виталий Филиппов (vitalif [at] yourcmc.ru), 2019+
|
||
|
||
Заходите в Telegram-чат Vitastor: https://t.me/vitastor
|
||
|
||
Лицензия: 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 с дополнительным
|
||
условием "Сетевого взаимодействия", требующим распространять все программы,
|
||
специально разработанные для использования вместе с Vitastor и взаимодействующие
|
||
с ним по сети, под лицензией VNPL или под любой другой свободной лицензией.
|
||
|
||
Идея VNPL - расширение действия копилефта не только на модули, явным образом
|
||
связываемые с кодом Vitastor, но также на модули, оформленные в виде микросервисов
|
||
и взаимодействующие с ним по сети.
|
||
|
||
Таким образом, если вы хотите построить на основе Vitastor сервис, содержаший
|
||
компоненты с закрытым кодом, взаимодействующие с Vitastor, вам нужна коммерческая
|
||
лицензия от автора 😀.
|
||
|
||
На Windows и любое другое ПО, не разработанное *специально* для использования
|
||
вместе с Vitastor, никакие ограничения не накладываются.
|
||
|
||
## Пояснение
|
||
|
||
Сетевой копилефт регулируется пунктом лицензии **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)
|