2009-08-11 12 views
4

MySQL ++ ist lizensiert obwohl LGPL, das bedeutet, dass ich eine ausführbare Datei dynamisch mit ihr verlinken konnte, ohne sich Gedanken darüber machen zu müssen, dass der Quellcode nicht GPL ist. Aber, MySQL verbindet sich mit libmysqlclient {_r}. {A, so} (http://tangentsoft.net/mysql++/#linkerrors), die GPLed ist.
Wie gesehen dann ist MySQL ++ technisch nur ein "Wrapper" (übrigens ein sehr gut implementierter Wrapper, versteh mich nicht falsch) gegenüber dem GPLed libmysqlclient {_r}. {A, so}, wenn ich Links zu MySQL ++ vergleiche Verknüpfung mit libmysqlclient {_r}. {a, so}?Über MySQL ++, GPL und LGPL

Wenn dies der Fall ist, dann ist der Zweck von MySQL ++ LGPLed sinnlos, da dann jede ausführbare Datei, die dynamisch dagegen verlinkt, dann mit libmysqlclient {_r}. {A, so} verknüpft werden muss. Wo liege ich falsch?

+4

Ich stimme zu, diese Frage als off-topic zu schließen, weil ** es um Lizenzierung oder rechtliche Probleme ** geht, nicht um Programmierung oder Softwareentwicklung. [Siehe hier] (http://meta.stackoverflow.com/a/274964/1402846) für Details und die [Hilfe/zum Thema] für mehr. –

Antwort

4

Wenn Ihr Programm unter einer der in der Datei EXCEPTIONS-CLIENT aufgelisteten Lizenzen in der MySQL-Distribution lizenziert ist, muss Ihr Programm nicht GPL-kompatibel sein, um die MySQL-Client-Bibliothek verwenden zu können.

Aber im Allgemeinen, ja, wenn Sie zu einer GPL-Bibliothek verknüpfen möchten, dann muss Ihr Programm GPL-kompatibel sein.

+0

Ein Update: Leider hat Oracle jetzt diese Client-Bibliothek Ausnahme von neuen Versionen von MySQL entfernt. – snap

0

Ich glaube, dass Sie mit der Schlussfolgerung übereinstimmen, dass die Verlinkung gegen die LGPL-Bibliothek A, die selbst mit GPL-Bibliothek B verknüpft ist, mit der Verknüpfung mit einer GPL-Bibliothek übereinstimmt und Ihr Programm daher der GPL unterliegt.

Also ich würde zustimmen, dass libmysql ++ LGPL ist ziemlich sinnlos, aber ich denke, es kann so sein, weil ältere Versionen der MySQL-Client-Bibliotheken verwendet LGPL sein. (Sie sind alle jetzt voll GPL, wie Sie bemerkt haben)

+0

Aufgrund der "speziellen Ausnahme" für den MySQL-Client ist die LGPL-Lizenz von libmysql ++ nicht unbedingt sinnlos, solange das Programm, das sie verwendet, in der Liste der zulässigen Lizenzen enthalten ist (die nicht alle GPL-kompatibel sind). –

+0

Also, was ist "spezielle Ausnahme" für MySQL-Client-C-Bibliothek? Irgendeiner Link? Cheers, –

3

Sie müssen möglicherweise einen Anwalt konsultieren. Ich bin keiner. Aber hier sind einige Dinge zu beachten:

  • Verwenden von MySQL ++ unter der LGPL funktioniert nur, wenn die resultierende Arbeit auf die GPL-Lizenz für MySQL, die eine GPL + Ausnahmen gilt. Daher muss Ihr Programm GPL oder eine der freigestellten Lizenzen sein. Alles andere wäre wahrscheinlich ein Verstoß gegen die GPL.
  • GPL und LGPL gelten, wenn Werke verteilt werden. Ich kann den nVidia-Binärtreiber legal in den GPL-Kernel auf meinem Computer installieren, weil ich ihn nicht auf diese Weise vertreibe. Wenn Ihre Anwendung keine abgeleitete Arbeit von MySQL ist, fällt sie nicht unter das Copyright von MySQL. Wenn die Verbreitung Ihrer App nicht gegen das Urheberrecht von MySQL verstößt, müssen Sie sich nicht um die Bedingungen der MySQL-Lizenz kümmern. Ein Anwalt kann Ihnen sagen, wo die abgeleitete Arbeitsgrenze liegt. Die FSF behauptet, dass die Verknüpfung eine abgeleitete Arbeit schafft.
  • Es kann sein, dass wenn Ihr Programm nicht mit MySQL, sondern nur mit MySQL ++ verknüpft ist, Ihre Anwendung keine abgeleitete Arbeit von MySQL ist. Dies ist im Allgemeinen der Fall, wenn zwischen zwei Komponenten eine ausreichend dicke Schicht vorhanden ist. Eine Java-App, die in der JVM ausgeführt wird, stellt eine Verbindung zur JVM her, zum Beispiel nicht zum Kernel. Es kann nicht als abgeleitete Arbeit des Kernels angesehen werden (* pedantische Anmerkung: die meisten Kernel betrachten Programme nicht als abgeleitete Werke. Aber das Konzept ist dasselbe).
  • Denken Sie daran, dass die Macht der (L) GPL vom Urheberrecht stammt. Wenn A ein abgeleitetes Werk von B ist, benötigen Sie die Erlaubnis des Urheberrechtsinhabers von B, es zu verteilen. Wenn A nicht ist, brauchen Sie keine Berechtigung zum Verteilen von A. Wenn A von B abgeleitet ist, aber B von C abgeleitet ist, kann A von C stammen oder nicht. Sie benötigen die Erlaubnis aller Urheberrechtsinhaber, ihre Werke oder Derivate zu verteilen funktioniert. Die (L) GPL gibt an, unter welchen Bedingungen diese Berechtigung automatisch gewährt wird.

    +0

    Mate, ich habe den Begriff dynamisch Verknüpfung verwendet, so kann ich eine nicht GPL-Software mit einer LGPL-Bibliothek verknüpfen, ohne die Software gegen GPL zu veröffentlichen, wenn ich es verteilen muss. Der Punkt ist ein anderer: Wie zu sehen, wie die LGPL-Komponente Links (dynamisch und oder statisch in diesem Fall ist die gleiche) zu einer GPL-Komponente, ist das nicht (sei LGPL) sinnlos? –

    1

    Oracle (ne & eacute; Sun, ne & eacute; MySQL AB) wird glücklich sell Sie eine GPL-Ausnahme für die C-API-Bibliothek. Dann können Sie die MySQL ++ DLL zusammen mit Ihrem Programm verteilen und unterliegen nur der LGPL.