Seite 1 von 1

LGPL 2.1 - die 1000ste

Verfasst: 25. April 2010 14:13
von danibert
Hallo zusammen,

vorab ein paar wichtige Informationen:
- ja, ich habe gegoogelt
- ja, ich habe die Suchfunktion des Forums genutzt
- ja, ich habe den Lizenzvertrag der LGPL 2.1 auf deutsch und englisch mehrfach gelesen

Nun zum eigentlichen Thema. Die Fakten:
Ich entwickle gerade ein Programm, dass ich kostenlos an meine Kunden herausgebe. Das Programm dient zur Verwaltung von Benutzeraccounts auf meinem Server und lässt sich aus verschiedenen Gründen nur Clientseitig umsetzen.
Da ich nicht weiß, wie erfolgreich mein Projekt sein wird, lohnt sich der Kauf einer kommerziellen Qt-Lizenz derzeit nicht.
Den Sourcecode meiner ausführbaren Datei möchte ich geheim halten. Eine Veröffentlichung würde für mich einen Wettbewerbsnachteil bedeuten.

Ich erstelle also mein Projekt in Qt4.6 (Qt Creator 1.3.1),linke alles dynamisch und biete das Programm meinen Kunden zum Download an.

Meine Fragen:
- Soweit ich die Lizenzbedingungen verstanden habe, darf ich die zur Ausführung meiner Anwendung benötigten .dll Dateien meinem Download beilegen. Soll ich auch den Quelltext der .dll Dateien beilegen oder diesen nur auf Anfrage aushändigen?

- In den Lizenzbedingungen steht, dass ich den Benutzern den Lizenzvertrag zugänglich machen muss. Ich lege also auch diesen dem Programm bei. Ich konnte leider nur eine inoffizielle deutsche Übersetzung der LGPL finden. Müssen die Lizenzbedingungen in der jeweiligen Sprache der Anwendung vorhanden sein, oder reicht das englische Original?

- An welcher Stelle muss ich den Lizenzvertrag zur Verfügung stellen: in der Anwendung selbst, im Installationsprogramm oder in der Onlinehilfe?

- Wie bereits erwähnt, linke ich dynamisch. Die Bibliotheken können jederzeit ausgetauscht werden, sie laufen also unter LGPL. Wie sieht es für meine ausführbare Datei aus? Darf ich diese als Closed Source veröffentlichen und hierfür eigene Lizenzbedingungen erstellen? In den Lizenzbedingungen ist das irgendwie recht schwammig definiert....

Danke im Voraus für jede Unterstützung

echt schwer

Verfasst: 25. April 2010 18:24
von softwaremaker
Also so richtig klar ist mir die Sache auch nicht.

Ich verwende das Qt-SDK und kompiliere die Qt-DLLs nicht selbst, sondern verwende die von Qt mitgelieferten mit dynamischem Linken.
Also verändere ich Qt nicht und damit ist es lizenzmäßig einfacher.

Mein Programm ist ein "work that uses the Library" (§5)
daraus folgt:
"Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License."
Somit ist §6 nicht relevant.

Ich schlussfolgere daraus:
- ich gebe die Qt-DLLs in binärer Form meiner Anwendung bei
(nicht Teile des Qt-Source mitgeben!)
- muss keinen LGPL-Lizenztext mitgeben
- muss auch keinen Hinweis angeben, dass ich Qt verwende (sieht man aber sowieso anhand der Dateien)

Lasse mich aber gerne besseren belehren...

update:
Die Qt-DLLs darf man frei weitergeben:
http://qt.nokia.com/developer/faqs/70/

Verfasst: 26. April 2010 14:45
von danibert
...Jetzt kapier ich überhaupt nichts mehr.
In §5 der LGPL steht:

Code: Alles auswählen

§5. Ein Programm, das nichts von irgendeinem Teil der Bibliothek Abgeleitetes enthält, aber darauf ausgelegt ist, mit der Bibliothek zusammenzuarbeiten, indem es mit ihr compiliert oder gelinkt wird, nennt man ein „Werk, das die Bibliothek nutzt“. Solch ein Werk, für sich allein genommen, ist kein von der Bibiliothek abgeleitetes Werk und fällt daher nicht unter diese Lizenz. 

Wird jedoch ein „Werk, das die Bibliothek nutzt“, mit der Bibliothek gelinkt, so entsteht ein ausführbares Programm, das ein von der Bibliothek abgeleitetes Werk (weil es Teile der Bibliothek enthält) und kein „Werk, das die Bibliothek nutzt“ ist. Das ausführbare Programm fällt daher unter diese Lizenz. Paragraph 6 gibt die Bedingungen für die Weitergabe solcher ausführbarer Programme an. 
Ja was denn nun?
Das sind doch zwei genau gegensätzliche Aussagen, oder verstehe ich das falsch?
Geht es im zweiten Satz um statisches Linken?

statisches Linken

Verfasst: 26. April 2010 14:59
von softwaremaker
Geht es im zweiten Satz um statisches Linken?
So sehe ich das jedenfalls...
§5. Ein Programm, das nichts von irgendeinem Teil der Bibliothek Abgeleitetes enthält, aber darauf ausgelegt ist, mit der Bibliothek zusammenzuarbeiten, indem es mit ihr compiliert oder gelinkt wird, nennt man ein „Werk, das die Bibliothek nutzt“. Solch ein Werk, für sich allein genommen, ist kein von der Bibiliothek abgeleitetes Werk und fällt daher nicht unter diese Lizenz.
Wird dynamisch gelinkt, dann enthält das eigene Programm (fast) keine Codeteile von Qt (das bisschen aus den Headern etc. ist ja erlaubt).
Wird jedoch ein „Werk, das die Bibliothek nutzt“, mit der Bibliothek gelinkt, so entsteht ein ausführbares Programm, das ein von der Bibliothek abgeleitetes Werk (weil es Teile der Bibliothek enthält) und kein „Werk, das die Bibliothek nutzt“ ist. Das ausführbare Programm fällt daher unter diese Lizenz. Paragraph 6 gibt die Bedingungen für die Weitergabe solcher ausführbarer Programme an.
Das ist nur beim statischen Linken so, das ausführbare Programm enthält dann Teile von Qt, also direkt mit in der exe.
Und nur dann ist §6 zu beachten.

Fazit: wenn dynamisch gelinkt wird, kann man sein Programm unter einer beliebigen Lizenz weitergeben. Die unveränderten Qt-DLLs sind dann vergleichbar mit Public Domain, können also kostenlos mit dem Programm weitergegeben werden ohne besondere Anforderungen seitens Nokia.

Verfasst: 26. April 2010 15:01
von Mani99
Ich glaub verständlicher steht das ganze bei wikipedia!

wiki

Verfasst: 26. April 2010 15:13
von softwaremaker
@Mani99: stimmt, ich hatte mir es auch vorher durchgelesen, jedoch gelten tut ja die LGPL 2.1 und nicht der Wikipedia-Eintrag. Und in der LGPL 2.1 ist der Zusammenhang nicht so einfach zu erkennen.
Wichtig ist ja auch zu wissen, ob und wie man bestimmte Hinweise auf die genutzte Bibliothek im eigenen Programm/Doku integrieren muss und da sagt der wiki-Eintrag nichts.

Verfasst: 26. April 2010 15:21
von danibert
Eine Frage noch zu den Lizenzbedingungen:
Ich linke also Dynamisch und veröffentliche mein Programm als Closed-Source mit meiner eigenen Freeware-Lizenz. Die Qt-DLLs lege ich unverändert in binärer Form bei.

Muss ich nun für die DLLs die LGPL beilegen oder nicht?
Oder reicht ein Hinweis in der Onlinehilfe meines Programmes und ein Link zum Lizenztext?

nichts

Verfasst: 26. April 2010 15:31
von softwaremaker
Muss ich nun für die DLLs die LGPL beilegen oder nicht?
Oder reicht ein Hinweis in der Onlinehilfe meines Programmes und ein Link zum Lizenztext?
Nein, musst nichts beilegen oder erwähnen. Siehe auch
http://qt.nokia.com/developer/faqs/70/
...you are free to ship the dll with your application
Macht ja auch keinen Sinn, mit der Qt-DLL alleine kann ein anderer Programmierer nichts anfangen, da braucht er auch keinen Lizenztext.

Verfasst: 26. April 2010 21:14
von guenni81
Hallo,
also wenn ich das jetzt alles hier richtig verstehe, dann muß ich beim Dynamischen linken auch keinen Hinweis auf die LGPL mitgeben oder im Programm unterbringen? Vorraussetzung hierfür ist dann natürlich das ich das Programm in Binärform verteile was ja bei Closed Source der normalfall ist.