• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Frage zu GPL

borgg

Newbie
Hallo, ich hoffe mal ihr habt da ein wenig Ahnung von... also:


1 Frage:) Da der Compiler unter Linux ja GPL ist, ist dadurch jedes Programm welches damit erstellt wird automatisch GPL? (bzw müsste rechtlich betrachtet unter GPL gestellt werden)

2 Frage) (falls Frage 1 zutrifft hat sich das dann eh erledigt)

Angenommen ich habe zwei libs. A und B.

A ist unter GPL.
B ist nicht GPL (selbst erstellt, beinhaltet Algorithmen die ich nicht als Quellcode veröffentlichen möchte).

Für ein Projekt benötige ich beide libs. Da ich ja lib A verwende muss ich es unter GPL stellen. Ist es trotzdem legitim gegen lib B zu linken (B soll eine dynamische lib sein) ?
 

nbkr

Guru
Bin kein Experte, also nur meine Meinung:

1) Nein, Du nutzt den Compiler ja nur als Werkzeug, aber er ist nicht
Bestanteil deiner Software. Ein mit KOffice (GPL) erstellter Text ist ja auch nicht sofort "Creative Commons"

2) Ja, Du darfst in deiner Software verwenden was Du willst und sofern es die Lizenz von dem was Du verwendest zulässt (d.h. wenn lib b von dir verwendet werden darf, kannst Du auch dagegen linken). Einzig das Endprodukt muss halt wieder GPL sein, wenn Du ein GPL Softwarestück darin einbaust.
 
OP
B

borgg

Newbie
nbkr schrieb:
Bin kein Experte, also nur meine Meinung:
Einzig das Endprodukt muss halt wieder GPL sein, wenn Du ein GPL Softwarestück darin einbaust.

Eben das ist ja der Haken imho. Wenn das Endprodukt unter GPL steht müsste ich ja alle Teile der Software Quelloffen machen oder? Demnach müsste ich die Quellen zu lib B offen legen, bzw zur verfügung stellen können. Wenn ich eine GPL lib verwende ist das ja kein Problem da sagt man. Hab lib xy verwendet, den Source findet ihr da und da.

Die konkrete Frage ist also ob ich Quellcode von libB öffenen muss, wenn es in einem GPL Projekt verwendet wird.
 

TeXpert

Guru
vorneweg: IANAL

zu 1: Zustimmung zu nbkr , denn aus diesem Grund ist ja die libc unter lgpl (da der gcc die an Dein Programm linkt war das genau der Grund für diese Lib --> lesen)

zu 2: hier kommts drauf an, welche lizenz für die Lib gilt, mit Glück auch die LGPL und dann dürfte auch Closed-Source möglich sein.
 
Die Fragen sind alle auf den Webseiten der FSF beantwortet, aber OK...

Zu 1.: Nein, selbstverständlich nicht. Deine Software ist Dein Privateigentum, egal womit Du sie kompilierst. Was glaubst Du, womit beispielsweise StarOffice kompiliert ist? Mit dem GCC natürlich. Und steht es deswegen unter der GPL? Nein, natürlich nicht.

Zu 2.: Nein, das geht wiederum nicht. Der Autor von A verlangt, dass jedes auf A aufbauende Werk unter der GPL steht, Deine Software würde aber nicht unter der GPL stehen, wenn sie auch nur ein einziges Modul enthält, das nicht unter der GPL steht.

Lösungen:

- Den Autor von A kontaktieren und fragen, ober er bereit ist, eine besondere Vereinbarung zu machen, vielleicht auch gegen einen kleinen Obulus, aber das geht nur, wenn dieser Autor wirklich alle Rechte an A hat
- Eine Alternative zu A suchen, die nicht unter der GPL, sondern unter der LGPL oder einer BSD-Lizenz steht, und dann Dein Produkt nicht unter die GPL stellen
- Eine Alternative zu B suchen, die unter einer GPL-kompatiblen Lizenz steht, beispielsweise unter der LGPL oder einer BSD-Lizenz, und dann Dein Produkt unter die GPL stellen
- Entweder A oder B nicht als Bibliothek, sondern als externes Programm aufrufen und dann Dein Produkt nicht unter die GPL stellen

Was möchtest Du überhaupt machen? Ist das vertraulich oder könntest Du sagen, was A und B sind? Wirst Du das Produkt nur für Dich selbst benutzen oder wirst Du es an andere weitergeben?
 
OP
B

borgg

Newbie
traffic schrieb:
Die Fragen sind alle auf den Webseiten der FSF beantwortet, aber OK...

Zu 2.: Nein, das geht wiederum nicht. Der Autor von A verlangt, dass jedes auf A aufbauende Werk unter der GPL steht, Deine Software würde aber nicht unter der GPL stehen, wenn sie auch nur ein einziges Modul enthält, das nicht unter der GPL steht.
hatte ich befürchtet. Blöde Lizenz ;)
Lösungen:

traffic schrieb:
- Den Autor von A kontaktieren und fragen, ober er bereit ist, eine besondere Vereinbarung zu machen, vielleicht auch gegen einen kleinen Obulus, aber das geht nur, wenn dieser Autor wirklich alle Rechte an A hat
Halt ich bei einer lib wie Qt für recht sinnlos ;). Sicher könnt ich die kaufen, aber genau das möchte ich ja nicht.

traffic schrieb:
- Eine Alternative zu A suchen, die nicht unter der GPL, sondern unter der LGPL oder einer BSD-Lizenz steht, und dann Dein Produkt nicht unter die GPL stellen
Alternative zu Qt... find das eigentlich ganz nett. Vor allem wegen der Plattformunabhängigkeit. Java wäre noch eine alternative. Dann müsste ich all meinen Code als dynamic libraries machen. Wäre eine Überlegung wert. Find ich ehrlich gesagt aber nicht so doll... würde gerne bei reinem C/C++ bleiben.

traffic schrieb:
- Eine Alternative zu B suchen, die unter einer GPL-kompatiblen Lizenz steht, beispielsweise unter der LGPL oder einer BSD-Lizenz, und dann Dein Produkt unter die GPL stellen
B ist marke Eigenbau. ;)

traffic schrieb:
- Entweder A oder B nicht als Bibliothek, sondern als externes Programm aufrufen und dann Dein Produkt nicht unter die GPL stellen
Ist eine dynamisch gelinkte lib nicht defacto das selbe? Bei statischem linking ... ok. Aber dynamisch?

traffic schrieb:
Was möchtest Du überhaupt machen? Ist das vertraulich oder könntest Du sagen, was A und B sind? Wirst Du das Produkt nur für Dich selbst benutzen oder wirst Du es an andere weitergeben?
Wie ich schon sagte ist A = Qt. Und B eine eigene Lib für Bildbearbeitung, Pattern-Recognition & Tracking

edit: Im Moment nutz ich das Ding nur selber. Daher ist das Problem im Moment nicht wirklich gegeben. Es wird im Rahmen einer Diplomarbeit erstellt. Da der Gegenstand der Dipl. Arbeit aber imho evtl für irgendwen interessant sein könnte würde mich schon interessieren wie es mit der Lizenzlage aussieht.
 

regexer

Advanced Hacker
borgg schrieb:
1 Frage:) Da der Compiler unter Linux ja GPL ist, ist dadurch jedes Programm welches damit erstellt wird automatisch GPL? (bzw müsste rechtlich betrachtet unter GPL gestellt werden)

2 Frage) (falls Frage 1 zutrifft hat sich das dann eh erledigt)
Ich empfehle hierzu

http://de.wikipedia.org/wiki/GNU_General_Public_License#Kritik

weiter unten gibt es auch noch weiterführende Links ...
 

taki

Advanced Hacker
Qt unter GPL
eigene Lib nicht

Eine dynamische Wrapperbibliothek um die eigene proprietäre Bibliothek schreiben und diese Nachladebibliothek unter LGPL stellen.

Das Endprodukt unter GPL herausgeben.

Wenn Deine eigene Lib keine Qt-Klassen verwendet, ist das zulässig. Die Bibliothek muss nicht unter GPL gestellt werden, weil sie nicht von Qt abgeleitet ist.

Dein Programm wird unter GPL quelloffen veröffentlicht, wird aber die Funktionen aus der proprietären Bibliothek bei Bedarf dynamisch hinzulinken.

Im Zweifelsfall solltest Du mit Trolltek reden. Die Trolle sind i.d.R. sehr entgegenkommend. Ich meine aber, wenn Deine Bibliothek selbst nicht von Qt abgeleitet ist und sie dynamisch eingebunden wird, dürfte es keine Lizensprobleme geben.
 
borgg schrieb:
das hört sich doch gut an :)
Ist aber nicht richtig. Selbst wenn man einen Wrapper erstellen würde, der von einem anderen Programm dynamisch geladen wird, wäre das Produkt am Ende ein Prozess.

Also: Dein Prozess lädt den Wrapper als dynamisch gelinkte Bibliothek. Dieser lädt wiederum Deine proprietäre Bibliothek dynamisch. -> Geht nicht, weil alles ein Prozess ist. Merke: Qt ist nicht LGPL, sondern GPL! Das ginge nur, wenn es LGPL wäre, dann bräuchte man aber den Wrapper nicht.
borgg schrieb:
Ist eine dynamisch gelinkte lib nicht defacto das selbe? Bei statischem linking ... ok. Aber dynamisch?
Nein! Und zwar, weil eine dynamisch gelinkte Bibliothek zur Laufzeit mit dem Programm, das sie aufruft, zu einem Prozes verschmilzt. Das lässt die GPL nicht zu. Die LGPL lässt es zu, die GPL nicht.

Es mag kleinlich klingen, aber die GPL ist wirklich so gestrickt: Du darfst aus einem GPL-Prozess beliebige andere, nicht-GPL-Prozesse aufrufen und Du darfst aus beliebigen, auch nicht-GPL-Prozessen andere GPL-Prozesse aufrufen. Nur zu einem Prozess machen darfst Du sie nicht, aber genau das passiert beim dynamischen Linken.

Was kann man da machen?

- Qt als externen Prozess aufrufen geht nicht, ist völlig unmöglich. Also musst Du, wenn Du Qt nutzen willst, entweder eine kommerzielle Lizenz kaufen oder Dein Programm unter die GPL stellen.
- Wenn Du das machst, willst Du Deine Bibliothek trotzdem nicht unter die GPL stellen. Das geht nicht. Also müsstest Du das, was diese Bibliothek macht, in ein externes Programm verlagern, das dann von Deinem Prozess aufgerufen wird. Rechtlich geht das, ob es technisch geht, weißt nur Du.
- Falls das auch nicht geht, in den sauren Apfel beißen und statt Qt etwas anderes, möglicherweise nicht ganz so hochwertiges benutzen. Für C gäbe es GTK und für C++ gäbe es wxWidgets. GTK ist LGPL, also kein Problem, wxWidgets hat eine besondere Lizenz, die Dir auch ermöglicht, was Du vorhast, sogar statisch linken ist erlaubt. Allerdings wäre das natürlich ein Portierungsaufwand, der vielleicht sogar mehr Kosten verursacht als eine kommerzielle Qt-Lizenz.

Trolltech hat sich das schon sehr genau überlegt mit der Doppellizensierung, das Geschäftsmodell funktioniert gut, weil einfach kaum ein weg an einer kommerziellen Lizenz vorbeiführt, wenn man was proprietäres damit machen will. Ist auch völlig in Ordnung, ohne dieses Modell gäbe es wahrscheinlich kein Qt mehr, aber Du wirst keinen Weg finden, der technisch wirklich überzeugend ist und gleichzeitig an einer kommerziellen Lizenz vorbeiführt.

Eine Alternative fällt mir gerade noch ein:

http://www.fox-toolkit.org

Zur Qualität und Eignung kann ich nichts sagen, aber die Lizenz bzw. das Addendum ist liberal. Es ist im Prinzip dasselbe wie bei wxWidgets, Du darfst sogar auch statisch linken.

@taki: Nein, der Wrapper darf keine dynamische Bibliothek sein, wenn überhaupt, dann muss er ein externer Prozess sein. Das Hauptprogramm wäre am Ende von Qt abgeleitet, also muss es, wenn Qt unter der GPL benutzt wird, mit allen seinen Bibliotheken, die Bestandteil des Prozesses werden, unter der GPL stehen, egal ob die wiederum Qt benutzen oder nicht.
 
OP
B

borgg

Newbie
Ok, danke für die Aufklärung. Ich verstehen Trolltech da auch, irgendwovon wollen die Jungs da auch leben. Sie leisten ja sehr gute Arbeit. Trotzdem werd ich mich dann zu gegebener Zeit nach einer "freieren" Widgetlibrary umsehen (müssen).

Das Fox-Toolkit und wx sehen auf den ersten Blick unter Linux recht bescheiden aus (zumindest die Screenshots auf den seiten). Die Windoof Scrennshots sehen ja ganz ok aus. Aber unter X...halt dieser "Oldstyle" in meinen Augen(k.a. wie das heißt). So häßlich wie der alte Acrobat Reader 5.x oder der bei den letzen Distries immer dabei war oder XFig (ich denk du weißt was ich meine)

Gtk...omg, ne du mit c hab ich nix am Hut ;). Ich dachte mal GTK+ sei objektorientiert. Hab mal schnell eben ein Blick in die Doku geworfen. :shock: Also die nennen das da zwar irgendwie "Klassen" aber wenn ich mir die header Files so ansehe... Was ist das denn bitte? Pseudo-Objektorientiert über Namens-Konventionen?
 
OK, also langsam werde ich mich aus der Diskussion zurückziehen müssen, weil ich von Programmierung echt nichts verstehe. ;)

Trotzdem noch folgende Informationen, vielleicht bringen sie Dir was:

- GTK ist C, es gibt aber auch ein richtiges C++-Interface namens GTKmm dafür. Es soll angeblich sehr modernes C++ sein, keine Ahnung. Die Linux-Version von VMWare benutzt GTKmm.
- GTK unter Windows ist Murks. Installier mal GIMP unter Windows, dann weißt Du, was ich meine.
- Zum Aussehen von Fox kann ich nichts sagen, weil ich gerade erst dabei bin, mir den X File Explorer zu kompilieren. ;)
- wxWidgets sieht unter Linux wie GTK, unter Windows wie Windows und unter Mac OS X wie Aqua aus. Dafür ist es aber ein wenig langsam beim Zeichnen, man merkt es, wenn man die Fenstergröße ändert. Installier Dir mal aMule oder Audacity, es sieht echt nicht so schlecht aus.
- Gegen Fox und für wxWidgets spricht, dass wxWidgets auch auf dem Mac läuft. Fox läuft auf dem Mac nur unter X11, aber die meisten Mac-Benutzer lehnen X11 kategorisch ab. Genau dasselbe gilt übrigens auch für GTK. GTK läuft auch auf dem Mac, aber nur unter X11. Nur Qt und wxWidgets kommen auf dem Mac ohne X11 aus.
- Der alte Acrobat Reader war Motif. Das ist wirklich alt, es ist aber eine völlig andere Sache. wxWidgets kann man auch als Motif-Wrapper benutzen, das macht aber kein Mensch mehr, jeder vernünftige Mensch wird den GTK-Wrapper nehmen. Außerdem ist Motif sowieso kein Thema, weil es Geld kostet, sich im Gegensatz zu Qt nicht mal lohnt und nur für X11 verfügbar ist.
 
A

Anonymous

Gast
Steht eine Bibliothek unter der GPL, so fallen alle Programme, die diese Bibliothek dazulinken - gleichgültig ob statisch oder dynamisch -, ebenfalls unter die Veröffentlichungspflicht, da sie als "abgeleitetes Werk" anzusehen sind. Aus diesem Grund hat man für Bibliotheken eine Abschwächung der GPL formuliert, die "Lesser GPL" (LGPL, früher auch als "Library GPL" bekannt). So lizenzierte Software (im Allgemeinen sind dies Bibliotheken) darf ohne weiteres zu proprietären Anwendungen dazugelinkt werden, ohne dass diese wiederum automatisch unter die GPL fallen müssen. Bekanntes Beispiel ist die GNU-C-Bibliothek Glibc, die die Programmierschnittstelle zwischen dem Linux-Kernel und Anwendungsprogrammen bereitstellt. Ohne die LGPL wären "Closed Source"-Applikationen unter Linux überhaupt nicht möglich.

Hoffe das erklärt dein Problem.

robi
 
@robi: Ja, aber da muss man eben dazusagen, dass Qt eben gerade nicht LGPL ist. Mir ist schon klar, dass Du das weißt, aber der Satz suggeriert ein wenig, dass alle Bibliotheken LGPL seien. Das stimmt nicht.

Deswegen: Vom GCC bzw. besser gesagt von dessen Laufzeitbibliotheken her gibt es kein Hindernis für borggs Vorhaben, sehr wohl aber von Qt.

Kleine off-topic-Frage: Stimmt es wirklich, dass man, wenn die glibc nicht LGPL wäre, gar keine ClosedSource-Software für Linux machen könnte? Intel hat doch einen kommerziellen Compiler, bringt der keine eigene C-Bibliothek mit?
 
A

Anonymous

Gast
das er Qt verwenden wollte habe ich wohl überlesen.
Was den intel Compiler betrifft, ab version 6 voll gcc kompatibel und Objektdateien sogar mit denen vom gcc mischbar und volle Unterstützung vom gdb ??? keine Ahnung ob der ne eigene Clib mit bringt, habe noch nicht mit gearbeitet.

robi
 

TeXpert

Guru
traffic schrieb:
Kleine off-topic-Frage: Stimmt es wirklich, dass man, wenn die glibc nicht LGPL wäre, gar keine ClosedSource-Software für Linux machen könnte? Intel hat doch einen kommerziellen Compiler, bringt der keine eigene C-Bibliothek mit?

zumindest nicht mit dem gcc :) ich denke in so einem Fall würde eine entspechende lib gebaut werden, wenn der Bedarf wäre. Wobei hier die Frage zu stellen ist, wie viele Hersteller kommerzieller Software hätten dann Interesse an Linux gehabt..


jetzt zum icc:
System Requirements / Software:
*
Linux* system with glibc 2.2.4, 2.2.5, 2.2.93, 2.3.2, or 2.3.3 and the 2.4.X or 2.6.X Linux kernel as represented by the following distributions

Note: Not all distributions listed are validated and not all distributions are listed.

o
RedHat Linux* 7.3, 8.0, 9.0
o
RedHat Enterprise Linux 2.1, 3.0, 4.0
o
SuSE* Linux 8.2, 9.1
o
SuSE Enterprise Server 8.0 or 9.0
*
Linux Developer tools component installed, including GCC, G++ and related tools
 

taki

Advanced Hacker
Mir ist noch nicht so ganz klar, wie eine dynamisch dazugeladene Bibliothek, welche selbst nicht Qt dazulinkt, durch das Laden in ein Programm zum abgeleiteten Werk werden soll?!

Wie sonst wären proprietäre Plugins für GPLte Programme möglich? Was ist mit den prorietären Bestandteilen von Gerätetreibern? Die gelten i.d.R. auch nicht als abgeleitetes Werk.

Letztenendes kann aber sowieso nur ein Gespräch mit dem Urheber der fraglichen Komponenten (Trolltek) eine abschließende Klärung bringen. Bei Trolltek arbeiten Menschen, mit denen man reden kann. Ein Gespräch alleine kostet noch nichts. Ich würde für ein Projekt nicht einfach auf eine Lösung ausweichen, die Mehrarbeit bedeutet, ohne abgeklärt zu haben, welche Kosten denn wirklich anfallen würden.
 
Oben