Angenommen, es gibt eine Bibliothek, die unter der GPL lizenziert ist. Ich möchte es als Closed-Source-Projekt verwenden. Ich mache folgendes:
- Erstellen Sie eine kleine Wrapper-Anwendung um diese GPL-Bibliothek, die Sockets abhört, Nachrichten analysiert und die GPL-Bibliothek aufruft. Dann werden die Ergebnisse zurückgegeben.
- Geben Sie die Quellen frei (um die GPL einzuhalten)
- Erstellen Sie einen Client für diesen Wrapper in meiner Hauptanwendung und geben Sie keine Quellen frei.
Ich weiß, dass dies im Vergleich zu statischen / dynamischen Verknüpfungen einen enormen Mehraufwand bedeutet, aber ich interessiere mich für theoretische Aspekte.
Antworten:
Rechtlich würde ich sagen, es wäre in Ordnung (aber ich bin kein Anwalt - konsultieren Sie einen Anwalt für Rechtsberatung).
Moralisch ist es ziemlich verwerflich. Wenn Ihnen die GPL nicht gefällt, ist es die "richtige" Lösung, keine GPL-Bibliothek zu verwenden.
Bearbeiten : Um zu verdeutlichen, ob dynamische Verknüpfungen zulässig sind oder nicht, wurde die LGPL speziell mit der Absicht erstellt, dynamische Verknüpfungen für Bibliotheken zuzulassen. Aus diesem Grund scheint mir klar zu sein, dass der Autor der Bibliothek durch die Wahl der GPL gegenüber der LGPL ausdrücklich das dynamische Verknüpfen untersagte. Eine Verwendung von technischen Mitteln zur Arbeit um eine rechtliche Einschränkung , dass der Autor der ausdrücklichen Absicht für seinen Code zum Ausdruck bringt, was verwerflich ist, meiner Meinung nach .
Ich persönlich bin kein Fan der GPL (ich bevorzuge eine freizügigere Lizenz wie MIT oder BSD). Ich bin jedoch ein großer Fan davon, die Arbeit anderer Entwickler zu respektieren, und wenn sie nicht möchten, dass Sie ihre Bibliothek mit Closed-Source-Software verknüpfen, dann ist dies ein Vorrecht.
quelle
IANAL, aber ich glaube, Sie sind in Ordnung. Der relevante Abschnitt der GPL3 befindet sich am Ende von Abschnitt 5:
Dies wird wahrscheinlich genau davon abhängen, was Ihr "Kunde" tut. Die Antwort von mouviciel ist wahrscheinlich eine gute Anleitung, wie man es sicher macht
Wenn Sie der Meinung sind, dass Ihre App eher eine Erweiterung der Bibliothek als ein damit aggregiertes Element ist, haben Sie wahrscheinlich Recht (Sie sollten dies an einem guten Ort wissen). In diesem Fall sollten Sie sich am besten an den Autor wenden und versuchen, eine zu erhalten andere Lizenz
Dies scheint meine Position zu untermauern, dass dies von der GPL ausdrücklich erlaubt ist, vorausgesetzt, es wird richtig gemacht.
quelle
Weitere Informationen finden Sie unter Ich möchte GPL-Software in mein proprietäres System integrieren. Kann ich das tun?
Die Frage ist, ob Ihre Wrapper-Anwendung von sich aus verwendet werden kann. Wenn Sie eine Befehlszeilenversion Ihres Programms mit GPL erstellt haben, können Sie die GUI unter einer anderen Lizenz freigeben. Beispielsweise könnten Sie eine IDE für gcc erstellen, die eine geschlossene Quelle war, oder ein visuelles Diff-Tool, das auf diff basiert.
Wenn Sie eine Bibliothek einpacken, die nur von Ihrem Programm verwendet wird und die ohne diese Bibliothek nicht verwendet werden kann, handelt es sich um eine abgeleitete Arbeit, die unter der GPL veröffentlicht werden muss.
quelle
IMO, rechtlich ist es in Ordnung. (IANAL) Um die moralische Seite des Problems zu verbessern, bezeichnen Sie es nicht als "FooBar-Wrapper, der FooBar legal für MyClosedApp verfügbar macht", sondern als Server. Machen Sie es zu einem netten kleinen Open-Source-Programm, das "FooBar über das Internet" ermöglicht. Stellen Sie es auf SourceForge oder widmen Sie ihm eine Website mit Projektseite, Anweisungen und anderem Material. Dann lass "MyClosedApp" einfach den "FooBar Server" benutzen.
quelle
Soweit ich weiß, können Sie Ihre Software als geschlossene Quelle belassen, solange sie ihre Arbeit ohne die GPL-Bibliothek ausführen kann. Betrachten Sie die GPL-Bibliothek als Plugin, dessen Fehlen Ihre Software nicht unbrauchbar macht.
quelle
Es gibt auch eine etwas umstrittene Option. In den meisten Gesetzgebungen sollte die dynamische Verknüpfung an "abgeleitete Arbeiten" gebunden sein. Die Logik dahinter ist, dass Sie beim dynamischen Verknüpfen nur Header-Dateien in Ihr Programm aufnehmen. In vielen Gesetzen werden Header-Dateien als API-Definition betrachtet und ausdrücklich vom Urheberrecht ausgeschlossen. Auf der anderen Seite erfolgt bei dynamischer Verknüpfung die tatsächliche Verknüpfung mit der GPL-Bibliothek auf dem System des Endbenutzers. Aber wie gesagt, es gibt viele Kontroversen, Stallman spricht sich entschieden dagegen aus.
quelle
Wäre es für Adam Brown legal, ein Programm zu schreiben, das eine GPL-Bibliothek verwendet und als "Server" fungiert, wenn er den gesamten Quellcode für alles, was damit zusammenhängt, freigibt, aber der einzige von ihm freigegebene Client-Code war ziemlich schwach, weil das alles ist er hatte clientseitig geschrieben? Ich sehe überhaupt keine Grundlage für die Annahme, dass dies nicht der Fall wäre.
Wenn Charles Dover den "Server" von Adam Brown fand und beschloss, ein Closed-Source-Programm zu schreiben, um mit ihm zu kommunizieren, würde die GPL seine Handlungen in irgendeiner Weise einschränken? Nicht, dass ich es sehen könnte, da seine einzige Verwendung von GPL-Software die Binärdateien sein würden, die er von Adam Brown erhalten hat. Wenn er Adams Binärdateien verteilen würde, müsste er auch einen Link zur Quelle einfügen, aber nichts anderes in der GPL würde irgendeinen von Charles 'Code beeinflussen.
In Bezug auf eine Person, die einen GPL-lizenzierten Server schreibt und diesen dann für seine eigenen Closed-Source-Zwecke verwendet, würde ich nicht glauben, dass es rechtliche Probleme geben sollte, wenn er beim Schreiben des Servers ernsthafte Anstrengungen unternahm, um dies zu erreichen nützlich für andere, die den mitgelieferten GPL-Code auf die gleiche Weise verwenden möchten. Insbesondere sollte die öffentlich veröffentlichte Dokumentation der Schnittstelle ausreichen, um es einem kompetenten Programmierer zu ermöglichen, entweder Code für einen Server zu schreiben, der vom Client-Programm genau wie das Original akzeptiert würde, und Client-Programme zu schreiben, die den Code verwenden würden Server in der gleichen Weise wie die Anwendung des Autors.
quelle