Hi
Sehe ich dasa richtig:
wenn ich ein GNU Lesser General Public License 2.1 open source library
in mein embedded projekt einsetzen will als precompiled lib, muss ich
nur die lib frei zugänglich machen. Und das auch nur wenn ich da was
dran geändert habe.
Richtig?
Danke
Solange du den LGPL Teil dynamisch linkst ist das korrekt.
Geschieht das Linken statisch wird dein Code auch wieder LGPL
lizensiert.
Siehe z.B. das Qt Framework.
Hier ist das auch nochmal gut (englisch) beschrieben:
https://stackoverflow.com/questions/10130143/gpl-lgpl-and-static-linking
Bernhard R. schrieb:> Geschieht das Linken statisch wird dein Code auch wieder LGPL> lizensiert.
Soweit ich weiß reicht es seinen eigenen Teil als Object-File
mitzuliefern, sodass der Anwender in der Lage ist den LGPL-Teil nach
belieben zu modifizieren oder selbst zu schreiben und danach wieder
selbst zu linken.
Die LGPL sagt, dass der Benutzer einen unter dieser Lizenz stehenden
Code verändern und diesen mit deiner Software verwenden können muss.
Es entstehen also zwei Fälle...
Fall 1: [Dein Code] + [LGPL Lib als Static Library (.a file)]
Du musst deinen Quellcode zugänglich machen weil er zur compile Zeit
eine Einheit mit deinem Code bildet.
Fall 2: [Dein Code] + [LGPL Lib als Shared Object Library (.so file)
oder DLL]
Du musst deinen Quellcode nicht zugänglich machen, da die Library eine
separate Einheit bildet die von Dritten verändert werden kann.
Bu B. schrieb:> muss ich nur dem kunden
Jeder der im Besitz der Binary ist hat einen Anspruch auf deinen
Source-Code bzw. die Object-Files und zwar genau so wie Bernhard das
beschrieben hat. Wenn dein Kunde ein Gerät mit deiner Software an einen
anderen Kunden weiterverkauft, dann hat eben auch der Kunde deines
Kunden einen Anspruch und wenn du ein Firmware-Update als Binary
herausgibst und es auf deine Internetseite stellst, dann hat jeder der
die Binary lädt einen Anspruch.
Ich wette, daß sich 90% der Linux basierten WLAN Router nicht an die
Lizenz halten.
Sollte man aber tun. Wenn man schon Geschenke (die Library) verwendet,
sollte man dabei wenigstens die Wünsche des Autors respektieren.
Ich habe ohnehin wenig Verständnis dafür, daß Formen immer ihren Pläne
und Quelltexte so geheim halten, als sei es der Heilige Gral. Das führt
nämlich zu Wegwerfprodukten, und die haben mit Umweltschutz wenig
gemein.
Bernhard R. schrieb:> Es entstehen also zwei Fälle...>> Fall 1: [Dein Code] + [LGPL Lib als Static Library (.a file)]> Du musst deinen Quellcode zugänglich machen weil er zur compile Zeit> eine Einheit mit deinem Code bildet.>> Fall 2: [Dein Code] + [LGPL Lib als Shared Object Library (.so file)> oder DLL]> Du musst deinen Quellcode nicht zugänglich machen, da die Library eine> separate Einheit bildet die von Dritten verändert werden kann.
Ob das so vor Gericht auch standhalten würde, ist fragwürdig.
Es ist vollkommen unlogisch, wenn ich den Quellcode zugänglich machen
muss, nur weil ich beim Compilieren einen anderen Schalter verwende.
Ob du den Quellcode zugänglich machen musst, hat nichts mit dem
Compilerschalter zu tun. Es hat nur damit zu tun, ob dein Endprodukt ein
abgeleitetes Werk ist.
MaWin schrieb:> Ob du den Quellcode zugänglich machen musst, hat nichts mit dem> Compilerschalter zu tun. Es hat nur damit zu tun, ob dein Endprodukt ein> abgeleitetes Werk ist.
Nein. Sondern ob es Code nutzt, der unter LGPL lizensiert ist. Das macht
den Unterschied und solltest du auch wissen wenn du entsprechenden Code
benutzt.
hans im glück schrieb:> Nein. Sondern ob es Code nutzt, der unter LGPL lizensiert ist. Das macht> den Unterschied und solltest du auch wissen wenn du entsprechenden Code> benutzt.
Ja eben. Das sagte ich doch.
Es hängt keinesfalls vom Compilerschalter ab.
hans im glück schrieb:> MaWin schrieb:>> Ob du den Quellcode zugänglich machen musst, hat nichts mit dem>> Compilerschalter zu tun. Es hat nur damit zu tun, ob dein Endprodukt ein>> abgeleitetes Werk ist.>> Nein. Sondern ob es Code nutzt, der unter LGPL lizensiert ist. Das macht> den Unterschied und solltest du auch wissen wenn du entsprechenden Code> benutzt.
Glashaus. Steine. "Code nutzen" != "abgeleitetes Werk"
Noch zwei Anmerkungen Richtung TE:
1. wenn du die Lizenz nicht selber interpretieren kannst, mußt du dir
entweder Hilfe suchen oder du kannst die Software nicht verwenden.
2. Hilfe in Rechtsfragen wirst du in einem Forum eher nicht finden. Oder
meinst du, jemand der dir hier einen Rat gibt, wird dir im Falle eines
Rechsstreits auch vor Gericht beistehen? Eben.
MaWin schrieb:> Es ist vollkommen unlogisch, wenn ich den Quellcode zugänglich machen> muss, nur weil ich beim Compilieren einen anderen Schalter verwende.>> Ob du den Quellcode zugänglich machen musst, hat nichts mit dem> Compilerschalter zu tun. Es hat nur damit zu tun, ob dein Endprodukt ein> abgeleitetes Werk ist.
Es ist keineswegs unlogisch, hat aber auch nichts mit dem
Compilerschalter zu tun. Davon steht, meines Wissens nach, nichts in der
Lizenz. Die LGPL besagt, dass dem Anwender die Möglichkeit eingeräumt
werden muss, im "freien" Teil der Software Fehler zu beseitigen, oder
diesen zu erweitern. Er darf also an der "open source" Lib rumpfuschen
und das ganze muss, sofern er sich nichts zerballtert, mit der
gelieferten Anwendung laufen.
Wenn du die Lib statisch mit in das Binary einbindest ist dies nicht
mehr möglich. Folge dessen greift dort das Copyleft Prinzip der Lizenz.
Es sind aber durchaus auch andere kreative Ansätze unterwegs, wie man
die Forderungen der Lizenz erfüllen kann.
Aber wie schon geschrieben wurde, sollte man bei Unsicherheiten mit der
Lizenz einen spezialisierten Advokaten zu Rate ziehen.
Bernhard R. schrieb:> Fall 1: [Dein Code] + [LGPL Lib als Static Library (.a file)]> Du musst deinen Quellcode zugänglich machen weil er zur compile Zeit> eine Einheit mit deinem Code bildet.
"If you statically link against an LGPL'd library, you must also provide
your application in an object (not necessarily source) format, so that a
user has the opportunity to modify the library and relink the
application."
https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic
Bu B. schrieb:> Hi> bleibt die frage: muss ich mein selbst geschriebenes code als object> file dem kunden oder der gesamten community zur verfügung stellen?
Alle die es benutzen müssen dazu in der Lage sein es neu zu linken.
Stellst du es auf deine Homepage gehören die obj files dazu, bzw. es ist
glaube ich auch hinreichend die auf Nachfrage zur Verfügung zu stellen.