Kann die GPL auf eine abgeleitete Arbeit zurückgeführt werden?

13

Es gibt drei Softwareprojekte: A, B und C.

A wird für jedermann veröffentlicht und unter der GPL lizenziert.

B erweitert A, wird ebenfalls veröffentlicht, hat jedoch keine Lizenzinformationen oder ist fälschlicherweise unter der LGPL lizenziert. Grundsätzlich verletzt es die Lizenz von A, indem es nicht GPL ist. Der Quellcode von B ist noch verfügbar.

C erweitert B. Kann C unter der GPL veröffentlicht werden? Die Motivation wäre "A ist GPL, jedes Derivat muss auch GPL sein, also ist B GPL und C kann auch GPL sein".

Andrej
quelle
5
Welcher Teil von B erstreckt sich über C? Wenn sie alle schon in A sind, sehe ich kein Problem. Wenn C Teile von B erweitert, die sich nicht in A befinden, werden die Dinge interessant.
Ich würde die Projekte A, B, C nennen und die Autoren von B.
Basile Starynkevitch
1
Außerdem glaube ich, dass Sie C zumindest unter GPL veröffentlichen könnten, da GPL LGPL-kompatibel ist. Aber IANAL
Basile Starynkevitch
2
@ Tichodroma, C erweitert Teile von B, aber B kann nicht ohne A existieren :)
Andrej
Hat der Autor von C auch (einen Teil von) A geschrieben? Wenn nicht, haben wir keine Ahnung, welche Lizenz die Autoren von A an B vergeben haben, also haben wir keine Ahnung, ob wir darauf aufbauen können?
Entkorken

Antworten:

23

Zunächst einmal verstößt B gegen die GPL von A. Aber das ist nicht genau Ihr Anliegen und für die hier gestellte Frage irrelevant (wer weiß, hat B möglicherweise eine LGPL-Lizenz von A für seinen Code, damit er unter der LGPL veröffentlicht werden kann? ).

Die Frage ist: "Können Sie eine GPL-Software basierend auf LGPL-Code erstellen?" Die Antwort darauf lautet einfach "Ja".

Die LGPL ist weniger einschränkend als die GPL (daher verstößt B gegen die Lizenz für A, sofern keine anderen Bestimmungen getroffen wurden), ermöglicht es jedoch auch, sie relativ einfach in ein GPL-Projekt zurückzubringen.

Aus der LGPL-Lizenz:

  1. Objektcode, der Material aus Bibliotheks-Header-Dateien enthält. Die Objektcodeform einer Anwendung kann Material aus einer Header-Datei enthalten, die Teil der Bibliothek ist. Sie können einen solchen Objektcode nach Ihren Wünschen übermitteln, vorausgesetzt, das eingebundene Material ist nicht auf numerische Parameter, Datenstrukturlayouts und -zugriffe oder kleine Makros, Inline-Funktionen und Vorlagen (zehn oder weniger Zeilen lang) beschränkt Führen Sie beide der folgenden Aktionen aus:

    a) Machen Sie mit jeder Kopie des Objektcodes deutlich darauf aufmerksam, dass die Bibliothek darin verwendet wird und dass die Bibliothek und ihre Verwendung unter diese Lizenz fallen.
    b) Fügen Sie dem Objektcode eine Kopie der GNU GPL und dieses Lizenzdokuments bei.

Es ist Teil der Lizenz. Sie können auf einfache Weise eine GPL-Software basierend auf LGPL-Code erstellen.

Es gibt einige Versionsunterschiede , auf die Sie achten müssen, um sicherzustellen, dass der Code unter der richtigen Version der GPL auf die richtige Weise lizenziert ist.


Falls keine Lizenzinformationen angezeigt werden, haben Sie nicht das Recht, diese zu verlängern. B hätte nicht vertrieben werden dürfen, aber seine Beiträge sind nicht unter einer Open-Source-Lizenz lizenziert. Dies war möglicherweise ein internes Projekt, das veröffentlicht wurde, oder eine andere Veranstaltung.

Es wird nicht unter einer Lizenz präsentiert, die mit der Verlängerung der GPL kompatibel ist. Stellen Sie sich die Situation vor, in der ein Unternehmen, das GPL-Software intern verwendet (akzeptabel - kein Verstoß), sein Repo irrtümlich öffentlich gemacht hat.

In diesem Fall ist es durchaus möglich, dass das Projekt C gegen die Urheberrechtsverletzung selbst verstößt (das von B hinzugefügte Material, das nicht unter der GPL lizenziert ist, da es eigentlich nicht hätte verteilt werden dürfen).

Einer anderen Quelle kann keine Lizenz auferlegt werden. Es stimmt entweder mit der Lizenz überein oder verstößt gegen diese. Wenn dies gegen die Lizenz verstößt, lauten die Angaben in der Lizenz folgendermaßen:

Sie dürfen keine abgedeckten Werke verbreiten oder modifizieren, es sei denn, dies ist ausdrücklich in dieser Lizenz vorgesehen. Jeder Versuch, es anderweitig zu verbreiten oder zu modifizieren, ist nichtig und beendet automatisch Ihre Rechte aus dieser Lizenz (einschließlich aller gemäß Abschnitt 11 Absatz 3 erteilten Patentlizenzen).

Ein Verstoß gegen die GPL bedeutet nicht, dass das Material unter der GPL steht, sondern dass es nicht verbreitet werden kann.


quelle
3
Gute Antwort. Haben Sie darüber nachgedacht, sich für den Open Source Stackexchange- Vorschlag zu engagieren?
Philipp
5
@Andrej Die einzige Person, die das Recht hat zu bestimmen, wie B lizenziert werden soll, sind die Personen, die B geschrieben haben. Wenn A GPL ist, haben sie die Option "nicht verteilen" oder "als GPL lizenzieren". Dass es versehentlich verteilt wurde, bedeutet nicht, dass es als GPL lizenziert ist.
6
Außerdem netter Fang an: "Sie wissen nicht, ob B eine andere Lizenz als die Autoren von A hat." Es ist möglich, dass B überhaupt nicht gegen das Urheberrecht von A verstößt, da Sie nicht wissen, dass B A unter der GPL verwendet (die Autoren von A können beliebig viele Lizenzen ausstellen und es beispielsweise unter der GPL anbieten) und eine Lizenz dafür verkaufen, mit der Sie sie in proprietärem Code verwenden können).
2.
1
In dem Fall, in dem der Autor von B A unter der GPL-Lizenz erhält, erzwingt die Tatsache der Verteilung keine GPL für B. Gibt es jedoch Lizenzen, die dies tun würden? So kann eine Person ihre Software veröffentlichen und sicher sein, dass jeder Zugriff auf alle künftig veröffentlichten Derivate erhält? Und jedem erlauben, eine Lizenz für Derivate zu erzwingen. (Ich kann eine neue Frage für diese beginnen :))
Andrej
2
Viertens ist eine EULA rechtlich viel, viel fragwürdiger als die GPL. Die GPL enthält keine Einschränkungen. Jede Einschränkung ergibt sich aus dem gesetzlichen Urheberrecht (die GPL verzichtet in einigen Fällen auf diese Einschränkungen). Deshalb funktioniert die GPL so gut - es gibt keine "GPL-Verletzung", es gibt nur Urheberrechtsverletzungen . Bei einem EULA müssen Sie die Menschen dazu bringen, sich darauf zu einigen, sich einzuschränken. Dies bedeutet, dass Sie sich im Bereich des Vertragsrechts befinden, das sehr trübe und mit möglichen Abwehrmechanismen gefüllt ist.
4.
4

Es gibt Urheberrechtsinhaber: Es gibt Urheberrechte für die von A erstellten Werke, es gibt Urheberrechte für die von B hinzugefügten Werke und es gibt Urheberrechte für alle von C vorgenommenen Änderungen. C muss prüfen, ob er berechtigt ist, die Software zu verwenden, für die A und B Urheberrechte besitzen.

A wurde unter der GPL lizensiert. Ich bin mir ziemlich sicher, dass die GPL Ihnen die Erlaubnis gibt, die Arbeit von A unter den Bedingungen der GPL zu verwenden, auch wenn Sie sie von B erhalten haben, der sie falsch lizenziert hat. Es kann praktische Probleme geben: Zum Beispiel müssen Sie in der Lage sein, den Quellcode bereitzustellen. Wenn Sie die Software ohne Quellcode erhalten haben, haben Sie keine Möglichkeit, sie unter den Bedingungen der GPL zu veröffentlichen.

B wurde unter einer anderen Lizenz lizenziert. B hätte unter der GPL lizensiert sein sollen , war es aber nicht. Wenn Ihnen die Lizenz von B mehr Rechte als die GPL einräumt, haben Sie tatsächlich keine dieser Rechte für den Code von A - B kann Ihnen keine zusätzlichen Rechte für den Code von A einräumen. Sie können den Code von A unter den Bedingungen der GPL verwenden, da A dies zugelassen hat, und den zusätzlichen Code von B unter der Lizenz von B.

Wenn B seinen Code unter einer strengeren Lizenz als GPL veröffentlicht, begeht B höchstwahrscheinlich eine Urheberrechtsverletzung. Sie können den Code von B nicht unter der GPL-Lizenz verwenden. Das ist oft verwirrt: Die GPL kann B nicht zwingen , etwas zu tun. Es gibt B nur die Wahl: Veröffentlichen Sie auf diese Weise, und es ist rechtlich in Ordnung, oder veröffentlichen Sie auf eine andere Weise, und es ist illegal. B hat das Recht, etwas Illegales zu tun und die Konsequenzen zu tragen (wegen Urheberrechtsverletzung angeklagt). Sie haben keine Rechte an Bs Code, den B Ihnen nicht gegeben hat.

gnasher729
quelle
3

Technisch ist es möglich, eine GPL-Bibliothek mit Code zu erweitern, der selbst nicht von der GPL-Lizenz abgedeckt wird. Der Haken dabei ist, dass Sie beim Verteilen der abgeleiteten Arbeit, die Sie erstellt haben, alle Anforderungen beachten müssen, die die GPL an Sie stellt.

In Ihrer Situation bedeutet dies, dass es möglich ist, Bibliothek A unter der GPL und den neuen Code in Bibliothek B unter der LGPL zu haben. Das kombinierte Werk (Bibliothek B) wird effektiv unter der GPL-Lizenz verteilt und kann als solches verteilt werden, da die LGPL-Lizenz mit der GPL-Lizenz kompatibel ist (Sie können den LGPL-Lizenzcode in einem GPL-Lizenzprojekt verwenden).
In dieser Situation ist es vollkommen in Ordnung, den neuen Code in Bibliothek C unter der GPL zu haben, mit der daraus resultierenden Arbeit auch unter der GPL.

Bart van Ingen Schenau
quelle
Dies funktioniert nur, weil LGPL-Teile von B mit der GPLed A unter der GPL verwendet werden können. Wenn der neue Code unter einer Lizenz stand, die mit der GPL in Konflikt steht (z. B. alle Rechte vorbehalten), können Sie nicht davon ausgehen, dass B als Ganzes effektiv unter der GPL verteilt wurde.
2.
1
@cpast: Sie haben Recht, ich habe vergessen zu erwähnen, dass die LGPL mit der GPL kompatibel ist. Wenn die Lizenzen nicht kompatibel wären, könnten Sie das Ergebnis nicht verbreiten.
Bart van Ingen Schenau