Вопрос

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

Если я хочу разработать веб-приложение с использованием MySQL, мой код будет связан с библиотеками MySQL.Должен ли я в этой ситуации опубликовать исходный код моего веб-приложения в соответствии с лицензией GPL?

Это было полезно?

Решение

При условии, что вы сохраните его только для сервера (и, следовательно, «частным»), вам не обязательно выпускать его под лицензией GPL.Но как только он доберётся до публичных десктопов, его уже нельзя будет считать внутренней сборкой, а значит, необходим исходный код.

Так что вы можете:

  • Выпустите свой код под лицензией GPL
  • Купить коммерческую версию MySQL
  • Оставьте его только серверным.

Другие советы

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

ETA : просто, чтобы прояснить немного; если вы напишите свою собственную библиотеку, которая общается с MySQL, используя проводной протокол, то вы всегда будете на 100% в чистом виде. Аналогично, если вы используете библиотеку, которая сделала именно это, но имеет лицензию BSD (в качестве примера), то вы также будете в курсе, потому что вы общаетесь с MySQL только через сокетное соединение, а не вызываете в коде GPL. Я не сразу осведомлен о каких-либо лицензированных интерфейсах BSD к протоколу MySQL, но, безусловно, возможно, что где-то есть такой.

Если вы запускаете веб-приложение самостоятельно, а не распространяете его как приложение, вам не нужно выпускать исходный код. Разрешение доступа к веб-приложению не считается распространением.

Изменить: если вам интересно, вы можете посмотреть Общедоступную лицензию Affero , для которой требуется источник должен быть доступен для пользователей сети программного обеспечения AGPL (например, он будет применяться к веб-приложениям).

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

Вопрос в том, как ваша программа может использовать протокол MySQL? Одна из возможностей - использовать официальную клиентскую библиотеку MySQL (соединитель), которая является GPL'd. Если вы делаете это, вы статически связываете свою программу с библиотекой GPL, и, следовательно, вам нужно выпускать свое программное обеспечение под GPL.

Кроме того, вы можете создать ссылку на стороннюю клиентскую библиотеку с другой лицензией. Например, вы можете использовать клиентскую библиотеку MariaDB , которая является LGPL (и поэтому совместима с проприетарным программным обеспечением) и предоставляет тот же API, что и исходная клиентская библиотека MySQL. См. FAQ по лицензированию MariaDB , который также относится к MySQL, для получения дополнительной информации и рекомендаций.

Может быть сложно распространять сервер MySQL вместе с вашим программным обеспечением: вы можете просто потребовать, чтобы ваши клиенты загрузили и установили MySQL самостоятельно, или разработать простой загрузчик, который будет распространяться вместе с вашим программным обеспечением.

MySQL использует двойное лицензирование. Как они говорят - если вы свободны, мы свободны.

Итак, если вы используете, насколько мне известно, только MySQL JDBC Connector - у вас должна быть лицензия или GPL-код.

Если вы не производите и / или не распространяете программное обеспечение GPL, вы должны быть в безопасности.

Связывание с клиентской библиотекой MySQL не является ни производной работой, ни распространением.

ОБНОВЛЕНИЕ . Подумайте над тем, как изменится связь (динамическая или статическая) с библиотеками. Статическое связывание является распространением, но если вы связываетесь динамически, и ваши клиенты загружают сами соединители, это не распространение, и вы должны быть в безопасности.

О, и IANAL.

  

Если я хочу разработать веб-приложение с использованием MySQL, мой код будет связан с библиотеками MySQL. Должен ли я в этом случае опубликовать исходный код моего веб-приложения в соответствии с GPL?

<Ол>
  • Как уже говорили другие, если вы не распространяете приложение среди других, проблем нет вообще.

  • Обычно вы разрабатываете со стандартным API базы данных и позволяете пользователю решать, какую базу данных подключить к приложению. В этом случае нет проблем. & # 8220; Ваш код & # 8221; не будет ссылаться на libmysqlclient, но потенциально может быть объединен с модулем доступа к базе данных, который ссылается на libmysqlclient.

  • Если вы хотите распространять установщик, который настраивает ваше приложение и libmysqlclient вместе, это, вероятно, не будет считаться & # 8220; просто агрегацией & # 8221 ;, поэтому вам потребуется распространять свое приложение под лицензия с открытым исходным кодом. Однако это не обязательно должен быть GPL & # 812; & # 8201; см. Исключение лицензии MySQL FOSS .

  • Если вы хотите распространять установщик, который настраивает ваше приложение и сам сервер MySQL, исключение не применяется, поэтому вы ограничены только GPL.

  • Естественно, IANAL, и, безусловно, все еще существует некоторая неопределенность в отношении того, что считается деривацией, особенно в отношении динамического связывания. Однако вышеизложенное является моим пониманием традиционной позиции MySQL AB в отношении лицензирования, и я не слышал о каких-либо изменениях после поглощения Sun.

    К сожалению, это далеко не так точно: GPL запрещает распространение без указания источника каждого «производного продукта». Распространение юридически определяется как акт переноса источника с одного компьютера на один или несколько компьютеров для официального использования.

    К сожалению, , который также может включать использование на кластерах серверов, блоках QA, блоках разработчика и т. д. В современном магазине разработчика просто выпуск кода для нескольких блоков внешнего / внутреннего интерфейса является технически распространяемым (в глаза закона).

    Неважно, что думает Фонд свободного программного обеспечения, важно, что думают несколько судей, когда на кого-то / корпорацию предъявляют иск именно за это.

    Это еще одна причина, по которой основными клиентами GPL в наши дни являются корпорации, которые хотят, чтобы конкуренты не раздували свой код . Всем остальным следует подумать о гораздо меньших обременяющих лицензиях, таких как лицензии MIT или Creative Commons Attribution.

    Во-первых, я не юрист. Поговорите с одним, прежде чем принимать какие-либо советы здесь.

    Кроме того, если вы не распространяете свое веб-приложение, вам, скорее всего, не нужно публиковать свои изменения. Вы по-прежнему можете сделать ваше веб-приложение доступным для использования другими, если вы размещаете веб-приложение.

    Если ваш дистрибутив включает в себя и устанавливает MySql в том же пакете, ему требуется коммерческая лицензия.

    Но если вы распространяете только свой код, просто "требуется MySql" Уведомление и сценарий установки (для создания / заполнения таблиц), не должно быть никаких проблем, AFAIK.

    IANAL, конечно.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top