Was muss ich genau tun, wenn ich eine LGPL-lizenzierte Bibliothek verwende?

48

Ich habe diese Fragen und Antworten gelesen , verstehe aber immer noch nicht, was genau ich tun muss, wenn ich dynamisch eine Verknüpfung mit einer Bibliothek herstelle, die eine LGPL-Lizenz verwendet (in meinem Fall die SDL-Bibliothek).

Wenn ich den LGPL-Text richtig verstehe , muss ich irgendwie die Quelle für die Bibliothek angeben. Ist das genug? Wenn nicht, was muss sonst noch getan werden?

BЈовић
quelle

Antworten:

47

Die Grundvoraussetzung von LGPL besteht darin, die LGPL-lizenzierte Bibliothek und Ihr eigenes Produkt gut genug voneinander zu trennen . Auf diese Weise können Benutzer ihre eigene Version der Bibliothek anstelle der mit Ihrer Software gelieferten Version bereitstellen (z. B. mit den behobenen Fehlern). Um dies zu erreichen, haben Sie zwei Möglichkeiten:

  • Verwenden Sie den LGPL-Code als gemeinsam genutzte Bibliothek (damit die Benutzer nur ihre Binärdatei der Bibliothek über die von Ihnen gelieferte kopieren)
  • Geben Sie den Quellcode des gesamten Projekts an (damit die Benutzer ihren Quellcode der Bibliothek kopieren und alles neu kompilieren können).

Beachten Sie jedoch, dass eine bloße Trennung nicht ausreicht, obwohl sie erforderlich ist. Sie sollten Ihren Benutzern eine dokumentierte Möglichkeit bieten, eine Bibliothek durch ihre Version zu ersetzen (z. B. wie Sie Firmware hochladen oder einen Python-Wrapper für eine LGPL C ++ - Bibliothek neu kompilieren).

Die zweite bemerkenswerte Klausel ist die Zuschreibungspflicht . Dies sollte dazu beitragen , den Namen des ursprünglichen Entwicklers der Bibliothek bekannt zu machen und zu verdeutlichen, dass die coole Software möglicherweise von jemand anderem entwickelt wurde :). Im entsprechenden Abschnitt des "About" -Fensters oder einer README-Datei (wenn Ihre Lizenz Apache ist, ist dies eine NOTICEDatei) sollten Sie den Namen der LGPL-Arbeit angeben, die Sie verwendet haben.

Beachten Sie, dass ich kein Anwalt bin und dies keine Rechtsberatung ist. Beachten Sie, dass ich auch kein Klempner bin und dies kein Hygieneratschlag ist.

P Shved
quelle
13

Wenn Sie die LGPL-Bibliothek statisch verknüpfen, müssen Sie die Quelle der Bibliothek sowie den Quell- oder Objektcode Ihrer Anwendung angeben.

Wenn Sie die LGPL-Bibliothek dynamisch verknüpfen, können Sie entweder Ihre Anwendung allein ohne die Bibliothek verteilen und den Benutzern mitteilen, woher sie heruntergeladen und wie sie eingefügt werden soll, um sie zu verwenden. Sie können Ihrer Anwendung auch eine Kopie der Bibliotheks-Binärdateien und ihrer Quelle hinzufügen.

Dies erklärt es ziemlich gut: http://answers.google.com/answers/threadview/id/439136.html (was ich aus einer Antwort in der im OP verlinkten Frage entnommen habe)

IANAS

Matt Ellen
quelle
2
^ Dies. Der Schlüssel ist dieser: Verbraucher des Produktes erhält eine Anwendung mit einer LGPL-Bibliothek. Können sie den LGPL-Teil verbessern und die neue verbesserte Version mit dem Originalprodukt verwenden? Wenn ja, haben Sie den beabsichtigten Zweck der LGPL erfüllt. LGPLv3 weist ausdrücklich darauf hin, dass der Endbenutzer den LGPL-Teil auch dann ersetzen kann, wenn es sich um eine eingebettete Firmware handelt . Dies bedeutet, dass Sie die vollständige Firmware mit einer neuen Version der Bibliothek neu kompilieren und auf das Gerät laden können . (Mein Verständnis, IANAL, dies ist kein Rechtsrat.)
Scott Whitlock
@Scott: Ich glaube, der Embedded / Firmware-Teil gilt nur, wenn es möglich ist, die Firmware auf dem Gerät zu ändern.
David Thornley
Was bedeutet das "S" in "IANAS"?
Joe Z.
1
@ JoeZeng Solicitor
Matt Ellen
1

IANAL, aber ich verstehe, dass der Sinn der LGPL darin besteht, dass sie den Code nicht "infiziert", abhängig von der GPL oder der AGPL. Sie können also LGPL-Code als Abhängigkeit haben und müssen nichts tun.

Das heißt, wenn Sie LGPL-Code mit Ihrer Anwendung ändern / modifizieren / verteilen , müssen Sie diesen Code öffentlich verfügbar machen.

Jason Lewis
quelle
Gab es keine Vereinbarung / Vereinbarung, dass "die Quelle öffentlich zugänglich machen" durch die Angabe einer URL, die auf die ursprüngliche Quelle / das ursprüngliche Repo verweist, erfüllt werden könnte? (Angenommen, Sie haben natürlich eine unveränderte Version für Ihr Produkt verwendet.) Ich war ein wenig überrascht, als ich das hörte, also könnte es tatsächlich absolut falsch sein :).
TMN