Seite 1 von 1

Die GPL und die Verbindlichkeit

BeitragVerfasst: 03.09.2010, 12:58
von ReCon
Hallo alle zusammen,

mich "plagt" bereits seit 3 Tagen die Thematik GPL und deren Auswirkungen auf die Software bzw. auf Software die man selbst geschrieben hat.

Ich möchte, um meine Fragen etwas genauer zu deuten, ein kleines Szenario durchspielen.
Wenn ich z. B. ein in Java geschriebenes propiertäres Programm habe und dieses mit Lizenzkosten in Verbindung bringen möchte, stellt das im Grundsatz ja erst einmal überhaupt kein Problem dar. Nun jedoch kommt die Tatsache hinzu, dass hier ein MySQL Server angebunden werden soll. Glücklicherweiße gibt es ja hierfür den JDBC Connector.
Man mache also ein Programm, welches mit Java (Lizenz: GPL und Java Lizenz) geschrieben ist und eine Anbindung durch die JDBC Klassenbibliotheken (Lizenz: GPL) besitzt. Nun stellt sich natürlich die Frage, muss das Programm, welches man selbst geschrieben hat, auch unter der GPL veröffentlicht werden?
Im Internet häufen sich da aktuell die Themen in anderen Foren. Diese Themen resultieren jedoch fast immer mit einer Antwort: Das Programm, welches geschrieben wurde und auf Bibliotheken mit GPL Lizenzsierung zurückweißt muss ebenfalls unter die GPL gestellt werden.
Ist dem wirklich so? Ich habe versucht Programme zu finden, welche mit MySQL in Verbindung stehen ohne eine MySQL Lizenz zu haben (den diese Vertriebslizenz klammert das o. g. aus), jedoch bin ich nicht fündig geworden bis auf im Bereich PHP (Woltlab z. B.). Hier ist es etwas anderst, denn die genutzten Module laufen unter der "PHP Lizenz".

Kann mich vielleicht einer etwas genauer aufklären, wie ich das mit der GPL bei einem selbst geschriebenem Programm, welche auf Bibliotheken, weche unter der GPL stehen zurückgreift, zu verstehen habe bzw. ob das von mir o. g. zutrifft?
Wenn ja, dann würde das für mich zumindest etwas aufklärend wirken, warum manche Firmen sich scheuen mehr in Richtung OSS etc. zu gehen.

Danke :)

Mfg ReCon

Re: Die GPL und die Verbindlichkeit

BeitragVerfasst: 03.09.2010, 13:08
von ChemicalBrother
Ich kann in diesem Falle nur meine Meinung äußern, nicht mein Wissen und ich würde sagen, dass dein Programm nicht unter GPL stehen muss, wenn es GPLv2 Software/Bibliotheken nutzt. Bei der strenger gefassten GPLv3 muss ich leider passen, dort kann sich der Sachverhalt aber ändern.

Ich weiß nur, dass der Linux-Kernel (der von Torvalds betreute) deswegen GPLv2 und nicht v3 ist, weil sonst die Module für die Grafiktreiber von Nvidia und AMD so nicht mehr erstellt werden dürften.

Re: Die GPL und die Verbindlichkeit

BeitragVerfasst: 03.09.2010, 13:21
von ReCon
Ok, ich hatte nun aber bzgl. Linux und Kernel gelesen, dass die C API Bereiche (ob alle oder nur Teile davon) deshalb auch bewusst in der GPL augeklammert werden, damit die propiertären Module für den Kernel auch noch erstellt werden können.

Könnte natürlich sein, dass das in der GPLv3 komplett rausgefallen ist, aber so wie ich das verstanden habe, müsste ich ebenfalls das Programm unter die GPL stellen, weil nur die C API in v2 davon nicht betroffen ist.

Re: Die GPL und die Verbindlichkeit

BeitragVerfasst: 03.09.2010, 13:36
von Bauer87
Die genannten Treiber greifen im Auslieferungszustand (und der entscheidet) NICHT auf den Kernel zu. Gelinkt wird erst, wenn der User die Treiber installiert. Wenn also der User einen Computer mit installiertem Treiber weitergibt, verstößt er gegen die GPL. Selber installieren darf man aber ja – weil die GPL nur bei Weitergabe greift und für die reine Nutzung alles erlaubt.

Was GPL-Software linkt, muss auch unter GPL gestellt werden. (Für anderes gibt es die LGPL.) Wenn du also dein Programm mit dem JDBC Connector auslieferst, muss es unter die GPL gestellt werden. Sprich: Deine Abnehmer dürfen mit dem Programm machen, was sie wollen – und auch verlangen, dass du ihnen den Code gibst. (Veröffentlichen brauchst du ihn nicht, du musst ihn nur deinen Lizenznehmern auf Anfrage zur Verfügung stellen!) Wenn du deine Software generisch für verschiedene SQL-Datenbanken schreibst und ein Plugin anbietest, dass mithilfe des JDBC Connector MySQL anspricht, muss dieses Plugin (vgl. auch Treiber-Grauzone) unter der GPL stehen. Für Bibliotheken ist die LGPL da, damit gehts auch direkt. Bibliotheken unter GPL sind in der Tat eher schwer benutzbar.

PS: Im Zweifelsfall bitte Anwalt konsultieren.

Re: Die GPL und die Verbindlichkeit

BeitragVerfasst: 03.09.2010, 13:41
von Nexon
Ohne es ganz genau zu wissen, würde ich sagen: Wenn dein Programm (welches du vermutlich binär ausliefern wirst) selbst keine statischen GPL-libs enthält (sprich im binären Produkt ist kein GPL-code) sondern lediglich dagegen linkt, darsfst dus.

Re: Die GPL und die Verbindlichkeit

BeitragVerfasst: 03.09.2010, 13:49
von ReCon
Danke für die Infos.

@Nexon: Nein, ich denke es ist tatsächlich so wie auch Bauer87 sagt, ich muss einfach dann den Code ebenfalls als GPL freigeben. Im Programm ist der JDBC sowohl im Projekt an sich, als auch im Code (Aufruf der Funktion des JDBCs) enthalten.

Das der Quellcode nicht über das Internet bzw. z. B. auf einem Datenträger ohne Anfrage vorhanden sein muss, wußte ich nun z. B. nicht.
Aber Java kommt doch auch immer mehr und mehr in die GPL (bzw. muss man dann hier mal abwarten, was Oracle noch so mit sich bringt). Aber das würde ja dann langfristig ebenfalls bedeuten, dass alle neuen Java Programme auf Basis der GPL veröffentlich werden müssen.
Bei Sprachen wie Python und / oder Ruby (mal abgesehen davon, dass hier der Quellcode ja sowieso erst zur Laufzeit umgewandelt wird) hat man dann jetzt z. B. auch schon gar keine andere Möglichkeit mehr außer die GPL zu nutzen?!

Zum Thema Treiber und Auslierferung ... wie ist das denn bei Mandriva? Zwar liefert Mandriva das ja nicht mit auf einem Rechner, aber wenn ich die Mandriva One CD starte werden ja direkt die Treiber (nvidia bzw. fglrx) geladen. Das würde ja bedeuten, dass hier ein Verstoß gegen die GPL vorliegen müsste?!
Immerhin aktiviert der Benutzer in diese Richtung ja nichts groß, sondern die Treiber werden "mitgeliefert", bzw. mit der Kernel Version von Mandriva mitgeliefert ...