Dies ist kein eindeutiges Problem. Betrachten Sie zwei extreme Enden des Spektrums:
Ihre proprietäre Client-Software ist ein HTTP-Client und rendert HTML-Antworten. Es kann mit jedem HTTP-Server arbeiten. Der HTTP-Server, den Sie für Ihren Dienst verwenden, verwendet GPL-Komponenten.
Sie haben ein Programm, das GPL-lizenzierte Komponenten verwendet. Sie wählen einen beliebigen Punkt in der Operation dieses Programms und teilen das Programm in zwei Programme auf. Die beiden Programme kommunizieren über einen völlig überflüssigen Netzwerksprung. Sie setzen alle GPL-lizenzierten Komponenten in das erste Programm und die erste Lizenz unter der GPL ein und Sie lizenzieren das andere Programm unter einer GPL-inkompatiblen Lizenz.
Der erste Fall ist eindeutig in Ordnung. Der zweite Fall ist eindeutig nicht in Ordnung. Sie haben nicht viele Informationen zu Ihrem speziellen Fall gegeben, und selbst wenn Sie dies getan haben, könnte nur ein Gerichtsurteil endgültig entscheiden, ob Sie im Recht sind.
Die GPL-FAQ enthält folgende Informationen zu interoperablen, separat lizenzierten Programmen :
In vielen Fällen können Sie die mit der GPL abgedeckte Software jedoch zusammen mit Ihrem proprietären System vertreiben. Um dies zu gewährleisten, müssen Sie sicherstellen, dass die freien und unfreien Programme zu marktüblichen Bedingungen kommunizieren und nicht so kombiniert werden, dass sie effektiv zu einem einzigen Programm werden.
Der Unterschied zwischen dieser und der „Einbindung“ der GPL-Software ist zum Teil inhaltlich und zum Teil formell. Der wesentliche Teil ist: Wenn die beiden Programme so kombiniert werden, dass sie effektiv zu zwei Teilen eines Programms werden, können Sie sie nicht als zwei separate Programme behandeln. Die GPL muss also das Ganze abdecken.
Sie müssen entscheiden, ob Ihr Client als Server den Standard "zwei Teile desselben Programms" erfüllt (und daher jeweils unter der GPL lizenziert sein muss) oder nicht. In den GPL-FAQ finden Sie zu diesem Thema weitere Erklärungen zu einer anderen Frage :
Wo ist die Grenze zwischen zwei getrennten Programmen und einem Programm mit zwei Teilen? Dies ist eine rechtliche Frage, die letztendlich von den Richtern entschieden wird. Wir glauben, dass ein geeignetes Kriterium sowohl vom Kommunikationsmechanismus (exec, pipes, rpc, Funktionsaufrufe in einem gemeinsam genutzten Adressraum usw.) als auch von der Semantik der Kommunikation abhängt (welche Arten von Informationen ausgetauscht werden).
...
Im Gegensatz dazu sind Pipes, Sockets und Befehlszeilenargumente Kommunikationsmechanismen, die normalerweise zwischen zwei separaten Programmen verwendet werden. Wenn sie für die Kommunikation verwendet werden, sind die Module normalerweise separate Programme. Aber wenn die Semantik der Kommunikation intim genug ist und komplexe interne Datenstrukturen ausgetauscht werden, könnte dies auch eine Grundlage sein, um die beiden Teile als zu einem größeren Programm zusammengefasst zu betrachten .
Die Netzwerkkommunikation besteht also zweifellos den Test "Mechanismus der Kommunikation", es ist jedoch unklar, wo Ihr Client / Server-Paar in den Test "Semantik der Kommunikation" fällt.
Bei zwei über ein Netzwerk kommunizierenden Prozessen wird keine abgeleitete Arbeit erstellt, wie dies bei der Verknüpfung einer ausführbaren Datei mit einer Bibliothek der Fall ist. Daher gilt der GPL-Code auf dem Server nicht für den Client-Code.
Unter der GPL müssen Sie den geänderten Quellcode verteilen, wenn Sie Binärdateien verteilen. Da Sie die Server-Binärdateien nicht verteilen, müssen Sie den Server-Quellcode nicht verteilen.
Die GNU Affero GPL ist eine Lizenz, die der GPL ähnelt, mit zusätzlichen Worten, die genau diese Lücke schließen sollen, die Sie ausnutzen möchten (siehe: http://www.gnu.org/licenses/why-affero-gpl.html und http://en.wikipedia.org/wiki/Affero_General_Public_License#Examples_of_web_applications_under_GNU_AGPL ).
Haftungsausschluss: Ich bin ein Entwickler, kein Anwalt.
quelle
Ist die ordnungsgemäße Funktion der Client-Software von der Server-Software abhängig? Mit anderen Worten, funktioniert die Client-Software, ohne mit dem Server verbunden zu sein?
Wenn die Antwort darauf "Ja" lautet und der Server Ihrer Client-Software lediglich eine zusätzliche Funktion und keine Kernunterstützung bietet, sind Sie wahrscheinlich im klaren. Wenn die Serversoftware ein integraler Bestandteil der Client-Software ist und der Client-Software Kernfunktionen bereitstellt (dh die Client-Software funktioniert ohne den Server nicht), handelt es sich bei der Kombination um eine abgeleitete Arbeit, die unter die GPL fällt .
quelle