Frage

Soweit ich weiß, wenn ich einen Desktop / Server-Anwendung unter Verwendung eines beliebigen GPL-Code wie MySQL bauen werde ich den Quellcode meiner Software unter der GPL freigeben müssen.

Wenn ich einen Web-App mit MySQL entwickeln will, wird mein Code verknüpfen gegen die MySQL-Bibliotheken. Muß ich in dieser Situation mit der GPL in Übereinstimmung zu sein, den Quellcode meiner Webapp veröffentlichen?

War es hilfreich?

Lösung

Sofern Sie es halten server nur (und damit „private“), müssen Sie es nicht als GPL veröffentlichen. Aber sobald es öffentlich Desktops erreicht hat, kann es nicht mehr eine interne Build in Betracht gezogen werden, und daher wird Quellcode benötigt wird.

So können Sie:

  • Lassen Sie Ihren Code als GPL
  • Kaufen Sie die kommerzielle Version von MySQL
  • Halten Sie es Server-only.

Andere Tipps

Sie müssen entweder lassen Sie die Quelle (unter GPL) oder für eine proprietäre Lizenz zu MySQL bezahlen, so dass Sie das Recht erwerben, den MySQL-Binaries unter einer Lizenz zu verteilen, die zugänglicher ist, dass die proprietären Produkte. Am besten ist es, diese Art von Frage zu Ihrem Anwalt zu nehmen, wenn.

ETA : Nur ein wenig zu klären; wenn Sie Ihre eigene Bibliothek schreiben, die im Gespräch mit MySQL seinem Draht-line-Protokoll verwendet, dann werden Sie immer 100% im klaren sein. Ebenso, wenn Sie eine Bibliothek verwenden, die nur getan hat, das, sondern lizenziert BSD (als Beispiel), dann würden Sie auch im klaren sein, weil Sie nur auf MySQL über eine Socketverbindung zu sprechen, und nicht tatsächlich telefonieren in unter der GPL-Code. Ich bin nicht sofort Kenntnis von BSD lizenzierten Schnittstellen zum MySQL-Protokoll, aber es ist durchaus möglich, dass es irgendwo da draußen ist.

Wenn Sie die Web-Anwendung laufen lassen sich selbst, und nicht als eine Anwendung zu verteilen, dann müssen Sie die Quelle nicht freigeben. Die den Zugang zu einer Web-Anwendung wird nicht berücksichtigt Verteilung.

Edit: interessiert, wenn Sie auf der Affero General Public License aussehen könnte, die verlangt, dass Quelle für Netzwerkbenutzer von AGPL-Software zur Verfügung gestellt werden (zB es um Web-Anwendungen gelten würde).

Sie müssen nicht unbedingt verknüpfen gegen MySQL-Bibliotheken, um MySQL in Ihrer Anwendung zu verwenden. Alles, was Sie tun müssen, ist zu einem MySQL-Server-Protokoll mit MySQL zu „sprechen“; wobei in diesem Fall verbinden Sie mit dem MySQL-Server als Client, das heißt als Benutzer, und dann müssen Sie nicht Ihre Software unter der GNU-GPL-Lizenz veröffentlichen.

Die Frage ist, wie kann das Programm das MySQL-Protokoll sprechen? Eine Möglichkeit ist mit der offiziellen MySQL-Client-Bibliothek (Anschluss), die ist unter der GPL. Wenn Sie dies tun, werden Sie statisch Ihr Programm zu einer GPL-Bibliothek verknüpft, und damit müssen Sie Ihre Software unter der GPL veröffentlichen.

Alternativ können Sie eine Dritte Client-Bibliothek verknüpfen gegen, mit einer anderen Lizenz. Zum Beispiel können Sie die MariaDB-Client-Bibliothek verwenden , die LGPL'd ist (und ist damit kompatibel mit proprietärer Software) und bietet die gleiche API der ursprünglichen MySQL-Client-Bibliothek. Sehen Sie sich die MariaDB Lizenzierung FAQ , die auch MySQL gilt, um weitere Informationen und Beratung.

Es kann schwierig sein, den MySQL-Server zusammen mit Ihrer Software zu verbreiten: Sie einfach Ihre Kunden benötigen könnten zum Herunterladen und Installieren von MySQL durch ihre eigene, oder ein einfaches Downloader entwickeln mit der Software verteilt werden

.

MySQL verwendet duale Lizenzierung. Wie sie sagen - wenn Sie frei sind, sind wir frei

. So

, wenn Sie verwenden, soweit ich weiß, nur MySQL JDBC Connector - Sie sollten Lizenz oder GPL Code

.

Es sei denn, Sie stammen aus und / oder die GPL-Software zu verteilen, sollten Sie sicher sein.

Die Verknüpfung gegen die MySQL-Client-Bibliothek ist weder ein abgeleitetes Werk, noch Verteilung.

UPDATE: Komm, darüber nachzudenken, wie Sie verknüpfen (dynamisch oder statisch) gegen die Bibliotheken wird einen Unterschied machen. Statische Verknüpfung ist Verteilung, aber wenn Sie dynamisch verknüpfen und Ihre Kunden zum Download von Verbinder selbst, das ist nicht Verteilung und Sie sollten sicher sein.

Oh, und IANAL.

  

Wenn ich einen Web-App mit MySQL entwickeln will, wird mein Code verknüpfen gegen die MySQL-Bibliotheken. Soll ich den Sourcecode meiner Webapp in dieser Situation löse mit der GPL in Übereinstimmung zu sein?

  1. Wie andere gesagt haben, wenn Sie die App nicht auf andere da zu verteilen ist kein Problem überhaupt.

  2. Normalerweise würden Sie einen Standard-Datenbank-API entwickeln gegen und lassen den Benutzer entscheiden, welche Datenbank für die App zu verbinden. In diesem Fall gibt es kein Problem. „Der Code“ nicht libmysqlclient werden verknüpft, aber es möglicherweise mit einem Datenbank-Access-Modul kombiniert werden könnte, den Link funktioniert auf libmysqlclient.

  3. Wenn Sie einen Installer verteilen möchten, die Ihre Anwendung und libmysqlclient zusammen einrichtet, die wahrscheinlich nicht als „bloße Aggregation“ zählen würde, so würde es Sie benötigen, um Ihre App unter einer Open-Source-Lizenz zu verteilen. Dies muss nicht jedoch notwendigerweise GPL sein - siehe MySQL FOSS License Exception .

  4. Wenn Sie einen Installer verteilen möchten, die Ihre Anwendung einrichtet und den MySQL-Server selbst, nicht die Ausnahme nicht zur Anwendung, so dass Sie GPL beschränkt sind nur.

Natürlich IANAL, und es gibt sicherlich noch eine gewisse Unsicherheit darüber, was Ableitung gilt als besonders im Hinblick auf die dynamische Verknüpfung. Doch die oben ist mein Verständnis von MySQL AB traditioneller Position auf Lizenzierung, und ich habe nicht jede Änderung post-Sun-Übernahme gehört.

Leider ist es nicht annähernd so sauber geschnitten: Die GPL verbietet Verteilung , ohne die Quelle jeder „abgeleitete Produkt“ zu geben. Die Verteilung wird rechtlich als Akt definiert der Transferquelle von einem Computer auf einen oder mehrere Computer für den amtlichen Gebrauch.

Leider , die auch können Boxen Einsatz auf Server-Cluster, QA-Boxen, Entwickler umfassen, etc. In der modernen dev-Shop, nur den Code, um mehrere Frontend / Backend-Boxen Freigabe ist technisch Verteilung (in die Augen des Gesetzes).

Es spielt keine Rolle, was die Free Software Foundation denkt, zählt es, was ein paar Richter denken, wenn schon jemand / ein Unternehmen zu tun genau das verklagt wird.

Das ist nur ein weiterer Grund, warum die wichtigsten Kunden der GPL in diesen Tagen Unternehmen sind, die ihren Code Konkurrenten halten von Forking . Alle anderen sollten prüfen, weit weniger Lizenzen wie das MIT oder Creative Commons Attribution Lizenz belastend.

Erstens, ich bin kein Anwalt. Sprechen Sie mit einem vor einem Rat hier nehmen.

Darüber hinaus, wenn Sie nicht verteilen Sie Ihren Web-App, brauchen Sie wahrscheinlich nicht Ihre Änderungen zu veröffentlichen. Sie können noch Ihre Web-App zur Verfügung stellen von anderen benutzt werden, wenn Sie die Web-App hosten.

Wenn Ihre Distribution enthält und installiert MySql im selben Paket, es erfordert eine kommerzielle Lizenz.

Aber wenn Sie Ihren Code verteilen, mit einem bloßen „erfordert MySql“ Mitteilung und ein Installationsskript (zum Erstellen / füllt die Tabellen), sollte es kein Problem sein, AFAIK.

IANAL, natürlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top