Entwickler-Ecke

Programmierwerkzeuge - libmysql.dll lizenz


delfiphan - Mo 01.01.07 20:09
Titel: libmysql.dll lizenz
Hallo zusammen!

Darf ein kommerzielles nicht-GPL-Programm die libmysql.dll verwenden (auch wenn sie nicht mitgeliefert wird)? Darf die libmysql.dll auch mitgeliefert werden?
Die DLL Datei ist ja z.B. unter http://www.dll-files.com ohne jegliche Angabe der Lizenz downloadbar... Und die offizielle Seite mysql.com ist so unübersichtlich, dass ich keine abschliessende Antwort finde.

Vielen Dank!


Moderiert von user profile iconGausi: Topic aus Datenbanken verschoben am Mo 01.01.2007 um 19:49


Arne K. - Mo 01.01.07 20:16
Titel: Re: libmysql.dll lizenz
user profile icondelfiphan hat folgendes geschrieben:
Darf ein kommerzielles nicht-GPL-Programm die libmysql.dll verwenden (auch wenn sie nicht mitgeliefert wird)?

Ein kommerzielles nicht-GPL-Programm darf MySQL nicht verwenden.

user profile icondelfiphan hat folgendes geschrieben:
Darf die libmysql.dll auch mitgeliefert werden?

Wenn du die für kommerzielle Anwendungen nötige Lizenz von MySQL erworben hast, meiner Ansicht nach ja! Aber dann bekommst du ohnehin entsprechende Lizenzinformationen von denen.


delfiphan - Mo 01.01.07 20:21

user profile iconReyx hat folgendes geschrieben:
Ein kommerzielles nicht-GPL-Programm darf MySQL nicht verwenden.

* Viele Websites verwenden doch einfach PHP für irgendwelche Online-Shops. Ist das nicht auch eine Art Software (einfach mit einem HTML-Frontend)? Da braucht man iirc keine separate Lizenz.
* Und was, wenn ich den MySql-Client selbst z.B. mittels Indy-Komponenten schreibe und dem Käufer sage, er solle selbst schauen, dass er eine MySql-Kompatible Server Applikation hat?
* Was, wenn ich dem Käufer sage, er solle eine MySql-kompatible DLL selbst anschaffen? Es ist ja wohl nicht verboten, wenn ein Programm auf eine DLL linkt, wenn der Käufer die DLL selbst irgendwie erwerben muss. Es verbietet mir ja wohl niemand, irgendwelche Header-Files zu schreiben. Ich gehe keinen Vertrag mit MySql ein, wenn ich nur die Schnittstelle schreibe, die eigentliche Software aber nicht mitliefere... Der Software-Entwickler verwendet ja die Software von MySql.com nicht.

Danke.


Arne K. - Mo 01.01.07 20:29

Die MySQL-Lizenz verbietet die Nutzung von MySQL (auch der Zugriff, schittegal über welche Schnittstelle) von kommerzieller Software. Das hat mit PHP übrigens wenig gemein, weil es nicht mehr die GPL betrifft, sondern die Lizenz, unter der MySQL für gewerbliche Kunden vertrieben wird. Und die kostet dich Schotter satt ;)

Webapplikationen bilden (laut MySQL-Lizenz) eine exklusive Ausnahme.

Was die weiteren Aspekte betrifft kann ich dir keine Auskunft geben. Zudem weiß ich nicht, ob das nicht schon unter Rechtsberatung fallen würde ... Von der ich ohnehin nur meine Amateurauffassung preisgeben könnte ;)


delfiphan - Mo 01.01.07 20:32

user profile iconReyx hat folgendes geschrieben:
Die MySQL-Lizenz verbietet die Nutzung von MySQL (auch der Zugriff, schittegal über welche Schnittstelle) von kommerzieller Software.

Die Schnittstelle lässt sich ja wohl nicht patentieren (!?). Von mir aus muss der Käufer nicht die Originalsoftware von MySql verwenden; das ist seine Sache. Ausserdem bin ich mit MySql.com keinen Vertrag eingegangen, wieso sollen die Leute mir das verbieten können?
WineHQ schreibt auch die WinAPI und alle Schnittstellen nach. Ich darf doch die Schnittstelle von MySql verwenden, wenn ich die eigentliche Software von MySql nicht mitliefere...

Sonst noch jemand eine Idee?


Arne K. - Mo 01.01.07 20:35

user profile icondelfiphan hat folgendes geschrieben:
user profile iconReyx hat folgendes geschrieben:
Die MySQL-Lizenz verbietet die Nutzung von MySQL (auch der Zugriff, schittegal über welche Schnittstelle) von kommerzieller Software.

Die Schnittstelle lässt sich ja wohl nicht patentieren (!?).

Die Schnittstelle nicht, aber dennoch würde deine Anwendung MySQL benutzen. Das muss ja nicht heißen, dass es irgendwie per DLL verlinkt ist oder gar etwas einkompiliert hat. Eine direkte Nutzung ist da inbegriffen.

user profile icondelfiphan hat folgendes geschrieben:
Von mir aus muss der Käufer nicht die Originalsoftware von MySql verwenden; das ist seine Sache.

Richtig.

user profile icondelfiphan hat folgendes geschrieben:
Ausserdem bin ich mit MySql.com keinen Vertrag eingegangen, wieso sollen die Leute mir das verbieten können?

Du bist mit Microsoft keinen Vertrag eingegangen. Trotzdem können die dir verbieten, einfach ihre Software zu benutzen. Du bist mit mir keinen Vertrag eingegangen, trotzdem kann ich dir verbieten, dich auf meinen Computer zu cracken. Du bist mit deinem Land keinen Vertrag eingegangen; trotzdem gelten für dich deutsche Gesetze. Merkst du was? ;)


delfiphan - Mo 01.01.07 20:37

Sorry, ich seh's immer noch nicht ein. Wieso muss ich als Software-Entwickler zwingend die Lizenz beschaffen? Ich verwende beim Programmieren kein MySql. Der Benutzer verhält sich wenn schon illegal, sobald er die Originalsoftware ohne Lizenz verwendet. Er könnte genausogut eine MySql-kompatible Software verwenden. Wieso soll ich als Entwickler dann trotzdem für die Originalsoftware was zahlen? Das ist doch nicht mein Problem.


Arne K. - Mo 01.01.07 20:40

Weil du als Entwickler deine Software kommerziell vertreibst. Du verdienst also Geld mit einer Software, die zumindest Teile ihrer Funktionalität nur deshalb hat, weil sie MySQL verwendet, also indirekt auf diesem Produkt basiert oder sich zumindest darauf stützt. Dann ist es doch völlig klar, dass die Vertreiber von MySQL es nicht einsehen würden, wenn du wegen ihrem teuer entwickelten Produkt mehr Verkäufe tätigst und mehr Geld verdienst, als ohne es, aber dafür nicht auch ein wenig Geld an sie zurück fallen würde.


delfiphan - Mo 01.01.07 20:41

Aber nochmals: Der Käufer muss die Lizenz beschaffen, um mein Programm legal verwenden zu können (wenn 1000 Leute mein Programm kaufen, dann müssen 1000 Leute die Mysql-Software kaufen. Dort verdienen die MySql-Leute ihr Geld, nicht bei mir) -- Beziehungsweise mein Kunde ist ja nicht verpflichtet, die Originalsoftware zu verwenden. Wenn er eine Alternative benutzt, wieso sollte MySql.com überhaupt Geld von irgend jemandem erhalten?


Arne K. - Mo 01.01.07 20:44

Wenn ich fmod benutze um in meinem Spiel (das ich bei MediaMarkt und co für 60€ das Stück vertreibe) eine Musikunterstützung zu integrieren, dann muss ich Lizenzgebühren an die zahlen. Laut deiner Argumentation müsste ich das nicht, weil der Kunde ja die Möglich hätte, eine entsprechende Alternative zu verwenden und einfach die fmod.dll durch eine freie Engine mit gleicher Schnittstelle zu ersetzen. Tolle Logik :zustimm:

Funktioniert in der Praxis leider nicht ganz so schön ...
Deine Idee mit Kunde bezahlt Software geht in der Praxis meiner Meinung nicht auf.


delfiphan - Mo 01.01.07 20:48

Ja klar musst du die Lizenz bezahlen, wenn du die fmod.dll mitlieferst. Wenn nicht, dann logischerweise nicht.
Wenn ich ein Programm schreibe, welche die kernel32.dll verwendet, dann muss ich der Microsoft nichts bezahlen. Der Kunde muss ein legales Windows erwerben - oder er kann die freie Alternative WineHQ [http://www.winehq.com/] verwenden. Wo liegt jetzt der Unterschied zu MySql?


MrSaint - Mo 01.01.07 20:59

also ohn emich jetzt zu weit rauszulehnen: ich glaub für solche "Laufzeit-Linkungen" gibt es die LGPL. Jeder Programm mit jeder Lizenz darf eine Bibliothek (oder was auch immer) welche unter der LGPL steht zur Laufzeit linken. Nicht zur Compilezeit. Genau von sowas sprichst du ja gerade, du möchgtest zur Laufzeit die DLL einbinden (also irgendwie mit LoadLibrary(...)) und dann meinst du du bist aus dem Schneider. Meine Meinung deckt sich mit der von Reyx, weil es die LGPL genau aus diesem Grund gibt, dass solche laufzeit-Linkungen erlaubt sind, weil sie bei der GPL nicht erlaubt sind.
So hab ich das im Hinterkopf, keine Garantie darauf.



MrSaint

EDIT: wenn es eine kommerzielle Softeware ist, dann geh doch einfach zu einem Rechtsanwalt und lass die Frage klären. Du verdienst ja sowieso was an der Software, dann solltest du auhch den Rechtsanwalt zahlen können (oder dein Chef ;) ).


delfiphan - Mo 01.01.07 21:02

Bei der LGPL darfst du dann die DLL mitliefern. Davon ist nicht die Rede. Ich liefere keinerlei MySql-Software mit, nur das Potential. Ausserdem sehe ich kein Gegenargument gegen die kernel32.dll-Geschichte und WineHQ.


Arne K. - Mo 01.01.07 21:02

@MrSaint
Prinzipiell ungefähr richtig, soweit ich weiß. Hat aber einen klitzekleinen Haken:
MySQL wird nicht unter der LGPL lizensiert!
Und schon gar nicht bei kommerzieller Anwendung!

EDIT: @delfiphan
Bei fmod wäre die Sache _nicht_ in Ordnung, auch wenn du die DLL nicht mitlieferst! Denn der Kunde müsste sich die freie Version besorgen und deine kommerzielle Software damit betreiben -> Peng, Lizenzverstoß!
Denke doch bitte einmal kurz über deine Logik nach: Laut deiner Ansicht könnte man sich vor ausnahmslos jeder Lizenzgebühr drücken! Du machst es dir, meiner Meinung nach, etwas zu einfach ;)

Wo der Unterschied zu MySQL liegt? MySQL verbietet dir in der Lizenzbestimmung (die du als kommerzieller Entwickler zwangsmäßig akzeptieren musst, wenn du dein Programm MySQL benutzen lässt) den Vertrieb von kommerzieller Software in Verbindung mit der kostenfreien Lizensierung des SQL-Daemons. Ich kenne die Lizenz von MS nicht auswendig, bin mir aber relativ sicher, dass dort in der Lizenzvereinbarung (auch wenn rechtl. anfechtbar) der Benutzer angehalten wird, ein legales Windows zu benutzen! Da steht imho nichts vom Programmierer drin, der gefälligst ein kommerziell zugelassenes Windows zu besitzen hat, wenn er eine Windows-Anwendung programmiert. Das erübrigt sich aus erstgenanntem Faktor.


tommie-lie - Mo 01.01.07 21:15
Titel: Re: libmysql.dll lizenz
delfiphan, ich wollte dir nach dem Abendessen antworten, aber mittlerweile hat sich der Thread so entwickelt, daß ich nicht mehr verstehe, was du eigentlich willst.
Könntest du bitte konkret schildern, was du entwickelt hast und wie du es vertreiben willst, oder geht es dir nur darum, die Arbeit anderer Leute kostenlos zu verwenden, während du aus dem Produkt deiner Arbeit Geld schlagen kannst?

Ansonsten gibt es hier [http://www.mysql.com/company/legal/licensing/] Texte über das Licensing von MySQL.

Moderiert von user profile iconmatze: URl-Tag korrigiert


delfiphan - Mo 01.01.07 21:28

Zitat:
Peng, Lizenzverstoß!

Welche Lizenz? Es ist also deiner Meinung nach verboten, eine Alternative zu verwenden? Dann kreiere ich eine DLL mit allen möglichen Signaturen von Prozeduren drin und stelle die ins Netz (mit einer entsprechenden Lizenz). Jetzt darf plötzlich niemand mehr eine DLL benutzen sonst wäre das Lizenzverstoss (ich hab ja alle mögliche Signaturen drin). Das macht doch keinen Sinn.
Die Leute können meine Software nicht vollständig ausschöpfen, so lange sie die DLL nicht haben. Wenn der Kund nun die DLL legal besorg, dann verdient die Firma Geld. Wo ist jetzt das Problem?

@tommie-lie:
Ich hab ein nicht-GPL-Programm, welches die libmysql.dll verwenden soll. Ich will aber die DLL nicht mitliefern und dafür bezahlen, da es nur ein kleines Feature ist, und einige Leute dieses Feature gar nicht brauchen werden.

Ich wiederhole meine Wine-Geschichte.

Ich entwickle ein Programm, welches kernel32.dll verwendet. Ich schreibe die Applikation unter Linux und verwende dabei die freie Alternative der kernel32 von WineHQ. Ich verkaufe das Programm ohne kernel32.dll. Ist doch legal, oder?
Ich entwickle ein Programm, welches libmysql.dll verwendet. Ich schreibe die Applikation unter Linux und verwende dabei irgendeine Alternative der libmysql (nehmen wir an, die existiert). Ich verkaufe das Programm ohne libmysql.dll. Das soll jetzt plötzlich illegal sein?


Gausi - Mo 01.01.07 21:30

Wenn dein Programm auf Funktionen angewiesen ist, die diese GPL-dll bereitstellt, dann muss dein Programm auch unter der GPL stehen. Das ist eine Bedingung der GPL.
Wenn dein Programm ohne diese dll voll lauffähig ist, aber bei vorhandensein dieser dll evtl. etwas mehr kann, dann ist das nach einer Interpretation der GPL erlaubt. Vorraussetzung ist dabei afaik aber auch, dass dein Programm nicht explizit nach der dll sucht, sondern das Einbinden quasi automatisch erfolgt, z.B. über ein Plugin-System. Dann hast du als Entwickler kein Problem, wenn der Anwender eine GPL-Bibliothek mit deinem Programm verwendet. Wenn du den User aufforderst, eine spezifische GPL-dll zu verwenden, ist das afaik nichtim Sinne der GPL.

Ein Beispiel dafür gibts bei der bass.dll. Die bass kann man - wie fmod auch - für Freeware kostenlos benutzen. Es gibt aber einige bass-Erweiterungen, die unter der GPL stehen (z.B. das aac-Plugin). Diese darf man nicht explizit in Closed-Source einbinden. Man kann aber das Plugin-System nutzen.
Dabei werden alle bass_xxx.dlls eingebunden, und über das Pluginsystem lassen sich Infos über das geladene Plugin ermitteln (z.B. die unterstützten Dateiformate), um so zur Laufzeit das Programm mit der erweiterten Funktionalität auszustatten (z.B. die Opendialogfilter zu ergänzen).
Was nicht geht ist: Einen Player auf der bass.dll basierend zu programmieren, das Ding ohne die bass zu verkaufen und beim Setup dem User zu erklären: "Bitte laden sie hier die Datei bass.dll herunter".


delfiphan - Mo 01.01.07 21:38

@Gausi: Es ist dann wenn schon illegal für den User, der die GPL-dll einfach zusammen mit meinem Programm braucht. Solange ich die GPL-Software aber nicht mitliefere, habe ich keine Verpflichtungen gegenüber der GPL. Beim MySQL-Fall müsste sich der User eine Lizenz kaufen, um meine Software legal zu betreiben. So oder so ist das aber nicht mein Problem als Entwickler. Keine Software mitgeliefert, keine Verpflichtung (zu mindest für den Entwickler).
Da hier niemand meiner Meinung ist: Was ist jetzt mit dem WineHQ-Projekt und meiner Applikation, die kernel32 voraussetzt? Das ist 1:1 derselbe Fall, oder?

mysql.com hat folgendes geschrieben:
For OEMs, ISVs, and VARs who distribute MySQL with their products, and do not license and distribute their source code under the GPL, MySQL provides a flexible OEM Commercial License.
"Who distribute" - ich liefere die aber eben gerade nicht mit.


Gausi - Mo 01.01.07 22:07

Windows steht nicht unter der GPL, daher ist das was komplett anderes. Wenn du dir ein System baust, was ohne Windows auskommst, und worauf trotzdem das MS-Office-Paket läuft, ist das in Ordnung.

Frage: Funktioniert dein Programm ohne diese Bibliothek? D.h. kann der User das, was das Programm können soll, ohne diese dll machen? Wenn ja - hast du kein Problem damit.
Wenn nein: Dann benutzt dein Programm GPL-Code und muss somit erstmal auch unter der GPL stehen. Oder, wenn du das nicht willst (Closed Source), dann bietet dir MySQL die Möglichkeit, eine entsprechende Lizenz zu kaufen - dann kannst du die dll auch direkt mitliefern. Und du bekommst dadurch die Erlaubnis, dass dein Closed-Source-Programm eine GPL-Bibliothek benutzen darf.


delfiphan - Mo 01.01.07 22:25

@Gausi: Der Fall hat nichts mit GPL oder Micorosft EULA zu tun. Ist unabhängig von einer Lizenz: "Ich entwickle ein Programm, welches XYZ.dll verwendet. Ich schreibe die Applikation unter Verwendung einer Freewarealternative von XYZ.dll. Mein Programm verkaufe ich dann ohne die XYZ.dll (weder Original noch Alternative). "
Ist doch völlig legal, und zwar unabhängig von der Lizenz der Originalsoftware.

Sorry aber ihr versteht mein Problem falsch. Natürlich könnt ich für MySQL zahlen und den Code mitliefern. Ich will den Code aber nicht mitliefern.

GPL hat folgendes geschrieben:
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

No Distribution, No Copying, No Modification, No Verpflichtung gegenüber GPL! Soviel zu GPL. Aber es geht mir im Grunde nicht mal um GPL, oder Microsoft Software. Es geht darum, dass ich als Entwickler keine Verpflichtungen habe, wenn ich die Fremdsoftware nicht mitliefere, egal unter welcher Lizenz die Fremdsoftware steht.

Versteht mich denn keiner? =(

Zu meinem Programm: Ich brauche die Datenbank lediglich fürs Logging. Es gibt auch die Option, die Sache als CSV-Datei zu speichern. Aber man ist nicht mal verpflichtet, überhaupt irgendwelche Logdateien anzulegen. Ich dachte mir einfach: Wer das MySQL-Feature nutzen will, soll sich die entsprechende MySQL-Lizenz kaufen. Ich liefere MySQL in keinerlei Weise mit und bezahle demnach auch nichts.

Aber mir geht's hier auch ein bisschen ums Prinzip. Deswegen frage ich so hartnäckig nach.

Ich werd mal in einem MySql-Forum fragen. Danke erstmal für eure Antworten.


tommie-lie - Di 02.01.07 01:00

user profile icondelfiphan hat folgendes geschrieben:
@tommie-lie:
Ich hab ein nicht-GPL-Programm, welches die libmysql.dll verwenden soll. Ich will aber die DLL nicht mitliefern und dafür bezahlen, da es nur ein kleines Feature ist, und einige Leute dieses Feature gar nicht brauchen werden.
Du linkst gegen die DLL. Ob du das immer tust, oder nur wenn das Käuzchen bei Vollmond dreimal ruft, ist im Sinne der GPL irrelevant.

delfiphan hat folgendes geschrieben:
Ich schreibe die Applikation unter Linux und verwende dabei irgendeine Alternative der libmysql (nehmen wir an, die existiert). Ich verkaufe das Programm ohne libmysql.dll. Das soll jetzt plötzlich illegal sein?
Nimm an, diese Alternative existiert, dann benutze die Alternative. Solange die Alternative nicht existiert, bist du an die Lizenzbedingungne der DLL gebunden. Und übrigens würde das auch gelten, wenn eine solche Alternative nur unter Linux existieren würde, denn sobald du ein Windows-Binary erzeugst, implizierst du, daß das Ding nur mit der Original-Clientbibliothek läuft, denn es gibt schließlich keine andere.

user profile icondelfiphan hat folgendes geschrieben:
@Gausi: Der Fall hat nichts mit GPL oder Micorosft EULA zu tun.
Doch. Es gibt Bibliotheken, die gelinkt werden wollen, und es gibt Bibliotheken, die nur von GPL-Software gelinkt werden wollen.

delfiphan hat folgendes geschrieben:
GPL hat folgendes geschrieben:
[GPL-Zitat gesnippt]

No Distribution, No Copying, No Modification, No Verpflichtung gegenüber GPL! Soviel zu GPL.
Du liest falsch. Indem dein Programm eine GPL-Library linkt, wird sie Teil deines Programmes und damit dein Programm "derived work", womit es unter GPL veröffentlicht werden muss, oder einen Verstoß gegen die GPL darstellt. Das ist der virale Charakter der GPL, den die LGPL nicht hat. Bis 2001 war die libmysql noch unter der LGPL zu haben und somit in deinem Szenario einsetzbar, jetzt ist sie das nicht mehr.

delfiphan hat folgendes geschrieben:
Es geht darum, dass ich als Entwickler keine Verpflichtungen habe, wenn ich die Fremdsoftware nicht mitliefere, egal unter welcher Lizenz die Fremdsoftware steht.
Wie kommst du denn darauf? Du profitierst von der Arbeit anderer und willst nicht dafür zahlen (muss ja nicht notwendigerweise in barer Münze sein)?

delfiphan hat folgendes geschrieben:
Ich werd mal in einem MySql-Forum fragen.
Ich habe (d)eine Frage auf forum.mysql.com gesehen. Wenn du die anderen Fragen diesbezüglich gelesen hättest, wäre dir vielleicht aufgefallen, daß alle MySQL-Officials, die auf solche Fragen antworten, ein Template haben, das sie posten. Man wird dir raten, den Sales Support zu fragen. Tu's gleich, dann sparst du dir das Warten auf eine Antwort.
Eine glorreiche Ausnahme bildet dieser [http://forums.mysql.com/read.php?4,34777,45750#msg-45750] Post, bei dem man ausnahmsweise mal eine klare Ansage erhält, (nämlich daß auch die Client Library als vollwertiges Stück Software angesehen wird, das eine Lizenz fordert) allerdings auch erst, nachdem der OP ein wenig auf die Kacke gehauen hat.

Meine Antwort wäre, daß du für alle User, die MySQL nicht benutzen, keine Lizenzgebühren zahlen musst, weil die DLL nicht gelinkt wird (vorrausgesetzt du linkst "on access"), aber sobald ein User die MySQL benutzt, wird diese eine Kopie "derived work" und muss von dir unter der GPL veröffentlicht werden, oder du benötigst eine kommerzielle Lizenz, die es dir erlaubt, daß Anwender dein Programm tatsächlich gegen die Client Library linken dürfen.


wolke - Di 02.01.07 01:11

das thema interessiert mich selbst, deswegen habe ich jetzt ein wenig rumgelesen um genaueres rauszufinden. dabei scheint es ein "schlupfloch" zu geben wie du trotz kommerzieller software mysql-support anbieten kannst:

es gibt unter LGPL lizensierte datenbankschnittstellen; diese darfst du in kommerzieller software nutzen. wenn die dabei wiederum zugriff auf mysql-datenbanken anbieten scheinst du aus dem schneider zu sein, da du ja nur die funktion der bibliothek nutzt und nicht "von mysql".

scheint mir aber auch ein wenig weit hergeholt - am besten du machst dich selbst schlau (über google). das hilft natürlich wenig wenn du die lizenz der ominösen libmysql.dll nicht kennst - aber vielleicht findest du eine ähnliche bibliothek die da klarere aussagen macht.

edit:

alte information zu mysql 3:

Zitat:
3.3 Example Licensing Situations
[...]
- If your product requires MySQL, you need a license for any machine that runs the mysqld server. For example, if you've designed your application around MySQL, then you've really made a commercial product that requires the engine, so you need a license.
- If your application does not require MySQL, you need not obtain a license. For example, if using MySQL just adds some new optional features to your product (such as adding logging to a database if MySQL is used rather than logging to a text file), it should fall within normal use, and a license would not be required.
In other words, you need a license if you sell a product designed specifically for use with MySQL or that requires the MySQL server to function at all. This is true whether or not you provide MySQL for your client as part of your product distribution.
It also depends on what you're doing for the client. Do you plan to provide your client with detailed instructions on installing MySQL with your software? Then your product may be contingent on the use of MySQL; if so, you need to buy a license. If you are simply tying into a database that you expect already to have been installed by the time your software is purchased, then you probably don't need a license.


http://www.science.uva.nl/ict/ossdocs/mysql/manual_Licensing_and_Support.html

Zitat:
The change from the LGPL to the GPL for the client libraries was made in 2001 during the development of MySQL 4.0 to help MySQL AB more easily differentiate between a proprietary user who should buy a commercial license and a free software user who should use the GPL license. Previously there were people that were misusing the GPL by distributing the MySQL server tightly coupled with their applications and claiming that the GPL doesn't affect them because the client libraries were free to use.


Ich kenne mich nicht wirklich aus (habe mich noch nicht damit beschäftigt), aber vielleicht "reicht" dir ja eine MySQL 3-Datenbankanbindung. Die Bibliotheken könnten ja kompatibel zu aktuellen Datenbanken sein (bzw. die Datenbanken abwärtskompatibel?).


tommie-lie - Di 02.01.07 01:25

user profile iconwolke hat folgendes geschrieben:
das thema interessiert mich selbst, deswegen habe ich jetzt ein wenig rumgelesen um genaueres rauszufinden. dabei scheint es ein "schlupfloch" zu geben wie du trotz kommerzieller software mysql-support anbieten kannst:

es gibt unter LGPL lizensierte datenbankschnittstellen; diese darfst du in kommerzieller software nutzen. wenn die dabei wiederum zugriff auf mysql-datenbanken anbieten scheinst du aus dem schneider zu sein, da du ja nur die funktion der bibliothek nutzt und nicht "von mysql".
Das ist nicht wirklich ein Schlupfloch. Ich schreibe ein Programm, und das linkt eine DLL, die unter der LGPL ist. Diese wiederum linkt eine DLL, die unter der GPL ist. Somit hat auch mein Programm die GPL-DLL gelinkt und mein Programm muss ebenfalls unter der GPL veröffentlicht werden.
Wenn man mal genauer überlegt, wäre dein Vorgehen das Aus für die GPL. Wenn ich jede Bibliothek unter GPL einfach verwenden könnte, indem ich einen zweiten, dünnen Layer zwischenschiebe, der unter der LGPL ist, wäre die GPL komplett wertlos.


wolke - Di 02.01.07 01:29

da hast du schon recht... dennoch behaupten einige, dass es in solchen fällen wie hier funktioniert. das wesentliche an der diskussion ist doch, dass man ja keinen code BASIEREND auf GPL-code schreibt, sondern nur funktionalität von dieser software nutzt. man verändert ja nichts an der datenbank/schnittstelle.


tommie-lie - Di 02.01.07 01:37

user profile iconwolke hat folgendes geschrieben:
da hast du schon recht... dennoch behaupten einige, dass es in solchen fällen wie hier funktioniert.
Haben die die GPL gelesen (und verstanden)?

wolke hat folgendes geschrieben:
das wesentliche an der diskussion ist doch, dass man ja keinen code BASIEREND auf GPL-code schreibt, sondern nur funktionalität von dieser software nutzt.
Eben. Und damit basiert meine Arbeit auf der anderer, auch ohne daß ich im Quellcode anderer rumpfusche.


delfiphan - Di 02.01.07 01:54

@tommie-lie&Vollmond: In der GPL steht auch, dass sie nur gilt, wenn man den Source weitergibt, kopiert oder modifiziert. Das tue ich nicht, also gilt die GPL imho nicht.

@Es existiert keine Alternative: Ich brauche ja nur Connect, Query und Close. Und als Query brauche ich lediglich ein INSERT. Dann schreib ich mir doch glatt eine eigene DLL, die das "mysql_query" implementiert. Die schreibt das Query einfach in ein Text-File rein. Jetzt ist es plötzlich wieder legal? Finde ich etwas lächerlich.

@Es gab mal eine LGPL-Version von MySQL: Super, dann leg ich die Version 3 bei. Mit den wenigen Features, die ich brauche, sollte das ja kein Problem sein. Wie ich gerade sehe sind die externen Funktionen die ich brauche gleich wie in der neuen Version.

Wie auch immer: Ich hab soeben diese Seite gefunden (http://blog.koehntopp.de/archives/206-MySQL-und-die-Lizenzen.html). Naja, die MySQL-Leute machen sich bei mir sehr unbeliebt. Ich schreib ja mysql-kompatible Software ohne MySQL-Software, das ist ja perfekt für die MySQL Firma! Dann kaufen meine Kunden MySQL-Software um das Feature zum Laufen zu bringen und MySQL verdient jedesmal mit.

Edit: Hab jetzt die paar Zeilen mittels ODBC-API geschrieben. So ist es ohnehin am Universellsten. Danke für die Diskussion.


tommie-lie - Di 02.01.07 11:30

user profile icondelfiphan hat folgendes geschrieben:
@tommie-lie&Vollmond: In der GPL steht auch, dass sie nur gilt, wenn man den Source weitergibt, kopiert oder modifiziert. Das tue ich nicht, also gilt die GPL imho nicht.
Die GPL hat mit Quellcode doch überhaupt nichts zu tun. Du schreibst ein Programm, daß GPL-Code nutzt, und damit ist es in GPL-Speak "work based on the Program" und wenn du dein Programm weitergibst, gibst du auch Teil des GPL-Codes weiter und somit trifft dich die GPL.

delfiphan hat folgendes geschrieben:
Ich brauche ja nur Connect, Query und Close. Und als Query brauche ich lediglich ein INSERT. Dann schreib ich mir doch glatt eine eigene DLL, die das "mysql_query" implementiert. Die schreibt das Query einfach in ein Text-File rein. Jetzt ist es plötzlich wieder legal? Finde ich etwas lächerlich.
Du würdest keinen urheberrechtlich geschützten Code benutzen, sondern eigenen schreiben, somit wäre es legal. Im Gegensatz zur FSF und allen anderen Leuten, die bei der GPL etwas zu melden haben, scheint aber die MySQL AB (laut von dir verlinktem Blog) der Meinung zu sein, daß die GPL auch über IP ihren viralen Charakter ausübt. Das ist in dieser Form unüblich, würde aber bedeuten, daß du auch nicht das Protokoll einer Clean-Room-Analyse unterziehen dürftest und deine eigene Client-Bibliothek schreiben dürftest. Das ist ein sehr unglücklicher Standpunkt für MySQL, und wer im Zweifelsfall Recht hat, kann nur ein Gericht abschließend beurteilen. Normal ist es jedenfalls nicht und entspricht auch nicht dem Wortlaut der GPL. Wenn das der Fall wäre, dürfte beispielsweise ein Webserver unter GPL nicht vom Internet-Explorer oder dem Firefox angesurft werden.

delfiphan hat folgendes geschrieben:
Super, dann leg ich die Version 3 bei. Mit den wenigen Features, die ich brauche, sollte das ja kein Problem sein. Wie ich gerade sehe sind die externen Funktionen die ich brauche gleich wie in der neuen Version.
IIRC hat sich das Protokoll zwischen 3.x und dem aktuellen Server geändert. Zumindest laufen nicht alle MySQL-Treiber mit allen Datenbankservern.

delfiphan hat folgendes geschrieben:
Naja, die MySQL-Leute machen sich bei mir sehr unbeliebt.
Aber sonst geht's dir noch gut, ja? Ich verstehe deinen Standpunkt durchaus, kann aber nicht nachvollziehen, wie jemand so selbstverständlich und hartnäckig darauf beharren kann, Werke anderer zu benutzen, ohne selbst dafür etwas zu leisten. Wie beliebt ist denn Microsoft bei dir, die ihre Produkte überhaupt nicht quelloffen und erst recht nicht kostenlos und schon gar nicht frei zur Verfügung stehen? Oder etwa Borland, die kein bisschen besser sind? Wenn dir die Lizenz, die Arbeitsweise oder der Name des Hausdackels eines Produktes nicht gefällt, benutz' es einfach nicht. Es ist ja nicht so, als wäre MySQL die einzige Datenbank, die SQL spricht.

delfiphan hat folgendes geschrieben:
Ich schreib ja mysql-kompatible Software ohne MySQL-Software, das ist ja perfekt für die MySQL Firma!
Was haben die denn davon?

delfiphan hat folgendes geschrieben:
Dann kaufen meine Kunden MySQL-Software um das Feature zum Laufen zu bringen und MySQL verdient jedesmal mit.
Nur wenn die Kunden es kommerziell einsetzen. Wenn du nur Privatkunden hast, wärst du der einzige, der eine kommerzielle Lizenz von MySQL braucht.

delfiphan hat folgendes geschrieben:
Edit: Hab jetzt die paar Zeilen mittels ODBC-API geschrieben. So ist es ohnehin am Universellsten. Danke für die Diskussion.
Ich kenne die ODBC-Struktur nicht gut genug, um sagen zu können, ob das die GPL verletzt, oder nicht.


Arne K. - Di 02.01.07 12:43

Ich verstehe das ganze GPL-Gehader nicht.
Für kommerzielle Anwendungen existiert kein unter GPL oder LGPL lizensiertes MySQL! In dem Moment, in dem du deine Software kommerziell vertreibst, hat sich das Thema (L)GPL erledigt! Dann gibt es nur noch die Alternative, eine kommerzielle Lizenz von MySQL zu erwerben. In sofern ist jede Debatte über GPL hin oder her hier hinfällig, da sie bei deiner kommerziellen Applikation ohnehin nicht greift.


tommie-lie - Di 02.01.07 13:23

user profile iconReyx hat folgendes geschrieben:
Ich verstehe das ganze GPL-Gehader nicht.
Für kommerzielle Anwendungen existiert kein unter GPL oder LGPL lizensiertes MySQL!
Das unter GPL lizensierte MySQL steht jedem in seiner Benutzung frei, ob kommerziell oder nicht. Und die GPL verbietet keine kommerzielle Nutzung. Er könnte durchaus die GPL-Version benutzen, wenn er das wöllte.


Arne K. - Di 02.01.07 14:38

Mhh ... Ich hatte das anders in Erinnerung, aber stimmt, du hat Recht. In der Praxis würde es nur niemand machen ;)


delfiphan - Di 02.01.07 15:34

@tommie-lie: Wir reden aneinander vorbei. "Du schreibst ein Programm, daß GPL-Code nutzt". Das Programm nutzt keinen GPL-Code. Keine einzige Zeile. Ich kann mein ganzes Programm schreiben, ohne dass ich den GPL-Code jemals angerührt oder gesehen habe. Klar, um das Feature zu nutzen, braucht man dann den GPL-Code. Aber ich als Entwickler kann nicht angeklagt werden, ich hab nie was mit dem GPL-Code zu tun gehabt. Ich muss den weder gesehen noch downgeloadet haben. Die Schnittstelle (Signaturen der Prozeduren) lässt sich nicht patentieren, ansonsten gäbe es WineHQ auch nicht.

Machen sich unbeliebt: Ich nutze als Entwickler kein Werk anderer. Was ich sage ist, dass die, die das MySQL-Feature nutzen wollen, sich eine mit meinem Programm kompatible Lizenz erwerben sollen. Falls sie das Feature nicht brauchen, können die es lassen. Die Leute, die das Feature wollen, die sollen eine Lizenz von MySQL bezahlen und sich so legal die closed-source-kompatible DLL besorgen. Es geht mir ums Prinzip.

"Nur wenn die Kunden es kommerziell einsetzen": Stimmt nicht. Alle müssen das. Allein die kommerzielle Version von MySQL ist gesetzlich kompatibel mit meinem Programm.

Ich hab jetzt bereits eine Lösung (ODBC). Mein Programm kommuniziert so nur noch mit ODBC und der User kann selbst wählen, ob er die Logdaten in eine Access-Datenbank, Text-File oder Excel Tabelle haben will. Natürlich registriert sich MySQL auch als ODBC-Treiber, d.h. man kann mein Programm theoretisch immer noch mit MySQL zusammen benützen. Das muss ich aber als Programmierer nicht mitberücksichtigen. Ich muss mich lediglich an die Lizenz von ODBC halten.
Oder soll ich jetzt eine MySQL-Lizenz erweben, nur weil mein Programm über ODBC mit MySQL kommunizieren könnte? Nein, ganz bestimmt nicht. Sonst könnte ich einen ODBC-kompatiblen delfiphanSQL-Treiber programmieren und alle Welt würde mir Geld schulden, ob mein Treiber gebraucht wird oder nicht. Das geht dann auch wieder nicht.


tommie-lie - Di 02.01.07 16:27

user profile icondelfiphan hat folgendes geschrieben:
@tommie-lie: Wir reden aneinander vorbei. "Du schreibst ein Programm, daß GPL-Code nutzt". Das Programm nutzt keinen GPL-Code. Keine einzige Zeile. Ich kann mein ganzes Programm schreiben, ohne dass ich den GPL-Code jemals angerührt oder gesehen habe.
Sieh's so: Die Deklarationen der Funktionen, die du aufrufst, und deren Deklaration du somit nutzt, sind unter GPL.

delfiphan hat folgendes geschrieben:
Klar, um das Feature zu nutzen, braucht man dann den GPL-Code. Aber ich als Entwickler kann nicht angeklagt werden, ich hab nie was mit dem GPL-Code zu tun gehabt. Ich muss den weder gesehen noch downgeloadet haben.
Nein, musst du nicht. Aber du gehst hier von einer für die GPL grundfalschen Annahme aus, daß das, was nicht dein Code offensichtlich macht, auch wirklich nicht macht. Dein Code wird zusammen mit Code, der unter GPL lizensiert ist, zusammengebracht und zusammen im Kontext eines zusammenhängenden Programmes ausgeführt. Daß dies erst auf den Rechnern deiner Anwender passiert, ist dabei egal. Gäbe es die LGPL nicht, würden viele Entwickler vor dem gleichen Problem stehen, wie du, und es gäbe weder VMware-Produkte, noch Grafikkartentreiber von nVidia oder ATI, GoogleEarth, Firefox, Mozilla oder irgendein anderes Programm, das nicht die GPL oder eine dazu kompatible Lizenz benutzt, für Linux. Ich sage nicht, daß ich diesen Aspekt der GPL befürworte, aber es ist nunmal so, daß auch dynamisches Linken ein Werk schafft, das auf dem Werk der Bibliotheksautoren basiert.

delfiphan hat folgendes geschrieben:
Die Schnittstelle (Signaturen der Prozeduren) lässt sich nicht patentieren, ansonsten gäbe es WineHQ auch nicht.
Entweder du verkennst den Sinn von Patenten, oder den von Sotwarelizenzen. Meine Muskeln sind auch nicht patentiert, trotzdem kann ich per Lizenz bestimmen, daß eine Stunde körperlicher Arbeit mit einem gewissen Entgelt belegt wird. Im Volksmund nennt man sowas Arbeitsvertrag.

delfiphan hat folgendes geschrieben:
Machen sich unbeliebt: Ich nutze als Entwickler kein Werk anderer.
Nicht direkt offensichtlich, aber dennoch tust du es.

delfiphan hat folgendes geschrieben:
Was ich sage ist, dass die, die das MySQL-Feature nutzen wollen, sich eine mit meinem Programm kompatible Lizenz erwerben sollen.
Nein. Du bist derjenige, der ein kommerzielles Programm vertreibt, das gegen die libmysql linkt.

Zu ODBC kann ich immer noch nicht viel sagen. Im Zweifelsfall würde ich sagen, daß dein Programm nicht dazu entwickelt wurde, mit MySQL zu laufen, und die MySQL-Lizenz somit nicht auf dein Programm angewendet werden muss. Wenn ODBC rein auf shared code basiert und am Ende wieder ein Einzelprogramm aus Code, ODBC-Layer und den ODBC-Providern im Speicher liegt, würde ich eher sagen, daß es verboten ist, reine GPL-ODBC-Treiber zu entwickeln, es sei denn man schließt die Benutzung als ODBC-Treiber explizit aus der Anwendung der GPL aus (siehe GPL-FAQ).


delfiphan - Di 02.01.07 18:30

Nach deiner Logik dürfte ich kein Windows-Programm mit Wine unter Linux schreiben. Denn ich würde dann ja die Schnittstelle von kernel32.dll brauchen, ohne eine Windows-Lizenz zu besitzen.

Der einzige Unterschied ist, dass es in unserer Welt tatsächlich eine wine-Alternative von kernel32.dll gibt, aber keine Alternative für libmysql.dll. Es ist aber meiner Meinung nach völlig irrelevant, ob die existiert oder nicht. Wine könnte auch ein privates Projekt von mir sein. Es könnte sein, dass es Wine morgen nicht mehr gibt weil es sich selbst vernichtet hat. Dann wäre mein Programm plötzlich wieder illegal, weil es keine Alternative mehr gibt? Das macht keinen Sinn.


tommie-lie - Di 02.01.07 18:47

user profile icondelfiphan hat folgendes geschrieben:
Nach deiner Logik dürfte ich kein Windows-Programm mit Wine unter Linux schreiben. Denn ich würde dann ja die Schnittstelle von kernel32.dll brauchen, ohne eine Windows-Lizenz zu besitzen.
Die Frage ist, was die Lizenz von Kernel32.dll zulässt. Der Fall, es unter Linux zu entwickeln mit einer ABI-kompatiblen DLL mag grenzwertig sein, aber die Anwendung wäre immerhin nicht dazu bestimmt, mit der kernel32.dll von Microsoft zu laufen. Letztendendes benutzt du ja nicht die kernel32.dll von Microsoft.

delfiphan hat folgendes geschrieben:
Der einzige Unterschied ist, dass es in unserer Welt tatsächlich eine wine-Alternative von kernel32.dll gibt, aber keine Alternative für libmysql.dll.
Eben.

delfiphan hat folgendes geschrieben:
Es ist aber meiner Meinung nach völlig irrelevant, ob die existiert oder nicht.
Deiner Meinung nach vielleicht, aber wie wir kürzlich [http://www.delphi-forum.de/viewtopic.php?t=68156] gelernt haben, bin ich ja auch der Meinung, daß die Erde eine Scheibe ist ;-)

delfiphan hat folgendes geschrieben:
Es könnte sein, dass es Wine morgen nicht mehr gibt weil es sich selbst vernichtet hat. Dann wäre mein Programm plötzlich wieder illegal, weil es keine Alternative mehr gibt? Das macht keinen Sinn.
Aber hier besteht doch ein komplett anderer Sachverhalt als bei der libmysql. Du hast ein Programm entwickelt, daß das ABI der Kernel32.dll benutzt, ob eine freie Version selbiger oder nicht, ist egal. Die Microsoft-Lizenz erlaubt es nun ausdrücklich, Programme unter Windows auszuführen, also auch dein Programm, wenn es läuft. Jemand, der das Programm ausführt, hatte bereits eine gültige Lizenz, genauso wie du, wenn du es weiterhin entwickelst und/oder selbst einsetzt. Aber das ist auch gar nicht der Punkt, denn die kernel32.dll möchte, daß sie von jedem benutzt wird. Es ist egal, ob es von kommerzieller, proprietärer, quelloffener oder freier Software benutzt wird. Die Microsoft-Lizenz macht keine Ausnahme wie sinngemäß etwa "Mit dem delfiphan aus dem Delphi-Forum will ich aber nicht spielen, weil mir seine Nase nicht passt". Die Lizenz der libmysql.dll tut dies aber.


P.S.: Der erste Absatz des Posts gilt unter der Annahme, daß die kernel32.dll ähnlichen Restriktionen unterliegt, wie die libmysql32.dll.


delfiphan - Di 02.01.07 19:12

Die kernel32.dll von Microsoft möchte nicht von jedem genutzt werden. Die Datei kann man entweder kaufen, indem man Windows kauft, oder man hat die nicht. Man darf die Original-DLLs unter Wine nur brauchen, wenn man die entsprechende Lizenz von Microsoft besitzt (das heisst man muss sich Windows kaufen).
Wenn mein Kunde Windows kauft, darf er die Original-Kernel32.dll brauchen. Wenn mein Kunde MySQL kauft, darf er die Original-libmysql.dll brauchen.
Microsoft könnte jegliches Ausführen von Programmen unter Windows verbieten und WineHQ würde immer noch existieren. WineHQ ist völlig unabhängig von Microsoft.

Ich warte jetzt mal die Antwort der Sales-Leute ab.


tommie-lie - Di 02.01.07 19:46

user profile icondelfiphan hat folgendes geschrieben:
Die kernel32.dll von Microsoft möchte nicht von jedem genutzt werden. Die Datei kann man entweder kaufen, indem man Windows kauft, oder man hat die nicht.
Okay, Verfeinerung: Die kernel32.dll möchte von jedem benutzt werden, der sie legal besitzt. Die libmysql möchte nur von denen benutzt werden, die entweder Geld bezahlt haben, oder selbst freie Software sind.

Nimm's mir nicht übel, aber langsam habe ich ein wenig das Gefühl, du willst es gar nicht verstehen.
Nochmal ganz klar: Die kernel32.dll macht keinerlei, nix, nada Einschränkungen, wer sie benutzen darf. Wer das Ding besitzt, darf es verwenden (Schwarzkopien außen vor). Der Endanwender erkauft sich das Recht, die kernel32.dll und die ganze restliche Laufzeitumgebung von Windows zu benutzen, indem er Windows erwirbt. Welche Programme er dabei einsetzt, ist Microsoft *mist*egal und wird auch nirgends explizit erlaubt oder verboten.
Die libmysql hingegen stellt an Programme, die gegen sie linken (ob statisch oder dynamisch) den Anspruch, daß diese Programme entweder eine spezielle Nutzungslizenz bezahlt haben, oder mit einer passenden GPL-kompatiblen Lizenz daherkommen.
Nicht anders verhält es sich beispielsweise mit der glibc unter Linux. Wäre sie unter der GPL lizensiert, müsste praktisch jede Anwendung unter Linux ebenfalls unter der GPL stehen. Die glibc bringt aber eine besondere Ausnahme mit, nämlich daß dynamisches Linken gegen die glibc von jedem Programm erlaubt ist, egal ob es die GPL als Lizenz benutzt, andere, liberalere OpenSource-Lizenzen, oder ob sie gar Closed-Source und/oder kommerziell sind. Diese Ausnahme, die die glibc mitbringt, ist die LGPL.

(D)Ein Vergleich der kernel32.dll und der libmysql in diesen Belangen ist vollkommen unsinnig, weil beide Bibliotheken nicht vergleichbar sind. Ein Diesel muss auch höhere KFZ-Steuer zahlen als ein Benziner, obwohl beide vier Räder haben und beide auf der Autobahn 200 Sachen drauf haben können. Es sind unterschiedliche Fahrzeugklassen und somit musst du mit einem Diesel mehr zahlen.


Delete - Di 02.01.07 20:02

user profile icondelfiphan hat folgendes geschrieben:
Ich hab jetzt bereits eine Lösung (ODBC). Mein Programm kommuniziert so nur noch mit ODBC und der User kann selbst wählen, ob er die Logdaten in eine Access-Datenbank, Text-File oder Excel Tabelle haben will. Natürlich registriert sich MySQL auch als ODBC-Treiber, d.h. man kann mein Programm theoretisch immer noch mit MySQL zusammen benützen. Das muss ich aber als Programmierer nicht mitberücksichtigen. Ich muss mich lediglich an die Lizenz von ODBC halten. Oder soll ich jetzt eine MySQL-Lizenz erweben, nur weil mein Programm über ODBC mit MySQL kommunizieren könnte? Nein, ganz bestimmt nicht. Sonst könnte ich einen ODBC-kompatiblen delfiphanSQL-Treiber programmieren und alle Welt würde mir Geld schulden, ob mein Treiber gebraucht wird oder nicht. Das geht dann auch wieder nicht.


wenn dein progy mit ODBC kommuniziert, braucht dein kunde eine ODBC lizenz. wenn dein kunde via ODBC einen DB-treiber benutzt z.b. oracle, mysql... dann braucht er eine treiber lizenz. so einfach ist das.

die ODBC lizenz für windows haste, wenn du eine legale Windows version besitzt. bei einen anderen system brauchst du eine legale ODBC lizenz für dein system.

wenn du andere softwarekomponenten verwendest, brauchst du hierfür eine lizenz des herstellers.

so einfach ist das.

PS: wenn du deine software komerziell vertreibst, brauchste 'ne lizenz welche den komerziellen einsatz abdeckt. wenn du da ein softwaremodul eines anderen herstellers mitlieferst oder deine software ein entsprechendes modul voraussetzt, dann brauchst hier auch eine entsprechende lizenz. hier ist dann nur die frage, wer hierfür verantwortlich zeichnet, wenn du das entsprechende softwaremodul mitlieferst, dann ohne zweifel du. wenn dein programm ohne ein entsprechendes softwaremodul nicht entsprechend funktioniert, und der anwender in unkenntnis dessen eine fehlerbeseitigung vornimmt (z. b. dass er das softwaremodul (z.b. DLL aus dem internet läd) und installiert, dann kannste hierfür haftbar sein. wenn du wirklich diesen weg gehen möchtest, solltest du einen rechtsanwalt zu rate ziehen.

mehr gibt es hierzu nicht zu sagen.


delfiphan - Di 02.01.07 20:36

Grenzgaenger: Danke für den Text. Das macht Sinn (der kleine Abschnitt). Ich möchte nun eben erzwingen, dass der Kunde die Lizenz besorgt. Es wäre ein völliger Overkill, für das Logging-Feature das gesamte MySQL-Packet mitzuliefern. Das Programm läuft auch ohne die Library, versucht man das MySQL-Feature jedoch zu aktivieren, so erscheint eine entsprechende Meldung mit einer Aufforderung, eine rechtlich kompatible MySQL-Lizenz zu erwerben. Auch wenn das MySQL-Feature zum ersten Mal aktiviert wird, und die Library in der System32 gefunden wird, so erscheint eine Meldung, dass eine entsprechende Lizenz vorliegen muss. (Das Gebastel habe ich jetzt aber entfernt und durch ODBC ersetzt)

MySQL schreibt selbst:
Zitat:
If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries
Die Möglichkeit, wo der End-User die Lizenz besorgt, existiert also. Die Frage ist eben nur, welcher Fall genau gemeint ist.

Ich hoffe die MySQL-Leute schreiben mir bald eine abschliessende Antwort.


tommie-lie - Di 02.01.07 20:52

user profile icondelfiphan hat folgendes geschrieben:
Ich möchte nun eben erzwingen, dass der Kunde die Lizenz besorgt.
Damit kannst du dich aber nicht vollkommen der Haftung entziehen (und im Falle der GPL tust du das auch, wenn der Lizenzgeber keine Ausnahmen vermerkt hat, was ich bei MySQL für deinen Fall noch nicht gefunden habe).

delfiphan hat folgendes geschrieben:
Die Möglichkeit, wo der End-User die Lizenz besorgt, existiert also. Die Frage ist eben nur, welcher Fall genau gemeint ist.
Dazu muss der Endanwender die GPL verletzen. Das geschieht beispielsweise, wenn er selbst ein Produkt, das MySQL benutzt, unter einer nicht zur GPL kompatiblen Lizenz veröffentlicht. Gleichzeitig muss es dein Produkt benutzen, und durch dein Produkt die MySQL benötigen. Das wäre beispielsweise dann der Fall, wenn du unter einer BSD-Style-Lizenz einen Wrapper für MySQL anbietest (für einen eigenen SQL-Dialekt, für eine eigene Query Language, whatever), der aber direkt in eine Anwendung gelinkt werden muss und gleichzeitig die Client Library von MySQL linkt. Die kommerzielle Nutzung deines Wrappers alleine wäre dann rechtens und würde deine Lizenz nicht verletzen. Durch die Nutzung deines Wrappers wird aber die GPL-geschützte MySQL-Bibliothek in die kommerzielle Anwendung gelinkt, also benötigt dein Kunde, der Autor der kommerziellen Software, eine kommerzielle Lizenz für MySQL. Du bist davon unbetroffen, weil dein Produkt unter der BSD-Lizenz sthet, die (zumindest in der verkürzten Fassung ohne Werbungsklausel) mit der GPL kompatibel ist, du die GPL also nicht brichst.

delfiphan hat folgendes geschrieben:
Ich hoffe die MySQL-Leute schreiben mir bald eine abschliessende Antwort.
Ich würde mich freuen, wenn du das Ergebnis hier verkünden würdest.


delfiphan - Mi 03.01.07 12:00

Falls ich die LGPL-Version von libmysql.dll (mysql 3.23) in meinem Programm benutzen möchte; reicht es, wenn ich lediglich die DLL beilege (kein Source), entsprechenden Copyright und Lizenz-Hinweis in die About-Box schreibe und die LGPL-Lizenz als Text-File mitgebe? Muss ich sonst noch was beachten?

Es gibt ja noch folgende Option:
Zitat:
Also, you must do one of these things: (...) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
Ich finde das etwas verwirrend... So wie ich das verstehe muss ich entweder DLL mit Source beilegen - oder eine Version benutzen, welche sich bereits auf dem Clientrechner befindet (ich selbst gebe aber keine DLL mit). Okay, und wie entscheidet mein Programm jetzt, unter welcher Lizenz die "library already present on the user's computer system" steht? Das ist imho unmöglich. Ich müsste die DLL wenn schon mitgeben dürfen um das sicherzustellen.

Und falls ich jetzt den Source der Library zusammen mit der DLL mitgebe: Was, wenn jetzt jemand auf die Idee kommt, die DLL-Datei aus dem Programmordner zu löschen? Dann nimmt mein Programm automatisch die Version aus windows/system32. Und die könnte Non-LGPL sein. Bin ich für so Sachen auch haftbar? (=> Bin ich verpflichtet, eine Versionsabfrage zu implementieren? Das würde nicht viel Sinn machen, denn es könnte jemand auf de Idee kommen eine Version 5 der libmysql.dll in LGPL zu programmieren...)


delfiphan - Do 04.01.07 11:34

Übrigens: Die Virale-Ansteckung über IP ist ziemlicher Unsinn. Zusammen mit Sätzen wie "Nur ein Anwalt kann diese Frage abschliessend beantworten" ist wohl klar, dass MySQL lediglich die Meinung vertritt, um möglichst viele Benutzer zum Kauf ihrer Software zu bewegen. Das ist überhaupt nicht im Sinne des LGPLs. Die MySQL-Leute widersprechen sich sogar selbst: Sie bieten nämlich selbst eine Client-Library an (Version 3), welche LGPL ist und mit dem GPL-Server kommuniziert. Dabei ist ja LGPL "weniger gut" als GPL und eine Kommunikation wäre nach der Auffassung der MySQL verboten, genauso, wie ich in LGPL keine GPL-Software verwenden darf.
Bitte nicht falsch verstehen. Ich hab nichts dagegen, wenn die möglichst viele Leute zum Kauf der Commercial Lizenz bewegen wollen (obwohl ich die Geschichte mit dem Anwalt etwas speziell finde). Aber wenn schon GPL, dann fände ich es fair, wenn man die nach Auffassung der FSF interpretieren würde und nicht soweit dehnt, bis es für die Firma passt. Die Based-On-Work-Geschichte kommt ja ursprünglich aus dem Copyright-Gesetz und Kommunikation über IP zählt dort nicht. Und über eine Lizenz lässt sich die nicht schützen. Wenn ich die Bestimmungen nicht akzeptiere, gilt einfach das normale Copyright-Gesetz. Und ein Datenprotokoll ist imho weder automatisch durch Copyright geschützt noch lässt sie sich nicht durch Softwarepatente schützen (ok, vielleicht in den USA)... Programme wie GAIM wären sonst vermutlich illegal...


tommie-lie - Do 04.01.07 13:04

user profile icondelfiphan hat folgendes geschrieben:
Übrigens: Die Virale-Ansteckung über IP ist ziemlicher Unsinn. Zusammen mit Sätzen wie "Nur ein Anwalt kann diese Frage abschliessend beantworten" ist wohl klar, dass MySQL lediglich die Meinung vertritt, um möglichst viele Benutzer zum Kauf ihrer Software zu bewegen.
Ja, den Eindruck machen sie auf mich auch, auch im Forum.

delfiphan hat folgendes geschrieben:
Das ist überhaupt nicht im Sinne des LGPLs. Die MySQL-Leute widersprechen sich sogar selbst: Sie bieten nämlich selbst eine Client-Library an (Version 3), welche LGPL ist und mit dem GPL-Server kommuniziert. Dabei ist ja LGPL "weniger gut" als GPL und eine Kommunikation wäre nach der Auffassung der MySQL verboten, genauso, wie ich in LGPL keine GPL-Software verwenden darf.
Nein, das wäre nicht verboten. Aber nach (derzeitiger) Auffassung der MySQL-Leute würde der GPL-Server die libmysql 3 infizieren und die Client Library somit ebenfalls GPL'd machen, wodurch dann auch das Programm GPL'd sein müsste.
Wie ich schon schrieb, mit dieser Interpretation stehen sie in der OpenSource-Welt so ziemlich alleine da.

delfiphan hat folgendes geschrieben:
Und ein Datenprotokoll ist imho weder automatisch durch Copyright geschützt noch lässt sie sich nicht durch Softwarepatente schützen (ok, vielleicht in den USA)...
Ich weiß nicht, wie es mit dem (kostenpflichtigen) Copyright aussieht, aber ich denke, eine Schnittstelle über IP wäre vom deutschen Urheberrecht nicht gedeckt, wohl aber die Spezifikation. Das künstlerische Werk steckt hier in der festschreibung des Protokolls und der Implementierung. Deswegen ist Clean-Room-Reverse-Engineering ja auch noch legal. Aber mir ist kein Präzendenzfall bekannt, bei dem jemand versucht hat, Urheberrechte auf Softwareschnittstellen geltend zu machen, mag sein, daß sich das vor Gericht anders verhält, als ich hier beschreibe.


Bernhard Geyer - Sa 06.01.07 22:48

Sowei ich die MySQL-Lizenz verstehe ist es folgendes für kommerzielle Closed-Source-Programme:

- Läuft dein Programm nur mit der MySQL-Datenbank so ist für jede Installation eine Lizenz von MySQL nötig
- Lieferst Du Teile von MySQL mit (z.B. auch die libmysql.dll) so sind auch Lizenzen nötig

Hierbei bist du selbst teilweise dafür verantwortlich diese Lizenzen bei MySQL abzufordern.
Keine Lizenzen sind nötig wenn:

- Dein Programm auch ohne MySQL-Server lauffähig ist (z.B. alternative Persistenzlayer anbietet)
- Du direkt mit dem MySQL-Server kommunizierst (z.B. MyDAC verwendest)
- Der Kunde den MySQL-Server selbst installiert.

Ob nun eine Lizenz nötig ist, ist nicht mehr dein Bier/Problem. Der Kunde muß sich selbst mit den Lizenzbedingungen von MySQL herumschlagen und herausfinden ob er eine Lizenz benötigt.
Z.B. unser Programm unterstützt MySQL, MS SQL Server und Oracle und für keine der Datenbanken brauchen wir als Entwickler Lizenzen kaufen wenn wir unser Produkt verkaufen.


delfiphan - Sa 06.01.07 23:06

Danke.
Ich hab's nun so gemacht: Man hat die Optionen File Logging, MySQL-3 Logging und ODBC Logging. Dabei liefere ich die libmysql-3 (LGPL) mit. Wer MySQL-5 will, kann auf eigene Verantwortung die mitgelieferte Datei durch eine eigene ersetzen, oder ODBC benutzen, oder File Logging, oder das Logging ganz ausschalten. Das ist dann nicht mehr mein Bier. Ich hätte MySQL-3 fast ganz entfernt, weil ich MySQL eigentlich gar nicht speziell unterstützen möchte, da ich mit der Firma nicht einverstanden bin und deswegen nicht speziell unterstützen möchte. Whatever. ;) Vielen Dank jedenfalls für eure Hilfe.