To nie jest jednoznaczny problem. Rozważ dwa skrajne krańce spektrum:
Twoje zastrzeżone oprogramowanie klienckie jest klientem HTTP i wyświetla odpowiedzi HTML. Może współpracować z dowolnym serwerem HTTP. Serwer HTTP, którego używasz dla swojej usługi, używa komponentów GPL.
Masz program, który korzysta z komponentów licencjonowanych przez GPL. Wybierasz dowolny punkt w działaniu tego programu i dzielisz go na dwa programy. Oba programy komunikują się przez całkowicie zbędny przeskok sieci. Umieszczasz wszystkie komponenty objęte licencją GPL w pierwszym programie i licencji na licencji GPL, a drugi program na licencji niezgodnej z GPL.
Pierwszy przypadek jest wyraźnie w porządku. Drugi przypadek wyraźnie nie jest w porządku. Nie podałeś wielu informacji na temat konkretnej sprawy, a nawet jeśli tak, tylko orzeczenie sądu może ostatecznie zdecydować, czy masz rację.
Często zadawane pytania na temat licencji GPL dotyczą współdziałających programów oddzielnie licencjonowanych :
Jednak w wielu przypadkach możesz rozpowszechniać oprogramowanie objęte GPL wraz z własnym systemem. Aby zrobić to poprawnie, musisz upewnić się, że wolne i niewolne programy komunikują się na odległość ramienia , że nie są one połączone w sposób, który uczyniłby z nich skutecznie jeden program.
Różnica między tym a „włączaniem” oprogramowania objętego GPL jest częściowo kwestią merytoryczną, a częściowo formą. Część merytoryczna jest następująca: jeśli dwa programy zostaną połączone tak, że staną się skutecznie dwiema częściami jednego programu, nie można traktować ich jako dwóch oddzielnych programów. Więc GPL musi obejmować całość.
Musisz zdecydować, czy uważasz, że Twój klient jest serwerem spełniającym standard „dwóch części tego samego programu” (a zatem każda z nich musi być licencjonowana na licencji GPL), czy nie. Często zadawane pytania na temat GPL zawierają dalsze wyjaśnienia na ten temat dotyczące innego pytania :
Gdzie przebiega granica między dwoma oddzielnymi programami i jednym programem z dwiema częściami? To pytanie prawne, które ostatecznie rozstrzygną sędziowie. Uważamy, że właściwe kryterium zależy zarówno od mechanizmu komunikacji (exec, potoki, rpc, wywołania funkcji we wspólnej przestrzeni adresowej itp.), Jak i semantyki komunikacji (jakie rodzaje informacji są zamieniane).
...
Natomiast potoki, gniazda i argumenty wiersza poleceń są mechanizmami komunikacji zwykle stosowanymi między dwoma oddzielnymi programami. Kiedy są używane do komunikacji, moduły zwykle są osobnymi programami. Ale jeśli semantyka komunikacji jest wystarczająco intymna, wymieniając złożone wewnętrzne struktury danych, to również może być podstawą do rozważenia tych dwóch części w połączeniu z większym programem .
Komunikacja sieciowa z pewnością przechodzi test „mechanizmu komunikacji”, ale nie jest jasne, gdzie twoja para klient / serwer przypada na test „semantyki komunikacji”.
Dwa procesy komunikujące się przez sieć nie pociągają za sobą tworzenia pracy pochodnej, jak to robi połączenie pliku wykonywalnego z biblioteką. Zatem kod GPL na serwerze nie dotyczy kodu klienta.
Zgodnie z GPL wymagane jest rozpowszechnianie zmodyfikowanego kodu źródłowego podczas dystrybucji plików binarnych. Ponieważ nie dystrybuujesz plików binarnych serwera, nie musisz dystrybuować kodu źródłowego serwera.
GNU Affero GPL jest licencją podobną do GPL z dodatkowym verbage zaprojektowanym w celu zamknięcia tej bardzo pętlowej dziury, z której chcesz skorzystać (patrz: http://www.gnu.org/licenses/why-affero-gpl.html i http://en.wikipedia.org/wiki/Affero_General_Public_License#Examples_of_web_applications_under_GNU_AGPL ).
Oświadczenie: Jestem programistą, a nie prawnikiem.
źródło
Czy oprogramowanie klienckie zależy od oprogramowania serwera do jego prawidłowego działania? Innymi słowy, czy oprogramowanie klienckie będzie działać bez połączenia z serwerem?
Jeśli odpowiedź na to pytanie brzmi „tak”, a serwer zapewnia dodatkową funkcję oprogramowania klienckiego, a nie podstawową obsługę, prawdopodobnie nie ma wątpliwości. Jeśli oprogramowanie serwera jest integralną częścią oprogramowania klienta i zapewnia podstawową funkcjonalność oprogramowania klienta (tj. Oprogramowanie klienta nie będzie działać bez serwera), wówczas kombinacja jest dziełem pochodnym objętym GPL.
źródło