# GPL in der Praxis



## java-jim (18. Sep 2007)

Hallo!

Ich habe mein erstes richtiges Java-Projekt fertig und habe eine Frage zur Veröffentlichung.
Ich benutze in dem Applet den mysql-connector (ConnectorJ), der unter der General Public License steht. Damit steht mein Programm auch unter der GPL.

Meine Frage ist jetzt, wie das in der Praxis auszusehen hat. Muss ich auf der Homepage auf der das Applet liegt den Quelltext veröffentlichen? Oder reicht ein Hinweis dass der Quelltext per Mail angefordert werden kann? Oder was muss ich sonst beachten?

Danke für eure Hilfe!


----------



## sparrow (18. Sep 2007)

Wenn ich mich recht erinnere besagt die GPL, dass der Quellcode auf dem selben Weg verbreitet werden soll.
Pack also irgendwo einen kleinen Link hin und gut ist 


Wobei ich gerade überlege... muss dein Programm überhaupt unter der GPL veröffentlicht werden? Du benutzt ja nur eine Bibliothek ohne diese zu erweitern oder zu verändern.


----------



## Wildcard (18. Sep 2007)

Ja, muss GPL sein. Dein Quelltext (auch den der fremden Libs) solltest unbedingt auf der gleichen Seite hosten wie die binaries. Ein Link zum Anbieter ist nicht ausreichend. Wenn du die Software auch physikalisch vertreibst ist es das sicherste den Quelltext beizulegen.


----------



## Kim Stebel (18. Sep 2007)

@ sparrow: Es gibt eine kleine Kontroverse darüber, ob dynamic linking "erweitern" im Sinne der GPL ist. Die herrschende Meinung ist allerdings ja. Static linking ist es auf jeden Fall...


----------



## sparrow (18. Sep 2007)

ICh hab mich eben nochmal auf die Suche gemacht und korrigiere meine vorherige Aussage indem ich alles zurücknehme und das Gegenteil behaupte 

Wildcard hat Recht, hoste den Quellcode mit auf dem Webspace, dann hast du keine Schweirigkeiten und bist auf der sicheren Seite. Es könnte theoretisch sein, dass die Seite mit dem Quellcode auf den du verlinkst verschwindet, und damit auch die Grundlage deiner Lizenz.


----------



## SnooP (18. Sep 2007)

Es ist sogar sehr sicher so, dass man das machen muss  ... nicht zuletzt deswegen gibt es die LGPL und einen von MySQL speziell lizensierten JConnector, wenn man halt genau das nicht will...


----------



## sparrow (18. Sep 2007)

Was passiert denn, wenn ich ein Programm schreibe welche Hibernate verwendet?

Mein Programm: Proprietärer, das darf ich, weil:
Hibernate: LGPL, und der Anwender meint jetzt mySQL verwenden zu müssen:
JConnector: GPL

Darf der das nicht einsetzen?
Wie kontrolliere ich das als Autor des Programms?


----------



## SnooP (18. Sep 2007)

Das dürfte wohl egal sein... letztlich liefert ja der Anwender keine neue Software aus und du distributierst halt auch nicht mit dem mysql-treiber... - allerdings müsstest du halt deine anwendung für alle Eventualitäten konfigurierbar machen... - sprich die Möglichkeit geben die DB entsprechend zu konfigurieren.

Da dies in der Praxis aber von diversen Tools gemacht wird, die alles andere als unter der GPL stehen, sollte dieser Anwendungsfall davon nicht betroffen sein... - es ist auch die Frage, ob es evtl. schon geht, wenn man nur einen Teil des Programms so kapselt, dass der Quasi die DB-Layer-Schicht darstellt und auf den JConnector zugreift, so dass man nur diesen Teil unter GPL stellen muss... aber ich bin kein Jurist 

Aber mit Hibernate... no Problemo!


----------



## Milo (20. Sep 2007)

Hi,

auch wenn es schon etwas älter ist, möchte ich hier noch einmal nachfragen:


			
				Wildcard hat gesagt.:
			
		

> Ja, muss GPL sein.



Ist es nicht so, dass, wenn Teile von GPL-Programmen genommen werden, lediglich diese wiederum diese Lizenz haben müssen. Das Produkt selbst kann also eine andere Lizenz haben als die implementierte Fremdmethode/Klasse oder was auch immer genommen wurde.

Ich nenne mal als populäres Beispiel die Matlab Umgebung. Dort tummeln sich zu haufen freie Algorithmen, die mitunter auch OpenSource sind. Matlab bündelt diese zu einem mächtigen Tool und verkauft eben nicht die Algorithmen selbst, sondern das Summelsarium.

Wäre nett, wenn das noch einmal etwas genauer formuliert wird. Sollte ich falsch liegen, bitte ich selbstverständlich um enmtsprechende Korrektur ;-)

Schöne Grüße
Micha


----------



## tuxedo (20. Sep 2007)

Ob die Algos in Matlab unter GPL stehen weiß ich nicht (kanns mir aber nicht vorstellen). BTW: OpenSource ist nicht gleich GPL. 

Zu der Sache mit dem Sammelsurium:
Wenn man von 10 verschiedenen Bauern, 10 verschiedene Äpfel holt und dann diese 10 Äpfel in eine Tüte packt und verkauft, dann kann mir keiner weiß machen, dass man eigentlich nur die Tüte verkauft und die Äpfel darin "einfach so" beiliegen. 

Zur GPL: Es gibt da einen kleinen Grundsatz:

Einmal GPL, immer GPL.

Sobald dein Programm irgend etwas GPL-Lizensiertes benutzt, das verlinkt, intergriert oder mitgeliefert wird, muss dein Programm auch unter die GPL gestellt werden (sofern dein Programm nicht für den alleinigen Hausgebrauch bestimmt ist und in folge dessen veröffentlich wird). 

Weitere Details gibts hier:
http://de.wikipedia.org/wiki/GNU_General_Public_License
http://www.gnu.org/licenses/gpl-3.0.html

- Alex


----------



## SnooP (20. Sep 2007)

Die Frage ist auch, ob die Algorithmen in Matlab tatsächlich schützbar sind  ... gerade mathematische Algorithmen sind ja nu schon meist unheimlich lange bekannt und eine Implementierung davon unter die GPL stellen, heißt vermutlich nicht, dass diese Implementierung großartig geschützt werden kann, wenn jemand anders sie verwendet... er kann ja die variablennamen umbenennen und keiner wird ihm was sagen können  ... - z.B. ganz simples Beispiel der Euklid-Algorithmus zum Bestimmen des GGT... da gibt es schlicht irgendwann keine andere Möglichkeit mehr diesen effizient zu implementieren, die Beschreibung des Algorithmus ist immerhin über 2000 Jahre alt  also kann auch niemand kommen und sowas "banales" weil altbekanntes unter GPL stellen...

da kommt wieder das Software-Patente-Gelumpe hoch


----------



## tuxedo (20. Sep 2007)

Also ich glaub auch nicht dran dass die Algorithmen geschützt sind. Schon gar nicht so alte ;-)

Und die Sache mit dem Softwarepatent ... Ja, da kommts mir auch hoch ;-)


----------



## Milo (20. Sep 2007)

Hallo,

ich wollte ja nur einmal nachfrage, also ganz ruhig. Matlab nutz einige frei verfügbare Algorithmen. Spontan fällt mir QHull ein (http://www.qhull.org/) der aber nicht GPL Lizensiert ist. GZIP/GunZIP ist in Matlab auch verfügbar. Wenn ich mir den Quellcode ziehe: http://www.gzip.org/#sources finde ich dort auch die GPL2 Lizenz. Matlab baut auf m-Files auf, sodass die meisten (alle?) implementierten Algorithmen auch einsehbar sind; ein austausch mit Octave ist wohl unproblematisch. Letztlich sollte Matlab aber nur als Beispiel herhalten und nicht der Aufhänger der Diskussion werden. Die Frage war, wenn ein Programm GPL-lizensierten Code nutzt, ist es dann zwingend wieder unter diese Lizenz zu stellen. 



			
				alex0801 hat gesagt.:
			
		

> Zu der Sache mit dem Sammelsurium:
> Wenn man von 10 verschiedenen Bauern, 10 verschiedene Äpfel holt und dann diese 10 Äpfel in eine Tüte packt und verkauft, dann kann mir keiner weiß machen, dass man eigentlich nur die Tüte verkauft und die Äpfel darin "einfach so" beiliegen.
> 
> Zur GPL: Es gibt da einen kleinen Grundsatz:



"Kopien des Programms dürfen kostenlos oder auch gegen Geld verteilt werden, " [WIKIPEDIA] GPL heißt ja nicht kostenlos - umsonst schon gar nicht.

Micha


----------



## tuxedo (20. Sep 2007)

a) Qhull ist ein Stück Programm das den Quick-Hull Algo benutzt. Qhull selbst ist also kein Algo.
b) gzip und gunzip ist ebenfalls wieder software. Es gibt hier re-implementierungen die keine so restriktive Lizenz wie die GPL nutzen.


Was matlab jetzt genau nutzt weiß ich nicht, will ich mich auch nicht mit beschäftigen. Aber ich bin mir sicher dass sie nichts verwenden was unter die GPL fällt. Sonst hätt's schon längst ärger gegeben. 

Zu deiner Frage:



> Die Frage war, wenn ein Programm GPL-lizensierten Code nutzt, ist es dann zwingend wieder unter diese Lizenz zu stellen.



Hatte ich schon beantwortet: Ich zitiere:



> Einmal GPL, immer GPL.
> 
> Sobald dein Programm irgend etwas GPL-Lizensiertes benutzt, das verlinkt, intergriert oder mitgeliefert wird, muss dein Programm auch unter die GPL gestellt werden (sofern dein Programm nicht für den alleinigen Hausgebrauch bestimmt ist und in folge dessen veröffentlich wird).



Wenn du's nicht glaubst: Lies doch den Lizenztext:
http://www.gnu.org/licenses/gpl-3.0.html 



> "Kopien des Programms dürfen kostenlos oder auch gegen Geld verteilt werden, " [WIKIPEDIA] GPL heißt ja nicht kostenlos - umsonst schon gar nicht.



GPL hat absolut nix mit kosten zu tun. Es geht bei der GPL einzig und allein um das Copy-Left-Prinzip. 

- Alex


----------



## Milo (20. Sep 2007)

Hi Alex,

verweise nicht sinnfrei auf die gesamte Lizenz, sondern zeige die Stelle. Sonst ist Deine Antwort soviel Wert, wie der Hinweis auf eine Suchmaschine. Und ich betone es nochmal _es ging nicht um Matlab_ und wenn Du mich zitierst, dann bitte so, das der Kontext icht verloren geht. 

"Diese Lizenz erteilt keine Erlaubnis, das Werk in irgendeiner anderen Weise zu lizensieren, setzt aber eine derartige Erlaubnis nicht außer Kraft" heißt es unter 5c

LG Micha


----------



## tuxedo (20. Sep 2007)

Wie? Bin ich jetzt in der Beweispflicht oder wie?

Aber gut, kannst du haben. Ich beziehe mich unter anderem auf folgendes:

http://de.wikipedia.org/wiki/GNU_Lesser_General_Public_License


> Im Gegensatz zur GPL dürfen alle Programme, welche die LGPL-lizenzierte Software nur extern benutzen, zum Beispiel als DLL-Dateien, ihre eigene Lizenz behalten.



Daraus lässt sich schließen dass ein Programm, welches GPL-Teile benutzt, auch unter GPL stehen muss. Und Werke die mit LGPL Lizensiert sind, sind nicht so lizenzrestriktiv wie GPL. 

Da du dich auf die deutsche übersetzung berufst, kann ich mich auch auf Wikipedia berufen: Beides ist nicht rechtskonform da nur da bisher nur englische Original als rechtskräftig angesehen wird. 

Aber zurück zum Original:
Zum einen wäre da folgender Punkt aus der GPLv3 (http://www.gnu.org/licenses/gpl-3.0.html )

Praeamble:


> For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.



Heisst: Sobald  ein GPL-Lizensiertes Werk verbreitet wird, muss sichergestellt sein, dass es weiterhin die gleiche Freiheit genießt und auch der Quellcode zugänglich gemacht wird. D.h. bei weitergabe muss die Nachfolgelizenz MINDESTENS genausoviel Freiheiten beinhalten wie die GPL.

Im allgemeinen wird man in der Lizenz keine Zeile finden in der das ganze auf den Punkt gebracht wird. Der Sinn hinter "einmal GPL, immer GPL" steht sozusagen über der ganzen Lizenz. Als Laie den Lizenztext selbst versuchen zu interpretieren ist keine so gute Idee. Jeder der sich mal genauer mit dem BGB beschäftigt hat weiß was ich meine. 

Aber ich kann dir versichern: Einmal GPL, immer GPL. 
Und das stammt nicht von mir, sondern von dem Rechtsanwalt (zugelassen in Deutschland und USA) der bei uns an der Hochschule als Gastdozent "Recht in der IT" gelesen hat. Der wird sich's auch nicht aus den Fingern gesaugt haben. Was mich aber nicht dran hindert den GPL-Text nochmal genauer unter die Lupe zu nehmen. 

- Alex


----------



## tuxedo (20. Sep 2007)

So, ich zitiere weiter:

http://producingoss.com/de/license-compatibility.html


> Die schärfste Trennlinie verläuft zwischen Lizenzen die kompatibel zu proprietärer Software sind solchen die es nicht sind; also zwischen der GNU General Public License und dem Rest. Da das vorrangige Ziel der GPL Autoren die Verbreitung freier Software ist, haben sie die Lizenz so gestaltet, dass es unmöglich ist, GPL-lizensierten Code in proprietären Programmen zu verwenden. Siehe vor allem diese beiden Absätze der GPL (siehe auch http://www.fsf.org/licensing/licenses/gpl.html):
> 
> 1.      Jedes abgeleitete Werk, also alles, was eine gewisse Menge GPL-lizensierten Code enthält, muss wieder unter die GPL gestellt werden.
> 
> ...



Ist aus dem Buch "Producing  Open Source Software" von Karl Fogel, O'Reilly Verlag. Textausschnitt ist die entsprechende deutsche Übersetzung.


----------



## Wildcard (20. Sep 2007)

alex0801 hat gesagt.:
			
		

> Aber ich kann dir versichern: Einmal GPL, immer GPL.
> Und das stammt nicht von mir, sondern von dem Rechtsanwalt (zugelassen in Deutschland und USA) der bei uns an der Hochschule als Gastdozent "Recht in der IT" gelesen hat. Der wird sich's auch nicht aus den Fingern gesaugt haben. Was mich aber nicht dran hindert den GPL-Text nochmal genauer unter die Lupe zu nehmen.


Ganz stimmt das nicht. Wenn *alle* Projektbeteiligten zustimmen, kann ein Programm (in neueren Versionen) auch eine andere Lizenz verwenden.


----------



## tuxedo (20. Sep 2007)

Ja, gut, ausnahmen bestätigen die Regel. Wir sind jetzt aber nicht davon ausgegangen dass die Lizenz geändert wird. Ist ja auch fast schon ein wenig an den Haaren herbeigezogen. Wie wahrscheinlich ist denn eine Lizenzänderung?

Und wenn es einen nächsten Weltkrieg gibt und die ganze Erde sich in Staub auflöst dann ist das mit den Lizenzen eh hinfällig ...

Dass ihr aber auch immer alles Haar genau nehmen müsst und noch die 12374. Nachkommastelle anschaut... 

*kopfschüttel*

Naja, es ist ja jetzt belegt dass man nicht einfach so GPL-Werke in sein Programm einbauen kann und dann sein Werk getrost propritär machen kann.

- Alex


----------



## Milo (20. Sep 2007)

Hi Alex,



			
				alex0801 hat gesagt.:
			
		

> Wie? Bin ich jetzt in der Beweispflicht oder wie?



Nein, natürlich nicht und so sollte es auch nicht rüberkommen. Vielen Dank für Dein ausführliches Posting und die Mühe, die Du Dir gemacht hast mit den Quellen. Ich denke, ich habs verstanden! ;-)

Schöne Grüße
Micha


----------



## Wildcard (20. Sep 2007)

alex0801 hat gesagt.:
			
		

> Ja, gut, ausnahmen bestätigen die Regel. Wir sind jetzt aber nicht davon ausgegangen dass die Lizenz geändert wird. Ist ja auch fast schon ein wenig an den Haaren herbeigezogen. Wie wahrscheinlich ist denn eine Lizenzänderung?


Das hab ich schon öfter erlebt (zB bei Eclipse). Oft eine Folge der Unkenntnis über die Auswirkungen der GPL.
Leute schreiben Module/Patchs für OpenSource Projekte, schicken den Kram an die newsgroup und stellen alles unter GPL damit man es einbauen kann.
Dann kommt das böse Erwachen wenn den Entwicklern mitgeteilt wird, das der Patch zwar sinnvoll ist, die GPL aber nicht mit der verwendeten Lizenz in Einklang zu bringen ist.
Dann wird die Erlaubnis aller Beteiligten notwendig um den Code dennoch aufnehmen zu können.


----------



## tuxedo (20. Sep 2007)

Naja, ich glaub dir schon dass oftmals der Wille da ist die Lizenz zu ändern. Aber ich kann mir nicht vorstellen dass man immer problemlos das JA von allen beteiligten bekommt.

Folglich wäre eine Lizenzänderung nach wie vor nicht alltäglich ...


----------



## Wildcard (20. Sep 2007)

Ja, das geht i.d.R. nur bei kleineren Projekten bei denen die Lizenz unbedarft gewählt wurde.
Ein prominentes Beispiel für den umgekehrten Weg existiert jedoch.
Wine wurde von BSD auf GPL geändert, und auch da müssen die Entwickler mitziehen.


----------



## Verjigorm (4. Jan 2008)

ich muss mal den alten Thread hier rauskramen, denn ich habe da noch ne Verständnisfrage:

ich möchte ein Programm verkaufen, dass eine GPL-lizensierte lib benutzt. Somit fällt ja mein komplettes Programm auch unter die GPL-Lizens.

Wenn ich das jetzt richtig verstehe, heisst das aber nicht, dass ich das Programm/Quellcode auch JEDEM zugänglich (irgendwo aufn Server hosten) machen muss, sondern nur, dass ich dem "Käufer" aufzeigen muss, dass das Programm unter GPL steht und er den Quellcode einsehen darf?


----------



## Hilefoks (4. Jan 2008)

Verjigorm hat gesagt.:
			
		

> ich möchte ein Programm verkaufen, dass eine GPL-lizensierte lib benutzt. Somit fällt ja mein komplettes Programm auch unter die GPL-Lizens.


Richtig.


			
				Verjigorm hat gesagt.:
			
		

> Wenn ich das jetzt richtig verstehe, heisst das aber nicht, dass ich das Programm/Quellcode auch JEDEM zugänglich (irgendwo aufn Server hosten) machen muss, sondern nur, dass ich dem "Käufer" aufzeigen muss, dass das Programm unter GPL steht und er den Quellcode einsehen darf?


Nein - nicht ganz. Du musst dem Käufer bekannt machen das dein Programm unter der GPL steht (z.B. den Lizenztext beilegen) und ihm und jedem anderen Interessenten den Quellcode aushändigen.

D.h. jeder darf den Quellcode nicht nur einsehen, sondern auch ändern, weitergeben, etc. pp.

MfG,
Hilefoks


P.S: Auch wenn schon älter, aber:


			
				alex0801 hat gesagt.:
			
		

> Ja, gut, ausnahmen bestätigen die Regel. Wir sind jetzt aber nicht davon ausgegangen dass die Lizenz geändert wird. Ist ja auch fast schon ein wenig an den Haaren herbeigezogen. Wie wahrscheinlich ist denn eine Lizenzänderung?





			
				Wildcard hat gesagt.:
			
		

> Ja, das geht i.d.R. nur bei kleineren Projekten bei denen die Lizenz unbedarft gewählt wurde.


Das kommt, gerade jetzt mit der GPL3, recht häufig vor. Letzte mir bekannte Beispiele sind der GCC oder Teile von KDE4.



			
				Wildcard hat gesagt.:
			
		

> Wine wurde von BSD auf GPL geändert, und auch da müssen die Entwickler mitziehen.


So herum ist es erheblich einfacher. Wenn 1 Entwickler sich entschließt nicht mehr die BSD sondern die GPL zu verwenden gibt es schon eine GPL Version der Software. Einigkeit ist nur deshalb von Interesse damit es nicht zu einem Fork kommt. Sollten 90% der Entwickler sich einig sein gibt es eine GPL Version - was die anderen 10% mit ihrem BSD Code machen bleibt ihnen überlassen. Bei einer Lizenzänderung von GPL zu XXX müssen wirklich alle Entwickler einwilligen, sonst wird es keine Lizenzänderung geben.


----------



## Rock Lobster (7. Jan 2008)

Hilefoks hat gesagt.:
			
		

> Nein - nicht ganz. Du musst dem Käufer bekannt machen das dein Programm unter der GPL steht (z.B. den Lizenztext beilegen) und ihm und jedem anderen Interessenten den Quellcode aushändigen.



Das ist aber soweit ich weiß nicht richtig. Die Lizenz gilt nur für die tatsächlichen Kunden. Das heißt, wenn Du eine Auftragsarbeit machst, wo Du nur einen einzigen Kunden hast (nämlich den Auftraggeber), dann lieferst Du nur ihm allein das Programm aus und mußt auch nur ihm allein den Sourcecode geben.

Wenn nun ein "Interessierter" daherkommt, der irgendwie von Deinem Programm gehört hat, dann mußt Du ihm weder das Programm noch den Code ausliefern, denn Deine Kunden kannst Du Dir selbst aussuchen.

Allerdings kann Dein ursprünglicher Kunde das Programm auf eigene Faust weiterkopieren, da es ja unter der GPL steht. Und auch dann muß er den Code mitgeben. Das heißt, wenn nun der Interessierte bei Deinem Auftraggeber klingelt, und der Auftraggeber Lust dazu hat, die Software ihm zu geben, dann darf er das, und ist auch verpflichtet, den Code weiterzugeben, und Du kannst nix dagegen tun. Aber Du selbst kannst Dir sehr wohl aussuchen, wem Du es gibst und wem nicht - Du mußt lediglich beachten: wenn, dann alles.


----------

