이것은 명백한 문제가 아닙니다. 스펙트럼의 두 극단을 고려하십시오.
독점 클라이언트 소프트웨어는 HTTP 클라이언트이며 HTML 응답을 렌더링합니다. 모든 HTTP 서버에서 작동 할 수 있습니다. 서비스에 사용하는 HTTP 서버는 GPL 구성 요소를 사용합니다.
GPL 라이센스 구성 요소를 사용하는 프로그램이 있습니다. 해당 프로그램 작동에서 임의의 지점을 선택하고 프로그램을 두 개의 프로그램으로 나눕니다. 두 프로그램은 완전히 불필요한 네트워크 홉을 통해 통신합니다. GPL 라이센스가있는 모든 구성 요소를 첫 번째 프로그램에 넣고 GPL에 따라 라이센스를 부여하고 다른 프로그램에 GPL 호환 라이센스에 따라 라이센스를 부여합니다.
첫 번째 경우는 분명히 괜찮습니다. 두 번째 경우는 분명하지 않습니다. 귀하는 귀하의 특정 사건에 대해 많은 정보를 제공하지 않았으며, 귀하가 그렇게하더라도 법원 판결 만이 귀하가 올바른지 여부를 결정적으로 결정할 수 있습니다.
GPL FAQ는 상호 운용 가능한 개별 라이센스 프로그램에 대해 다음과 같이 말합니다 .
그러나 대부분의 경우 독점 시스템과 함께 GPL 지원 소프트웨어를 배포 할 수 있습니다. 이 작업을 올바르게 수행하려면 자유 및 비 자유 프로그램이 무기 길이로 통신 하고 효과적으로 단일 프로그램으로 만드는 방식으로 결합되지 않았는지 확인해야합니다.
이것과 GPL로 덮인 소프트웨어의 "통합"의 차이점은 부분적으로 물질과 부분적인 형태의 문제입니다. 실질적인 부분은 다음과 같습니다 . 두 프로그램이 하나의 프로그램에서 효과적으로 두 부분이되도록 결합 된 경우 두 개의 개별 프로그램으로 취급 할 수 없습니다. 따라서 GPL은 모든 것을 다루어야합니다.
귀하의 클라이언트가 서버가 "동일한 프로그램의 두 부분"표준 (따라서 각각 GPL에 따라 라이센스를 부여 받아야 함)인지 여부를 결정해야합니다. GPL FAQ는 다른 질문에 대한이 주제에 대한 추가 설명을 제공합니다 .
두 개의 개별 프로그램과 두 부분으로 구성된 하나의 프로그램 사이의 경계는 어디에 있습니까? 이것은 법적인 문제이며 궁극적으로 판사가 결정할 것입니다. 적절한 기준 은 통신 메커니즘 (exec, 파이프, rpc, 공유 주소 공간 내의 함수 호출 등)과 통신 의 의미 (교환되는 정보의 종류 ) 에 따라 달라집니다 .
...
반대로 파이프, 소켓 및 명령 줄 인수는 일반적으로 두 개의 개별 프로그램간에 사용되는 통신 메커니즘입니다. 따라서 통신에 사용될 때 모듈은 일반적으로 별도의 프로그램입니다. 그러나 의사 소통의 의미론이 복잡한 내부 데이터 구조를 교환 할 정도로 친밀한 경우 두 부분을 더 큰 프로그램으로 결합한 것으로 간주하는 근거가 될 수도 있습니다 .
따라서 네트워크 통신은 확실히 "통신 메커니즘"테스트를 통과하지만 클라이언트 / 서버 쌍이 "통신 시맨틱 스"테스트에 속하는지는 확실하지 않습니다.