Подтвердить что ты не робот

Лицензирование MySQL и GPL

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

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

4b9b3361

Ответ 1

Если вы храните его только на сервере (и, следовательно, "private"), вам не нужно выпускать его как GPL. Но как только он достигает открытых рабочих столов, он больше не может считаться внутренней сборкой, поэтому исходный код необходим.

Итак, вы можете:

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

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

Oh и IANAL.

Ответ 6

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

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

Ответ 7

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

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

  • Как правило, вы должны развиваться против стандартного API баз данных и позволять пользователю решать, какая база данных должна подключаться к приложению. В этом случае проблем нет. "Ваш код" не будет связываться с libmysqlclient, но его можно было бы объединить с модулем доступа к базе данных, который ссылается на libmysqlclient.

  • Если вы хотите распространять программу установки, которая объединяет ваше приложение и libmysqlclient, это, вероятно, не будет считаться "простой агрегацией", поэтому вам потребуется распространить ваше приложение под лицензией с открытым исходным кодом. Это необязательно, однако, обязательно GPL - см. Исключение лицензии MySQL FOSS.

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

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

Ответ 8

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

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

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

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

Ответ 9

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

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

Ответ 10

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

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

IANAL, конечно.