GNU oder GNU Lesser Lizenz?



  • Wenn du die DLL, die du dynamisch lädtst gegen einen eincompilierten Hash vergleichst und bei Fehler abbrichst hilft das dynamische linken auch nicht viel



  • anscheinend nur autisten und blinde unterwegs in diesem thread.
    @testo: die ersten beiden antworten sind korrekt. lgpl zielt darauf ab, dass die dynamische lib von dritten ausgetauscht werden kann. das musst du sicherstellen.



  • 😕
    sorry leute - jetzt bin ich komplett verwirrt.

    Also ich erläutere mal wie genau das bei mir aussieht:

    Ich habe einen eigenen Code geschrieben.
    in meinem Makefile binde ich die bibliothek ein (unter linux) eien lib.a . Also in dem fall denke ich erfülle ich das mit dem dynamisch.

    Jetzt gibts in dem Paket der Library aber einen Include Ordner wo eine *.h drin ist. Diese include ich bei mir im code. Damit kann ich datenstrukturen der library in meinem eigenen code bauen.

    Also wenn jetz die library eine struktur as *; hat. Dann kann ich so in meinem code eine as * füllen.

    Die library die ich einbinde läuft unter der LGPL.

    Wie muss ich jetzt korrekterweise vorgehen?

    Danke euch nochmal für präzise Antwort 🙂



  • eine "*.a"-Datei ist i.d.R. eine statische Library, du erfuellst das dynamische Linken also nicht (dynamische Libs enden in der Regel auf *.so). Statische Libs werden naemlich in das erstellte Binary mit eingebunden. Somit koennten Interessierte die Bibliothek in deinem Programm nicht veraendern/durch andere Versionen austauschen.

    Du kannst nun

    • schaun ob man aus der statischen eine dynamisch linkbare Bibliothek machen kann (k.A. obs dafuer nicht sowieso Konverter gibt, oder du kompilierst die Bibliothek neu als dynamische Bib.).
    • du kannst den Quellcode deines Programmes zur Verfuegung stellen (du kannst aber trotzdem jede beliebige Lizenz verwenden, egal ob kommerziell, Freeware oder OpenSource).
    • du kannst die Objektfiles deines Programmes (".o") zur Verfuegung stellen, so dass Anwender dein Programm mit anderen Versionen des Programms linken koennen.

    Dass du die Include-Datei der Bibliothek in deinem Quellcode inkludierst, ist uebrigens kein Problem, mach dir darueber keinen Kopf.



  • wenn mich nicht alles täuscht, ist lib.a keine dynamisch gelinkte bibliothek. die müsste lib.so heißen, und die musst du mit dem programm mitliefern und sie muss austauschbar sein (wie es dynamisch gelinkte bibliotheken nun mal in der regel sind).

    oder du stellst dein programm einfach unter die gpl und machst dir keine weiteren gedanken. dein programm will unter linux sowieso keiner haben, wenn es unter einer proprietären lizenz steht.



  • ich habe vergessen zu erwähnen dass mein kompletter quellcode mit ausgeliefert wird. ALso jeder komplette einsicht in alle *.cpp sowie *.h dateien hat.

    Wie sieht die situation jetzt aus?



  • oder du stellst dein programm einfach unter die gpl und machst dir keine weiteren gedanken. dein programm will unter linux sowieso keiner haben, wenn es unter einer proprietären lizenz steht.

    ja aber meine frage war ja eben nur ob ich GPL oder LGPL tragen muss 🙂
    zwecks der LGPL der statisch gelinkten Lib ? und wie gesagt: meine sourcen gebe ich alle frei ...



  • Blue-Tiger schrieb:

    • du kannst den Quellcode deines Programmes zur Verfuegung stellen (du kannst aber trotzdem jede beliebige Lizenz verwenden, egal ob kommerziell, Freeware oder OpenSource).

    Du solltest Blue-Tiger post besser durchlesen 😃



  • Hab ich wirklich - nur würde ich gerne nochmal eine bestätigung haben.

    So wie ich das jetzt verstehe kann ich jede beliebige Lizenz nehmen weil ich alle
    sourcen freigebe. Sprich entweder die GPL oder die LGPL verwenden oder?

    Mir ist nur der Unterschied zwischen LGPL und GPL immer noch nicht ganz klar...



  • GPL hat den Zwang, wenn du Code benutzer, das darunter fällt, muss dein Werk auch unter diese Lizenz fallen. Deswegen gibt es LGPL, weil nicht durch Benutzer eine Lib der Zwang dieser Lizenz bestehen sollen. Beispielweise ist dies greade bei Dual-Lizenz aber gewünscht. QT gibst als GPL oder unter kommerzielle Lizenz.



  • *grmpf

    ich will in zukunft mal meine anwendung als lib zur verfügung stellen so dass andere sie auch einbinden können. Wäre es da sinnvoll jetzt schon auf die LGPL zu gehen.

    Nichts für ungut Zeus ...dein deutsch regt mich zum nachdenken an: Meintest du jetzt dass man prinzpiell eher die LGPL verwendet wenn man eine lib anbietet und nicht die benutzer einschränken falls sie die lib benutzen würden? Natürlich wenn man die GPL benutzt hätte...

    Wie ist es eigentlich mit einer kleinen Zusatzklausel. Darf man die GPL bzw. LGPL leicht erweitern? NIcht das ich das jetzt machen wollte...aber prinzpiell würd ich s gern wissen...



  • verdammt...ich hab ja ganz vergessen dass ich 2 Bibs verwende. In der zweiten Bib verwende ich aber lediglich routinen. ALso keine datenstrukturen sondern nur den funktionsaufruf. Ich benutze ich auch eine lib*.a .

    Jetzt ist es aber so dass diese 2te Bib eine eigene Lizenz hat die irgendwie nach eine Modified BSD Lizenz aussieht wie ich mich informiert habe. Und diese sei ähnlich zur GPL.

    Jetzt bin ich total durcheinander. So wie ich das verstanden habe wäre es mit der LGPL Leuten ermöglicht dass sie meine Anwendung in kommerzielle SW integrieren. Mit der GPL nicht. Wenn aber diese modifizierte verträglich zur GPL sei müsste ich doch entweder auch unter die GPL gehen oder zumindest irgendwie was von der Modified BSD übernehmen oder so?

    Kann mir jemand helfen?



  • testo schrieb:

    So wie ich das jetzt verstehe kann ich jede beliebige Lizenz nehmen weil ich alle sourcen freigebe. Sprich entweder die GPL oder die LGPL verwenden oder?

    Du kannst in dem Fall nehmen was du willst. GPL, LGPL, BSD, MIT, CC, blabla, quark, blubb, foo, bar, etc. etc. pp.

    testo schrieb:

    Mir ist nur der Unterschied zwischen LGPL und GPL immer noch nicht ganz klar...

    Ganz, ganz grob vereinfacht:
    GPL: Jeder, der den Code verwendet, muss auch selbst die GPL verwenden.
    LGPL: jeder, der den Code verwendet, muss sicherstellen, dass auch andere DEN LGPL-CODE in deiner App. veraendern koennen.

    testo schrieb:

    Jetzt ist es aber so dass diese 2te Bib eine eigene Lizenz hat die irgendwie nach eine Modified BSD Lizenz aussieht wie ich mich informiert habe. Und diese sei ähnlich zur GPL.

    Na ja, kommt drauf an. Die normale BSD-Lizenz an & fuer sich hat absolut keine "derived works muss auch unter die gleiche Lizenz" Klausel, wie die GPL sie hat.

    testo schrieb:

    Jetzt bin ich total durcheinander. So wie ich das verstanden habe wäre es mit der LGPL Leuten ermöglicht dass sie meine Anwendung in kommerzielle SW integrieren. Mit der GPL nicht.

    GPL sagt absolut nichts ueber kommerzielle Software aus. Du kannst Software, die unter GPL steht, auch verkaufen! Aber du musst nur dem Kaeufer auch deinen Quellcode mit in die Hand druecken. Er hat dann - wenn nicht anders vereinbart - das Recht, mit dem Code zu machen was er will: ihn zu veraendern, ihn weiterzuverkaufen, ihn zu veroeffentlichen - aber auch immer unter den Einschraenkungen der GPL (d.h. er darf den Code z. B. weiterverkaufen, muss aber selbst auch wieder den Code mitgeben).

    testo schrieb:

    ich will in zukunft mal meine anwendung als lib zur verfügung stellen so dass andere sie auch einbinden können. Wäre es da sinnvoll jetzt schon auf die LGPL zu gehen.

    Fuer Libs ist die LGPL besser geeignet, es sei denn du willst ausdruecklich, dass deine Lib nur von OpenSource-Programmen verwendet wird, und du diese zwingen willst, selbst auch die GPL zu verwenden.

    Wie ist es eigentlich mit einer kleinen Zusatzklausel. Darf man die GPL bzw. LGPL leicht erweitern? NIcht das ich das jetzt machen wollte...aber prinzpiell würd ich s gern wissen...

    Klar darfst du. Tun auch einige. Es ist dein Code, du darfst die Lizenzbedingungen dafuer waehlen wie sie dir passen. 🙂 (soweit du keine anderen Rechte damit verletzt - wenn du GPL-Code verwendest, musst du auch selbst die (AFAIK unmodifizierte) GPL verwenden, da fuehrt kein Weg drum herum).



  • die BSD ist absolut nicht aehnlich zur GPL.

    - ein programm was eine unter der GPL lizenzierte bibliothek in irgendeiner form einbindet (egal ob statisch oder dynamisch gelinkt) muss unter die GPL gestellt werden.

    - ein programm was eine unter der LGPL lizenzierte bibliothek dynamisch linkt (DLL unter windows, SO unter linux) kann unter eine x-beliebige lizenz (auch proprietaere) gestellt werden, muss aber eine notiz und einen link auf die sourcen der genutzen lib anbieten, oder diese sourcen mitliefern. wenn es jedoch statisch linkt, muss es auch unter die LGPL (oder, alternativ kann man es auch unter die GPL stellen IIRC).

    - ein programm was eine unter der BSD lizenzierte bibliothek in irgendeiner form einbindet (egal ob statisch oder dynamisch gelinkt) muss nur den text der lizenz befolgen, das bedeutet: 1) quellcode-distribution müssen die unter der BSD-lizenz stehenden dateien unter der selben lizenz anbieten und diese anzeigen, 2) binaer-distributionen muessen die lizenz anzeigen, 3) mit dem namen der ursprungsorganisation/authoren darf nicht geworben werden.

    //EDIT: a bissl too late...



  • loki1985 schrieb:

    - ein programm was eine unter der GPL lizenzierte bibliothek in irgendeiner form einbindet (egal ob statisch oder dynamisch gelinkt) muss unter die GPL gestellt werden.

    Ne, das stimmt so nicht. Man muss nur eine kompatible Lizenz nehmen.



  • danke euch für eure antworten. Also ich denke jetzt nochmal laut:

    software die unter GPL läuft gliedert also die anwendungen aus die nicht GPL verwenden können/wollen. Sprich: Wenn ich mein tool unter die LGPL Anwendung setze ist es JEDEM Möglich meine lib/anwendung zu verwenden ABER er hat auch die Möglichkeit seine eigene Lizenz zu stricken....

    also wenn ich will dass meine libraries auch von anwendungen genutzt werden können die nicht unter der LGPL oder GPL laufen muss ich die LGPL nehmen?

    stimmt das?



  • testo schrieb:

    danke euch für eure antworten. Also ich denke jetzt nochmal laut:

    software die unter GPL läuft gliedert also die anwendungen aus die nicht GPL verwenden können/wollen. Sprich: Wenn ich mein tool unter die LGPL Anwendung setze ist es JEDEM Möglich meine lib/anwendung zu verwenden ABER er hat auch die Möglichkeit seine eigene Lizenz zu stricken....

    Ja, im Grossen und Ganzen ist das korrekt 🙂

    also wenn ich will dass meine libraries auch von anwendungen genutzt werden können die nicht unter der LGPL oder GPL laufen muss ich die LGPL nehmen?

    Wenn du deine Wahl auf "LGPL oder GPL" einschraenken willst, ja. Aber es gibt unzaehlige andere Libraries neben der LGPL, die das ermoeglichen, z. B. die BSD-Lizenz.

    rüdiger schrieb:

    loki1985 schrieb:

    - ein programm was eine unter der GPL lizenzierte bibliothek in irgendeiner form einbindet (egal ob statisch oder dynamisch gelinkt) muss unter die GPL gestellt werden.

    Ne, das stimmt so nicht. Man muss nur eine kompatible Lizenz nehmen.

    Hmm... bist du da sicher? Soweit ich das verstanden hab, verlangt die GPL, dass das Endprodukt kein "schwaecheres" Copyleft hat als das, was die GPL verlangt. Und OSS-Lizenzen mit "staerkerem" Copyleft als die GPL fallen mir grad keine ein.Du darfst zwar z. B. BSD- & GPL-Code mischen (BSD-Lizenz ist GPL-kompatibel), das Endergebniss muss dann aber GPL sein (die BSD-Lizenz wuerde Restriktionen der GPL aufheben, d.h. ihr Copyleft waere schwaecher). Was waere fuer dich eine (bekannte) kompatible Lizenz?

    EDIT: uebrigens, IANAL, nur damit es mal gesagt wurde. Kann gut sein dass meine Interpretation der Lizenztexte komplett falsch ist 😉



  • Ok Danke. Und wenn ich jetzt die LGPL nehme ....muss ich dann sowohl ein COPYING file nehmen wo die GPL drin steht und auch ein COPYING.LESSER file wo die LGPL drin steht? Oder reicht nur die COPYING.LESSER?


Anmelden zum Antworten