Autor Beitrag
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
wolke
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 240



BeitragVerfasst: 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.


www.science.uva.nl/i...ing_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?).


Zuletzt bearbeitet von wolke am Di 02.01.07 01:26, insgesamt 1-mal bearbeitet
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
wolke
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 240



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
delfiphan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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 (blog.koehntopp.de/ar...d-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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Arne K.
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
EE-Autor
Beiträge: 112


C# (VS 2008 Professional)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Arne K.
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
EE-Autor
Beiträge: 112


C# (VS 2008 Professional)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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).

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
delfiphan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
delfiphan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
delfiphan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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...)