В этой статье мы раскроем то как MariaDB и MySQL, их серверные и клиентские библиотеки влияют на другие приложения, и какие шаги нужно сделать чтобы удовлетворять условиям GPL, или же избежать изменений приложения в процессе перехода к GPL.

В последующем тексте мы говорим о MariaDB. Главные принципы также применимы и к MySQL в главном, по крайней мере до версии 5.1.55 которая является последней стабильной сборкой на момент написания

Лицензии используемые MariaDB

MariaDB распространяется под GPL license, версии 2.

MariaDB client libraries для C, Java и ODBC распостраняются под лицензией LGPL 2.1 или более поздней. LGPL позволяет вам распространять эти клиентские библиотеки для MariaDB свободно с любым приложением.

Клиентские библиотеки MariaDB включенные в MariaDB server также подпадают под лицензию GPLv2 но имеется исключение - FLOSS exception которое позволяет вам сочетать его с большинством продуктов с открытым исходным кодом, за исключением случаев конфликта с данной лицензией, бывает что ваша лицензия не совместима с GPL. Впрочем мы рекомендуем использовать новую версию client libraries для любых не-GPL приложений.

Свободное внутреннее использование

Лицензия GPL влияет только на возможность распространения кода другим лицам.

Внутреннее использование вне организации абсолютно свободное и не подпадает под любые условия. Это не то же самое что "внутреннее распространение" которое подпадает под ограничения использования кода которое требует использования лицензии GPL

Соединение с удаленной службой MariaDB (или любым другим GPL приложение) в фоновом режиме также свободно.

В случае внутреннего использования в приложениях с любой лицензией вы по сути ничем не рискуете при использовании приложений с лицензией GPL. Аргумент, который вы можете использовать в защиту этих программ, если вы будете использовать GPL как часть дистрибутива, вы как правообладатель можете немедленно вернуть эту часть под оригинальную лицензию. Никто не имеет права потребовать от вас открыть или отозвать ваш код за пределами вашей организации, если вы используете внутренние части связанные при помощи GPL!

Если ваши юристы обеспокоены о распространении связанного с библиотеками на GPL между различными юридическими лицами внутри вашей организации, вы можете решить это получением этих библиотек отдельно для каждого юридического лица и комбинируя их, а так же изменить их на новые LGPL client libraries.

Распространение приложений с MariaDB коннектором\клиентом

Эта часть только для тех кто собирается распространять клиентские библиотеки MariaDB, не серверные, со своими приложениями.

Свободное/открытое программное обеспечение

Если ваше приложение свободно-распространяемое/с открытыми исходными кодами и использует одну из лицензий описанных в FLOSS exception, наличие GPL лицензии в клиентских библиотеках никак не повлияет на ваше приложение.

Во всех других случаях рекомендуем использовать новые LGPL client libraries.

Использование не-GPL коннектора

Если вы используете коннектор который не является GPL, вы подпадаете под лицензию этого коннектора. Несколько примеров:

Выше указаны лицензии которая позволяют использовать его свободно, не привязываясь к GPL лицензии.

Использование фреймворка для независимости от типа базы данных

Если вы используете фреймворк который позволяет динамически подключаться к различным реляционным СУБД, то вы можете использовать любой модуль с GPL лицензией загруженный фреймворком не повлияет на приложение. Примеры таких фреймворков:

Еще одна причина использования клиентских библиотек MySQL, в том что они не повлияют на приложение в случае если GPL-клиент поддерживает стандартный интерфейс, и таким образом является лишь подключаемым компонентом среди подобных. Ваше приложение может просто использовать фреймворк для соединений с СУБД отличной от MariaDB или MySQL.

Любое программное обеспечение соединенное с GPLv2 лицензированным MySQL коннектором/ODBC, не нуждается в применении GPL лицензии. Это происходит потому что он является частью общего программного обеспечения управления ODBC, между GPL-лицензированным MySQL коннектором/ODBC и вашим приложением. Если же любая логика требует от вашего приложения GPL лицензии для интерфейса MySQL коннектора/ODBC, то это так же применимо к ODBC управлению как таковому. Поскольку ODBC не использует GPL, не для WIndows ни для Linux, как следствие никто не может использовать ODBC драйвер для чего либо.

Использование клиентской библиотеки MariaDB для языка С

Если ваше приложение использует лицензию не описанную в FLOSS exception, то вы должны использовать новую LGPL client libraries or C.

Если ваше приложение использует лицензию не описанную в FLOSS exception, то вы должны использовать новые LGPL client libraries or C.

LGPL лицензия позволяет распространять клиентские библиотеки MariaDB свободно с любым приложением. Если же вы модифицируете код библиотеки, вы обязаны опубликовать свой код.

Распространение пропиетарного приложения с MariaDB / MySQL сервера

Когда вы распространяете ваше приложение вместе с MariaDB или MySQL вы привязаны(или некоторые юристы могут увидеть связи) с GPL лицензией если применимы некоторые строки описанные ниже:

  • Вы используете GPL-код из MySQL прямо привязанный к вашему приложению. (Как клиентские библиотеки)
  • Ваше приложение требует для работы MariaDB сервер и не может запускаться или может запускаться со значительной потерей функциональности.

Проблем с клиентской библиотекой можно избежать используя готовые решения из мануала описанные ранее. описанные ранее.

Если ваше приложение работает с множеством баз данных, либо изначально либо использован один из описанных в database source independent frameworks, то вы можете свободно распространять MariaDB сервер со своим приложением не подпадая под лицензию GPL. Причина по которой MariaDB может быть только подключаемым независимым модулем вашего распространяемого приложения в том что секция №2 лицензии GPL явно разрешает это:

"В дополнение, простое объединение другим проектом не базирующейся на
Программе, с Программой(или проекте базирующейся на Программе) на
томе диска или распространяемом носителе не переносит этот другой проект
под сферу действия данной лицензии"

Вы также имеете возможность купить лицензию для MySQL у Oracle чтобы получить версию MySQL под другими условиями лицензирования. Если вы хотели бы иметь возможность для использования MariaDB вместо MySQL, пожалуйста предусмотрите в вашей лицензии возможность изменения кода для MySQL! (Это то что вы должны сделать в любом случае, иначе вы можете попасть в один из багов которые не были исправлены Oracle, и которые не разрешено исправлять нам, а это сделает ваше приложение невозможным для использования!)

Права использования кода MariaDB для изменения в вашем приложении вы можете получить отсюда SkySQL.

Правовая информация

Текст выше написан Михаэлем "Монти" Видениусом, который не является юристом и вы не должны рассматривать все заявленное выше как абсолютную истину при любом развитии событий. С другой стороны именно Дэвид и Монти, это те кто вместе решили сделать MySQL по лицензии GPL и так же решили объявить о своих намерениях по отношению к изменению данной лицензии, в общем это и есть самая ценная информация в данной статье.

Если вы придерживаетесь второй точки зрения о том как работает GPL вы можете обратится в Software Freedom Law Center или Free Software Foundation по этому поводу. Никакая часть этой статьи не может быть использована для чего либо но, эти ссылки являются источниками по умолчанию, к которым вы можете обратиться за информацией если захотите узнать больше о GPL или LGPL

Comments

Comments loading...