Ich dachte, LGPL sei eine zulässige Lizenz, genau wie MIT, BSD oder Apache. Aber heute habe ich gelesen, dass nur das Verknüpfen mit LGPL (Bibliotheken usw.) aus geschlossenem Quellcode erlaubt ist - ansonsten ist es Copyleft, also muss ich Code veröffentlichen, der auf einem LGPL-Programm basiert.
Ich habe für meinen Arbeitgeber ein Programm erstellt, das auf einem LGPL-Programm basiert, aber erhebliche Änderungen aufweist. Natürlich darf ich diesen modifizierten Quellcode nicht veröffentlichen. Gleichzeitig muss ich, wenn ich es verteile (oder?).
Ich frage mich also, ob es eine Problemumgehung gibt, damit ich diese geschlossene Quelle behalten kann (ich wünschte, ich könnte die Quelle veröffentlichen) - irgendwelche Vorschläge?
Meine Idee: Kann ich die meisten Funktionen der ursprünglichen LGPL-App in eine externe Bibliothek stellen, die ausführbare Kerndatei von Grund auf neu schreiben, aber für alle Funktionen, die ich nicht geändert habe, auf die Bibliothek zurückgreifen?
Derzeit befindet sich alles in einer .jar-Datei (Java / Swing). Wenn Sie denken, dass meine Idee rechtlich / technisch machbar ist, wie viel Aufwand wäre es, zu trennen, was ich geschrieben habe und was das Original ist? Ich bin nicht der Java-versierteste.
Antworten:
Zunächst einmal ist es keine gute Idee, hier einen Rechtsbeistand (wie im Internet) zu nehmen.
Zweitens, und das spreche nur ich, kein Anwalt, sollten Sie darüber nachdenken, bevor Sie ein LGPL-Programm aufnahmen und es für Ihren Arbeitgeber modifizierten.
Wenn die Lizenz etwas wäre, das Sie ignorieren könnten, nur weil Sie sie nicht mochten, hätte es nicht viel Sinn, wenn Sie jetzt eine haben würden?
Wenn Sie und / oder Ihr Arbeitgeber nicht bereit sind, den Quellcode mit Ihren Änderungen zu veröffentlichen, müssen Sie die Verwendung des LGPL-Codes beenden und ihn entfernen.
Wiederum spreche nur ich.
Lassen Sie sich von einem echten Anwalt beraten.
Als Antwort auf Ihre Frage zur Umgehung der Lizenz durch Hinzufügen des Codes zu einer DLL würde ich davon ausgehen, dass dies folgendermaßen funktioniert.
Was Sie tun würden, wäre, das ursprüngliche Programm so weit zu ändern, dass es Funktionen in externen Bibliotheken aufrufen kann. Sie müssten dies tun, ohne den Code speziell auf Ihre Anforderungen, Bibliotheken, Funktionsnamen usw. abzustimmen.
Diese Änderungen veröffentlichen Sie dann gemäß den Lizenzanforderungen.
Dann erstellen Sie Ihre eigene externe Bibliothek mit Ihrem eigenen proprietären Code und fordern das Programm auf, es zu laden und auszuführen, wobei Sie die von Ihnen vorgenommenen Änderungen verwenden.
Da ich nicht weiß, wie umfangreich die LGPL-Lizenz ist, kann ich nicht sagen, ob dies ausreicht, um zu vermeiden, dass Sie Ihre Bibliothek veröffentlichen müssen, obwohl ich dies vermute.
Aber noch einmal ...
Lassen Sie sich von einem Anwalt beraten
quelle
Die meisten unter LGPL oder einer vergleichbaren Lizenz veröffentlichten Open Source-Bibliotheken, von denen mindestens eine für Ihre Projekte geeignet ist, werden nach dem Open / Closed-Prinzip erstellt: http://en.wikipedia.org/wiki/Open/closed_principle .
Sie sollten in der Lage sein, Ihren Code so umzugestalten, dass Ihre Anwendung mit der LGPL-Bibliothek verknüpft ist und alle Erweiterungen in Ihrem geschlossenen Anwendungscode enthalten sind.
quelle
Gleicher Haftungsausschluss: IANAL.
Bisher hat noch niemand erwähnt, dass Sie den Quellcode auch dann an die LGPL-Teile verteilen oder zumindest angeben müssen, wo sie heruntergeladen werden können, wenn Sie den Code trennen.
Die einzige Möglichkeit, das zu umgehen, besteht darin, sie erst gar nicht zu verbreiten.
quelle
Ich glaube nicht, dass Sie einen Anwalt brauchen, um zu verstehen, dass der Versuch, eine Lizenz zu umgehen, keine gute Sache ist. Der gesunde Menschenverstand ist genug.
Stattdessen können Sie sich an den ursprünglichen Autor des LGPL-Programms wenden und nach einer anderen und proprietären Lizenz fragen / diese erwerben.
Die einzige andere Alternative besteht darin, die Quelle freizugeben oder sie vollständig neu zu schreiben.
quelle
IANAL, TINLA usw.
Ja, die LGPL verlangt, dass Sie entweder den Quellcode jedem zur Verfügung stellen, der eine Kopie des Werks erhält, oder dass Sie Ihr Werk in einer Form verteilen, in der die Empfänger der Software Ihre Version der LGPL durch eine neue ersetzen können Ausführung. In jedem Fall werden alle Änderungen an der LGPL Teil der Arbeit muss an alle Empfänger der Arbeiten zur Verfügung stehen.
Richtig. Die Lizenz verpflichtet alle Empfänger der Software zum Zugriff auf den Quellcode.
Dies kann eine abgeleitete Arbeit sein, und Sie müssen dennoch alle Build-Skripte, die das Programm reduzieren, an eine Bibliothek verteilen.
Java fügt der LGPL eine ganze Reihe neuer Probleme hinzu, da nicht klar ist, was "statische" und "dynamische" Verknüpfungen sind. Da die Ausnahmen der LGPL gegenüber der GPL auf diesem Konzept beruhen, entspricht die LGPL in den meisten Fällen der GPL. Sie müssen das Rechtsteam des Unternehmens konsultieren, um alle anstehenden Fragen zu beantworten.
Mein Rat ist, wenn jemand außerhalb Ihres Unternehmens Zugriff auf das Programm hat, es zu verschrotten und von vorne zu beginnen. Wenn Sie die Anforderungen der Lizenz nicht erfüllen können, dürfen Sie sie überhaupt nicht vertreiben.
Wenn das Programm nur innerhalb des Unternehmens verfügbar ist , müssen Sie die Quelle nur den Mitarbeitern des Unternehmens zur Verfügung stellen. Ich würde vorschlagen, es zu Ihrer vorhandenen Unternehmens-Quellcodeverwaltung hinzuzufügen. Dies wird den Anforderungen der LGPL genügen, solange niemand außerhalb des Unternehmens Zugriff hat.
quelle
Sie können ein Adaptermuster verwenden und den Originalcode nicht berühren. Mit LGPL können Sie auch Klassen erben und die Funktionalität der Klassen in Ihrem eigenen Projekt überschreiben.
quelle
Das ist mein Verständnis, IANAL.
Überprüfen Sie den Text der LGPL-Version, die den von Ihnen verwendeten Code abdeckt. Ich glaube, dass die Anforderung ist, dass jeder LGPL-Code austauschbar sein muss - normalerweise unter Verwendung einer gemeinsam genutzten Bibliothek / JAR-Datei. Wenn Sie den von Ihnen verwendeten LGPL-Code in eine Bibliothek aufteilen können, können Sie diesen unter der LGPL freigeben, während Sie Ihre Anwendung unter einer beliebigen Lizenz freigeben.
quelle
Sie können die Lizenz nicht umgehen. Selbst wenn Sie eine Lücke finden, ist dies immer noch unethisch (obwohl dies für manche Menschen eine andere Frage ist). Was Sie tun KÖNNEN, ist den Autor der Software zu kontaktieren, die Situation zu erklären und eine separate Lizenz anzufordern. Wenn er bereit ist, Ihnen eine Sonderlizenz zu einem bestimmten Preis zu erteilen, können Sie dies mit den Kosten für das Neuschreiben Ihrer Software vergleichen, ohne die betreffende Komponente zu verwenden. Und einfach mit dem günstigeren fahren.
quelle