Ich habe ein Programm basierend auf einem LGPL-Projekt erstellt und darf den Quellcode nicht veröffentlichen

13

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.

Esuus
quelle
In diesem Beitrag sagt der Typ: "Zusätzlich kann die LGPL umgangen werden, indem sie einfach in eine neue DLL eingefügt und mithilfe von Delegaten oder Schnittstellen aus dem LGPL-Quellcode aufgerufen wird." - Kann jemand etwas genauer erläutern, wie ich das mit der ursprünglichen Java-App mache?
16
Dies ist keine legale Website , ich würde von niemandem hier einen Rechtsrat annehmen, außer dem Rat, sich wirklich juristisch beraten zu lassen.
5
Die LGPL befasst sich hauptsächlich mit der Verbreitung und Sie haben uns keine Informationen darüber gegeben, wie Sie diesen Code verbreiten möchten. Es ist unwahrscheinlich, dass die Frage genaue Antworten erhält, bis Sie dies tun. In jedem Fall werde ich darauf hinweisen, dass Sie keine Rechtsberatung aus dem Internet in Anspruch nehmen sollten .
Rein Henrichs
Ich glaube, dass ich die LGPL jetzt recht gut im Hinblick auf die Legalität verstehe. Also frage ich euch wirklich, wie es technisch funktioniert - obwohl ihr natürlich Recht habt -, im Zweifelsfall werde ich einen Anwalt konsultieren.
Esuus
Sie sagen nicht, welche Software Sie verwenden, aber einige Anbieter von GPL / LGPL (und anderer) Software bieten kommerzielle Lizenzen für Personen in Ihrer Situation an.
Jaydee

Antworten:

13

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

Lasse V. Karlsen
quelle
4
Beachten Sie, dass die FSF, die die GPL-Lizenzfamilie geschrieben hat, eine dynamische Verknüpfung in Betracht zieht, um eine abgeleitete Arbeit zu erstellen, die möglicherweise nicht funktioniert. (Andere Leute denken, dass die FSF falsch ist.) Ich glaube nicht, dass es eine rechtliche Bestimmung gibt, obwohl ich vielleicht falsch liege.
David Thornley
"Ja wirklich?" Ich bin davon überzeugt, dass Sie mehr darüber wissen als ich, David, aber Wikipedia sagt, dass Sie sogar dynamisch auf GPL-lizenzierte Bibliotheken verlinken können, ohne unter GPL veröffentlichen zu müssen: "Die GPL-Verlinkungsausnahme erlaubt beispielsweise Programme, die sich selbst nicht lizenzieren unter der GPL zu Bibliotheken zu verlinken, die unter der GPL lizenziert sind, ohne dabei den GPL-Anforderungen zu unterliegen. " Deshalb frage ich mich jetzt, was der Unterschied zwischen GPL und LGPL ist: Ich dachte, dass nur LGPL das zulässt.
Esuus
2
@ Dave: Das große Rechtsteam meines Arbeitgebers würde dem nicht zustimmen. Sie sind sehr aggressiv in Bezug auf den Schutz ihres geistigen Eigentums und es ist uns ausdrücklich untersagt, GPL-Code mit unserem eigenen Code zu verknüpfen, es sei denn, wir verbreiten den Code unter der GPL. Wo haben Sie diese Ausnahme gefunden? Ich sehe es nicht in GPLv2 oder v3. Es hört sich so an, als würden Sie auf eine Link-Ausnahme verweisen, die nicht Teil der Vanilla GPL ist. Urheberrechtsinhaber können jedoch nach eigenem Ermessen eine Link-Ausnahme zu ihrem GPL-Code hinzufügen. Es ist wirklich das Beste, sich an das Juristische Team zu wenden.
Nichtig
5
Ich würde Wikipedia nicht vertrauen. Soweit Sie wissen, wurde der Eintrag von einem 14-Jährigen verfasst, der am vergangenen Wochenende über die Lizenzierung gelesen hat. Holen Sie sich echte Ratschläge. Oder Sie können auf die Farm wetten und hoffen, dass Ihre Firma keine Probleme bekommt. Was auch immer funktioniert.
Lasse V. Karlsen
@ Dave Verknüpfung mit der GPL ist ein Problem. Meines Wissens war dies einer der Hauptgründe für FreeBSD, GCC zugunsten von Clang / LLVM fallen zu lassen .
Legolas
4

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.

Olaf
quelle
Nun, der LGPL-Code, den ich verwendet habe, ist eine Anwendung, keine Bibliothek. Die Frage ist also, ob ich ihn in eine Bibliothek verwandeln oder - wie von Lasse vorgeschlagen - meinen Code in eine Bibliothek umwandeln und den Rest LGPL / open
Esuus
1
@ Dave: LGPL hieß früher Library GPL. Ich habe wirklich keine Anwendungen gesehen, die diese Lizenz verwenden. Was hast du benutzt, wenn es kein Geheimnis ist?
Olaf
Die FSF nennt es jetzt die Lesser GPL. Die einzige Verwendung, die mir derzeit für Apps in den Sinn kommt, ist die Verknüpfung mit proprietären Bibliotheken und dergleichen.
David Thornley
Interessanterweise sind sowohl Mozilla als auch OpenOffice.org unter LGPL lizenziert.
Esuus
@ Dave: Dann bin ich bei @ David Thornley. Mozilla bietet die Möglichkeit, benutzerdefinierte Plug-Ins zu erstellen, bei denen es sich um geschlossenen Code handeln kann. Ich bin nicht so vertraut mit OpenOffice, aber ich wette, dass sie es tun. Bietet die von Ihnen verwendete LGPL-Anwendung eine Art Erweiterungsfunktionalität, z. B. das Hinzufügen von Plug-Ins oder die Verwendung einer Skriptsprache? Können Sie diesen Mechanismus für Ihren Code verwenden?
Olaf
2

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.

Per Johansson
quelle
2

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.

amadvance
quelle
1

IANAL, TINLA usw.

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.

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.

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?).

Richtig. Die Lizenz verpflichtet alle Empfänger der Software zum Zugriff auf den Quellcode.

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?

Dies kann eine abgeleitete Arbeit sein, und Sie müssen dennoch alle Build-Skripte, die das Programm reduzieren, an eine Bibliothek verteilen.

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.

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.

greyfade
quelle
1

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.

Himmel
quelle
0

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.

Sean McMillan
quelle
0

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.

Tamás Szelei
quelle