Kann ich aus einer Closed-Source-Anwendung eine Verknüpfung zu einer GPL-Bibliothek herstellen?

34

Okay, bevor alle über doppelte Fragen schreien, habe ich hier bereits einige Fragen wie diese gesehen. Aber niemand beantwortet die Frage.

Muss ich meinen Quellcode freigeben, wenn ich eine Verknüpfung zu einer GPL-ed-Bibliothek herstelle, ohne diese Bibliothek zu ändern?

Nach dieser Frage lautet die Antwort ja!

Aber diese Antwort ist für mich nicht zufriedenstellend. Die Antwort besagt im Grunde, dass ich keinen GPL-Code verwenden kann, ohne meinen Code als Open Source zu definieren.

Aber wenn das Vorherige zutrifft, würde dies bedeuten, dass keine Person oder Organisation jemals proprietäre Software unter Linux veröffentlichen könnte. Welches muss falsch sein. Einfach, weil eine Anwendung nur dann nützlich sein kann, wenn sie Dateien öffnet, in die Konsole schreibt und TCP-Verbindungen herstellt. Die Anwendung muss mit libcder GPL-Version verknüpft sein .

Meine Frage lautet also: Wenn die GPL wie in allen vorherigen Antworten auf der Website behauptet, dass ein Programm, das mit einem anderen GPL-Programm verknüpft ist, selbst eine GPL sein muss, wie ist es möglich, eine proprietäre Anwendung zu erstellen / freizugeben / zu verkaufen überhaupt was läuft unter Linux? Da, wie ich oben beschrieben habe, diese Anwendung GPL-Code gefallen muss, nur um unter Linux ausgeführt werden zu können.

Ein praktischeres Beispiel: Wenn ich auf eine gemeinsam genutzte Bibliothek verweise, die in einer Nicht-GPL-Anwendung GPL-ed ist, würde dies die Nicht-GPL-Anwendung zwingen, GPL-ed zu werden? Wenn ich eine GPL-Bibliothek verwende, ohne sie zu ändern, und diese Bibliothek dann als .sooder verteile, muss .dllmeine Anwendung dann Open Source sein?

John-Charles
quelle
9
Sie stellen dieselbe Frage in der Hoffnung auf eine andere Antwort. Sie können GPL nicht in nicht GPL-kompatibler Software verwenden. Ganz einfach.
Andrew T Finnell
1
Tut er das wirklich? Blimey. Die Antwort ist einfach; Warum setzen Sie sich nicht mit den Autoren des GPL-Programms in Verbindung und fragen, ob sie etwas dagegen haben? Wenn sie sagen, dass es in Ordnung ist, ist das großartig! Wenn sie Einwände erheben, wird der Versuch, sie mit rechtlichen Details zu bewaffnen, Sie sehr, sehr unbeliebt machen, egal wie "richtig" Sie sich fühlen.
James
3
@James: Wenn sie GPL gewählt haben, ist es ziemlich starke Aussage sie tun Geist. Menschen, denen es nichts ausmacht, entscheiden sich in erster Linie für MIT, BSD oder LGPL. Es ist sehr selten, eine Bibliothek unter voller GPL zu sehen. Wenn Sie dies tun, können Sie fast sicher sein, dass es beabsichtigt war.
Jan Hudec
@Jan Hängt vielleicht von der App und der von John-Charles beabsichtigten Verwendung ab. Aber ich finde es merkwürdig, wie JC das angeht. Versucht jc nur, die Antwort zu bekommen, die er will? Es gibt viele Fragen auf dieser Seite, die mit einem "Sprechen Sie einfach mit ihnen, um laut zu schreien" gelöst werden könnten. :-)
James
@ JanHudec: Ich stimme zu. Ich habe mich dafür ausgesprochen, einige IP-Adressen unseres Unternehmens in Form einer GPL-Bibliothek freizugeben, da dies für unsere Konkurrenten im Wesentlichen nutzlos und für unsere Community immer noch sehr nützlich wäre.
MSalters

Antworten:

33

Wenn Sie eine Verknüpfung zu einer GPL-Bibliothek herstellen, haben Sie ein abgeleitetes Werk erstellt, und Ihr Code muss GPL sein. Dies unterscheidet sich von L GPL-Code, der speziell die dynamische Verknüpfung von unterschiedlich lizenziertem Code ermöglicht. Die Systembibliotheken einschließlich libc sind alle LGPL.

Es gibt auch eine spezielle Ausnahme für die Linux-Kernel-Header und libgcc (die vom Compiler implizit aufgerufene Bibliothek).

Martin Beckett
quelle
19
Keine libc ist LGPL - Sie dürfen mit LGPL-Programmen verlinken. Es gibt auch eine generelle Ausnahme für Kernel- / Systemaufrufe, so dass es kein Argument darüber gibt, was ein System gegen einen Bibliotheksaufruf ist
Martin Beckett
6
LGPL ist keine neue Lizenz, sie wurde erstmals 1991 veröffentlicht. Libc war schon immer LGPL.
FigBug
4
@ john-charles - deshalb wurde die LGPL bereits 1991 mit gplv2 erfunden. AsLinux (und andere FOSS-Kernel) wurden populär - und deswegen hieß es ursprünglich Library-GPL - es bestand die Befürchtung, dass jeder Compiler-Anbieter eine Fülle von libc-Dateien verwenden würde, wenn kommerzielle Apps gcc nicht verwenden könnten.
Martin Beckett
1
@MartinBeckett Dies ist die FSF-Meinung (Sie können keinen Link zu GPLd-Code erstellen, wenn Sie Ihre nicht unter der GPL lizenzieren), aber dies ist nicht unbestritten. Es gab keine größeren Rechtsstreitigkeiten (wenn ich mich irre, bitte korrigieren Sie mich), um die FSF-Meinung zur Verlinkung zu bestätigen.
K.Steff
2
@ john-charles - ja, alle gängigen Gesetze werden vor Gericht geprüft, aber es gibt eine Menge Rechtsprechung zum Urheberrecht. Wenn ich behaupte, dass meine unveränderte Kopie einer Batman-DVD kein abgeleitetes Werk ist und ich so viele verkaufen kann, wie ich möchte, ist es unwahrscheinlich, dass die MPAA damit einverstanden ist! Das GNU-Copyleft setzt das Urheberrecht ein, um eine Lizenzvereinbarung auf sehr clevere Weise durchzusetzen - einer der Gründe, warum es nie vor Gericht geprüft wurde, ist, dass sich immer alle geeinigt haben
Martin Beckett
7

Im Allgemeinen haben Sie insofern Recht, als Sie keine Verbindung zu einer GPL-Bibliothek herstellen, Ihren Code nicht verteilen und Ihren Code dann nicht als GPL freigeben können.

Es gibt jedoch die Systembibliotheksausnahme, mit der sich Leute mit Linux- Bibliotheken verbinden und ihr Produkt dennoch unter Nicht-GPL-Lizenzen veröffentlichen.

Eine weitere Ausnahme ist, wenn die beiden Lizenzen miteinander kompatibel sind. Schauen Sie sich die FSF- kompatible Lizenzseite anWeitere .

Schließlich können die Autoren der GPL'd-Bibliothek bestimmte Ausnahmen erstellen, z. B. für nichtkommerzielle oder Hobbyzwecke.

Leider gibt es zu viele Möglichkeiten, um eine feste Regel zu haben. Ohne weitere Einzelheiten in Ihrer Frage lautet Ihre Antwort "wahrscheinlich nicht, aber vielleicht können Sie".


quelle
1
Der SLE beantwortet auch die Frage, ob ein Programm eine abgeleitete Arbeit des Compilers ist, da es einen vom Compiler generierten Parser enthält
Martin Beckett,
3
Nein, SLE ermöglicht die Entwicklung von GPL-Code mithilfe einer nicht freien Toolchain und Standard-Laufzeitumgebung, z. B. Visual Studio. Die Verknüpfung von nicht freien Anwendungen mit der GPL-Bibliothek ist jedoch nicht möglich.
Jan Hudec
1
Die Ausgabe eines GPL-Programms wird von der GPL nicht abgedeckt. Siehe gnu.org/licenses/gpl-faq.html#GPLOutput
Maximus Minimus
-1

Die kurze Antwort lautet: Niemand weiß es wirklich. (In dieser Diskussion geht es um GPL, nicht um LGPL.)

Die GPL hat eine vage Sprache über "Derivative Works", die verschiedene Leute auf unterschiedliche Weise interpretieren. Einigkeit scheint zu bestehen, dass statische Verknüpfungen nicht funktionieren, Aufrufe über System-Interrupts (z. B. zum Linux-Kernel) jedoch nicht. Letzteres beruht hauptsächlich auf der Tatsache, dass Unternehmen wie Oracle unter Linux ausgeliefert und nicht verklagt wurden - dies ist in der Lizenz nicht klar.

Dynamische Verknüpfung ist unklar, wahrscheinlich 70/30 sagen, es verstößt. Das Aufrufen eines Programms mit Pipes oder Remoteprozeduraufrufen, wahrscheinlich 30/70, verstößt nicht, obwohl dies im Wesentlichen dasselbe ist. Das Aufrufen über COM oder die Verwendung eines Java Jar ist völlig unklar.

Wenn es Zweifel gibt und Sie keine Anwälte mögen, sollten Sie sich grundsätzlich von der GPL fernhalten.

Tuntable
quelle
1
Die GPL ist nicht wirklich so vage, und es gibt eine gut diskutierte Rechtsprechung zu der Frage, was eine abgeleitete Arbeit ist und was nicht. Der Unterschied zwischen der Linux-Syscall-Schnittstelle und libc besteht darin, dass die erstere erforderlich ist, um funktionierende Software (die als Ausnahme vom Urheberrecht bestätigt wurde) zu erstellen, während die letztere nicht funktioniert (Sie könnten Ihre eigene implementieren). Es hat nichts damit zu tun, wie die Operationen aufgerufen werden, was keine rechtliche Relevanz hat.
Jules
"70/30 sagen, es verstößt" und "30/70 verstößt nicht" - ist beabsichtigt, dass das Verhältnis von Verstoß / Verstoß nicht dasselbe ist? "Auch wenn dies im Wesentlichen dasselbe ist" legt nahe, dass es anders sein sollte.
Mateusz Konieczny