Lassen Sie uns ein hypothetisches Szenario untersuchen:
Firma X schreibt ein proprietäres Programm (A), das dynamisch mit einer proprietären Bibliothek (B) verknüpft wird. Unternehmen Y möchte eine Ersatzbibliothek (C) verwenden, die unter der GPL lizenziert ist, und schreibt daher eine Wrapperbibliothek (D), die dynamisch mit A und C verknüpft und die von A verwendeten API-Aufrufe in die von C verwendeten API-Aufrufe übersetzt.
Da D für C vorgesehen ist und die API-Aufrufe von C verwendet, ist es eine abgeleitete Arbeit von C und muss daher unter den Bedingungen der GPL * verteilt werden. Infolgedessen muss die kombinierte Arbeit von A und D auch unter den Bedingungen der GPL verteilt werden, was unmöglich ist, da Firma Y nicht den Quellcode für A besitzt. Das heißt, solange Firma Y D selbst verteilt , Es gibt kein Problem. Unabhängig von den Aktionen von Unternehmen Y verstößt Unternehmen X jedoch nicht gegen die GPL, indem es A verteilt, auch nicht ohne B. Die bloße Existenz von D bedeutet nicht, dass A plötzlich ein Derivat von C (bis D) ist, das unter dem lizenziert werden muss GPL auch.
Dies ist die Lücke: Es gibt nichts, was Unternehmen X daran hindert, eine eigene Version von D zu schreiben, diese getrennt von A zu verteilen und den Endbenutzern anzuweisen, D anstelle von B zu verwenden, wenn A ausgeführt wird. Es scheint, dass ein Unternehmen dazu in der Lage ist Entwerfen eines proprietären Programms zur Verwendung einer GPL-Bibliothek ohne Verletzung der GPL, sofern ein Wrapper-Modul verwendet wird, um das proprietäre Programm von der GPL-Bibliothek zu isolieren, und dieses Modul separat verteilt wird.
Bin ich richtig in meiner Argumentation? Ist das eine echte Lücke in der GPL?
* D ist ebenfalls ein abgeleitetes Werk von A, aber für die Zwecke dieses Szenarios hat Unternehmen X die Erstellung von D ausdrücklich genehmigt und die Lizenzierung unter der GPL zugelassen.
Antworten:
IANAL, aber hier ist meine Meinung dazu, was innerhalb der Grenzen der GPL erlaubt ist:
das kombinierte Werk "A - B" öffentlich zu verbreiten: gut, kann unter jeder proprietären Lizenz erfolgen
Erstellen Sie eine Wrapper-Bibliothek D für C von Y: Gut, dies bedeutet nicht, dass A unter GPL gestellt werden muss
Verwenden Sie das kombinierte Produkt "A - D - C" intern von Y: Auch in Ordnung, GPL erfordert kein Open Source A, solange die Kombination nicht an die Öffentlichkeit verteilt wird
Verteilen Sie das kombinierte Werk "A - D - C" in der Öffentlichkeit: Dies setzt voraus, dass A Open Source ist und unter die GPL gestellt wird (und es spielt keine Rolle, ob X oder Y diese Kombination verteilt haben; darüber hinaus, ob Y dies tun möchte Dazu benötigen sie natürlich eine Vertriebslizenz für A von X)
Die interessante Frage ist nun: Kann D & C separat als Open Source unter GPL vertrieben werden, A & B (oder nur A ohne B) kann unter einer proprietären Lizenz vertrieben werden, und der Endbenutzer ersetzt B durch D & C selbst?
Hier wird die letzte Änderung an "AB", die A von libs D & C abhängig macht, vom Endbenutzer vorgenommen - nach der Verteilung . Man könnte also argumentieren, dass die endgültige Änderung nur intern vom Endbenutzer vorgenommen wird. Und es scheint, dass dies tatsächlich möglich ist, ohne die GPL zu verletzen - und Sie erhalten eine funktionierende Kombination aus "AC & D", wobei A unter proprietärer Lizenz und C & D unter GPL steht.
Natürlich kann ein Anwalt oder ein Richter eine andere Meinung dazu haben. Um eine endgültige Antwort zu erhalten, müssen Sie warten, bis jemand es ausprobiert und ein zweiter ihn verklagt.
Ich denke, für die meisten Systeme wird es schwierig sein, eine solche Konstellation zu erstellen, ohne "A" von Anfang an so zu entwerfen, dass sie nahtlos mit B oder C zusammenarbeitet. In diesem Fall könnte der Verdacht auf A aufkommen wurde irgendwie von C. abgeleitet
EDIT: Nach einer Weile kam mir eine ähnliche Situation in den Sinn: das Schreiben und Verteilen von GPL-lizenzierten Plugins für Closed-Source-Anwendungen. Nehmen wir zum Beispiel Photoshop. Ich glaube nicht, dass jemand ernsthaft versuchen würde, Adobe für Open-Source-Photoshop durchzusetzen, nur weil es einige GPL-Plugins von Drittanbietern gibt. Hier wird nicht einmal eine "wrapper lib" benötigt, da es eine genau definierte Schnittstelle gibt. Würde sich die Situation jedoch ändern, wenn Photoshop einige seiner zentralen Funktionen von einem Plug-in eines GPL-Drittanbieters übernehmen würde? Ich denke, in einem solchen Fall kann es sehr schwierig werden, zu entscheiden, wo die Grenze gezogen werden soll. An diesem Punkt ist das Closed-Source-Produkt eine Arbeit, die auf der GPL-Bibliothek "basiert".
EDIT2: Es sind Doppellizenz-Bibliotheken verfügbar , z. B. mit einer GPL-Lizenz für nichtkommerzielle Zwecke und einer proprietären Lizenz für kommerzielle Zwecke wie diese. Ihre "Lücke" würde also bedeuten, ein auf einer solchen Bibliothek basierendes Produkt zu entwickeln (unter Verwendung der kommerziellen Version, damit die GPL nicht für Ihr Produkt gilt), Ihr Produkt als geschlossene Quelle ohne die Bibliothek an die Öffentlichkeit zu liefern und die Endbenutzer zuzulassen. Der Benutzer erhält und installiert die GPLed-Version selbst. In einem solchen Fall hat der Anbieter der Bibliothek eine gute Chance, Sie erfolgreich wegen Lizenzverletzung zu verklagen (wenn Sie nicht für seine Bibliothek bezahlen, natürlich). Lohnt sich der Aufwand? Wahrscheinlich nicht. Insbesondere in dem Beispiel, auf das ich verlinkt habe, müssten Sie auch die lib kaufen, da die Preisgestaltung nicht davon abhängt, wie oft Sie Ihr Produkt verkaufen, sondern nur davon, wie viele Entwickler die lib während der Entwicklung verwenden.
Aufgrund dieser rechtlichen Risiken würde ich, wenn ich Open-Source-Bibliotheken in einem Closed-Source-Produkt verwenden möchte, GPL-Bibliotheken nach Möglichkeit vermeiden und nicht versuchen, diese "Lücke" auszunutzen. LGPL oder GPL mit Verbindungsausnahme ist viel sicherer oder jede Art von nicht-viraler OS-Lizenz.
quelle
A
auch Werbung für dieA - C&D
Combo macht.A
undC&D
von welchen juristischen Personen sie stammen.Ein praktisches Beispiel sind proprietäre Grafiktreiber für Linux, die der Endbenutzer selbst installieren muss. Wichtig für den Schöpfer des proprietären Fahrers: Wenn der Endbenutzer das kombinierte Werk verteilt, entsteht eine rechtliche Verpflichtung für den Endbenutzer (die er möglicherweise nicht erfüllen kann), jedoch nicht für den Schöpfer des Fahrers.
Eine andere Antwort lautet: "Da das Programm von der Bibliothek abhängt, ist es immer noch eine abgeleitete Arbeit." - Wenn das Programm jedoch nicht funktioniert, weil die Bibliothek nicht vorhanden ist, ist es keine abgeleitete Arbeit.
Wenn Sie sich jedoch letztendlich auf "Lücken" verlassen, sollten Sie berücksichtigen, dass Ihr Ansatz möglicherweise nicht der richtige ist.
quelle
Linking definiert eine Ableitung durch die GPL. Für diese spezielle Situation wurde die LGPL entwickelt: Sie möchten die Bibliothek als GPL freigeben, die Verknüpfung jedoch als explizites Limit der angewendeten Lizenz definieren, oder Sie möchten eine Verknüpfung mit einem bestimmten GPL-Code herstellen, benötigen jedoch Ihren eigenen Code Arbeit unter einer Nicht-GPL-Lizenz selbst veröffentlicht werden.
In dem Fall, in dem der Endbenutzer die Verknüpfung durchführen wird (eigenen Code aus Nicht-GPL-Quellen erstellen, der möglicherweise mit einer GPL-Bibliothek verknüpft ist), hat der Endbenutzer keine effektive GPL-Version des Endprodukts erstellt. Es ist ihm nicht gestattet, die Lizenz des Nicht-GPL-Teils des Projekts zu ändern, da er nicht der Eigentümer des Projekts ist. Dies schließt im Allgemeinen eine Verbreitung durch den Endverbraucher in irgendeiner Form aus, würde jedoch die Verwendung nicht verbieten.
Das heißt, wenn ein Projekt erfordert, dass es aus dem Quellcode erstellt und nur auf diese Weise verteilt wird, spielt es keine Rolle, unter welcher Lizenz sich die verknüpfte Bibliothek befindet, da dies vollständig außerhalb der Hände der Nicht-GPL-Entwickler liegt. Wie können Sie also wissen, dass Ihre reine Quelldistribution auf gcc gegen glibc VS basiert, das auf einem IBM-Compiler gegen dessen libc erstellt wurde, sofern Sie dies nicht unter Ihren eigenen Lizenzbedingungen angeben? Dies führt schnell zu fairem Gebrauch und Verboten nicht durchsetzbarer rechtlicher Bedingungen (nicht, dass Fantasie in letzter Zeit schon einige Male nicht mehr gesetzlich verankert wurde).
quelle
Ich bin kein Anwalt, aber soweit ich das beurteilen kann, stimmt das nicht, da das Programm von der Bibliothek abhängt - es ist immer noch eine Ableitung. Genauso wie ein Sequal eine Ableitungsarbeit ist. Zumindest basiert es auf den in der Bibliothek definierten APIs.
quelle