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.