Este não é um problema claro. Considere dois extremos do espectro:
Seu software cliente proprietário é um cliente HTTP e renderiza respostas HTML. Pode funcionar com qualquer servidor HTTP. O servidor HTTP que você usa para o seu serviço usa componentes GPL.
Você tem um programa que usa componentes licenciados pela GPL. Você escolhe um ponto arbitrário na operação do programa e divide o programa em dois programas. Os dois programas se comunicam através de um salto de rede totalmente supérfluo. Você coloca todos os componentes licenciados pela GPL no primeiro programa e a licença sob a GPL e o outro programa sob uma licença incompatível com a GPL.
O primeiro caso está claramente bem. O segundo caso claramente não está bem. Você não forneceu muitas informações sobre o seu caso em particular e, mesmo que o tenha feito, apenas uma decisão judicial poderá decidir definitivamente se você está certo.
O FAQ da GPL tem a dizer sobre programas interoperáveis e licenciados separadamente :
No entanto, em muitos casos, você pode distribuir o software coberto pela GPL junto ao seu sistema proprietário. Para fazer isso validamente, você deve se certificar de que os programas gratuitos e não-livres se comuniquem ao alcance de todos , que não sejam combinados de maneira a torná-los efetivamente um único programa.
A diferença entre isso e a "incorporação" do software coberto pela GPL é parcialmente uma questão de substância e parte de forma. A parte substantiva é a seguinte: se os dois programas forem combinados para que se tornem efetivamente duas partes de um programa, você não poderá tratá-los como dois programas separados. Então a GPL tem que cobrir a coisa toda.
Você deve decidir se acha que seu cliente é servidor e atende ao padrão de "duas partes do mesmo programa" (e, portanto, cada uma deve ser licenciada sob a GPL) ou não. O FAQ da GPL fornece mais explicações sobre esse tópico em outra pergunta :
Onde está a linha entre dois programas separados e um programa com duas partes? Esta é uma questão legal que, em última instância, os juízes decidirão. Acreditamos que um critério adequado depende tanto do mecanismo de comunicação (exec, pipes, rpc, chamadas de função em um espaço de endereço compartilhado, etc.) quanto da semântica da comunicação (que tipos de informações são trocadas).
...
Por outro lado, pipes, soquetes e argumentos da linha de comando são mecanismos de comunicação normalmente usados entre dois programas separados. Portanto, quando eles são usados para comunicação, os módulos normalmente são programas separados. Mas se a semântica da comunicação for íntima o suficiente, trocando estruturas de dados internas complexas, isso também poderia ser uma base para considerar as duas partes combinadas em um programa maior .
Portanto, a comunicação em rede certamente passa no teste "mecanismo de comunicação", mas não está claro onde seu par cliente / servidor se enquadra no teste "semântica da comunicação".