클라이언트 소프트웨어 만 배포하는 경우 서버에서 GPL 라이센스 소프트웨어를 상업적으로 사용할 수 있습니까?


15

나는 규칙 이해 는 GPL의 내가 GPL 코드를 사용하여 소프트웨어를 배포 할 경우, 다음 코드가 있다는 것을 주장 해야GPL 라이센스 .

그러나이 경우 규칙이 무엇인지 궁금 합니다. 클라이언트 측 소프트웨어를 판매하고 배포 할 서비스를 만들고 있습니다.

클라이언트 측 소프트웨어에는 GPL 코드가 전혀 없습니다. 내 자신의 코드는 100 %입니다.

그러나 클라이언트 소프트웨어는 내부적으로 GPL 코드를 사용하는 서버에 연결됩니다.

나는 하지 내 서버 측 소프트웨어를 배포; 서버 측 소프트웨어는 내가 단독으로 제어하는 ​​전용 서버에서 작동하지만 클라이언트 측 소프트웨어는 해당 서버에 연결하지 않으면 작동하지 않습니다.

이것은 하나의 소프트웨어로 간주됩니까? 이 작업을 수행하려면 클라이언트 측 소스 코드를 GPL로 라이센스해야합니까? 아니면 소스 코드를 공개하지 않고 클라이언트 측 소프트웨어를 판매 할 수 있습니까?

답변:


12

이것은 명백한 문제가 아닙니다. 스펙트럼의 두 극단을 고려하십시오.

  1. 독점 클라이언트 소프트웨어는 HTTP 클라이언트이며 HTML 응답을 렌더링합니다. 모든 HTTP 서버에서 작동 할 수 있습니다. 서비스에 사용하는 HTTP 서버는 GPL 구성 요소를 사용합니다.

  2. GPL 라이센스 구성 요소를 사용하는 프로그램이 있습니다. 해당 프로그램 작동에서 임의의 지점을 선택하고 프로그램을 두 개의 프로그램으로 나눕니다. 두 프로그램은 완전히 불필요한 네트워크 홉을 통해 통신합니다. GPL 라이센스가있는 모든 구성 요소를 첫 번째 프로그램에 넣고 GPL에 따라 라이센스를 부여하고 다른 프로그램에 GPL 호환 라이센스에 따라 라이센스를 부여합니다.

첫 번째 경우는 분명히 괜찮습니다. 두 번째 경우는 분명하지 않습니다. 귀하는 귀하의 특정 사건에 대해 많은 정보를 제공하지 않았으며, 귀하가 그렇게하더라도 법원 판결 만이 귀하가 올바른지 여부를 결정적으로 결정할 수 있습니다.

GPL FAQ는 상호 운용 가능한 개별 라이센스 프로그램에 대해 다음과 같이 말합니다 .

그러나 대부분의 경우 독점 시스템과 함께 GPL 지원 소프트웨어를 배포 할 수 있습니다. 이 작업을 올바르게 수행하려면 자유 및 비 자유 프로그램이 무기 길이로 통신 하고 효과적으로 단일 프로그램으로 만드는 방식으로 결합되지 않았는지 확인해야합니다.

이것과 GPL로 덮인 소프트웨어의 "통합"의 차이점은 부분적으로 물질과 부분적인 형태의 문제입니다. 실질적인 부분은 다음과 같습니다 . 두 프로그램이 하나의 프로그램에서 효과적으로 두 부분이되도록 결합 된 경우 두 개의 개별 프로그램으로 취급 할 수 없습니다. 따라서 GPL은 모든 것을 다루어야합니다.

귀하의 클라이언트가 서버가 "동일한 프로그램의 두 부분"표준 (따라서 각각 GPL에 따라 라이센스를 부여 받아야 함)인지 여부를 결정해야합니다. GPL FAQ는 다른 질문에 대한이 주제에 대한 추가 설명을 제공합니다 .

두 개의 개별 프로그램과 두 부분으로 구성된 하나의 프로그램 사이의 경계는 어디에 있습니까? 이것은 법적인 문제이며 궁극적으로 판사가 결정할 것입니다. 적절한 기준 은 통신 메커니즘 (exec, 파이프, rpc, 공유 주소 공간 내의 함수 호출 등)과 통신의미 (교환되는 정보의 종류 ) 에 따라 달라집니다 .

...

반대로 파이프, 소켓 및 명령 줄 인수는 일반적으로 두 개의 개별 프로그램간에 사용되는 통신 메커니즘입니다. 따라서 통신에 사용될 때 모듈은 일반적으로 별도의 프로그램입니다. 그러나 의사 소통의 의미론이 복잡한 내부 데이터 구조를 교환 할 정도로 친밀한 경우 두 부분을 더 큰 프로그램으로 결합한 것으로 간주하는 근거가 될 수도 있습니다 .

따라서 네트워크 통신은 확실히 "통신 메커니즘"테스트를 통과하지만 클라이언트 / 서버 쌍이 "통신 시맨틱 스"테스트에 속하는지는 확실하지 않습니다.


프로그램 간의 인터페이스가 공개 된 정도에 따라 구별하는 것이 합리적일까요? 예를 들어 독점 체스 엔진과 통신하는 GPL 사용자 인터페이스 프로그램을 사용하는 체스 게임 시스템을 구현하고 자신의 체스 엔진을 작성하려는 다른 사람이 동일한 UI 프런트 엔드를 사용할 수있는 방법을 문서화하면 누군가가 대체 엔진을 작성하지 않으면 UI 프론트 엔드는 독점적 인 프로그램과 대화하는 것 외에 다른 목적을 가질 수는 없지만 GPL의 정신 (및 희망적으로 서신)을 만족시켜야한다고 생각합니다.
supercat

흠. 나는 GPL에 대해 일반적으로 궁금해서이 질문을 너무 모호하게했다. 그러나 나는 지금 차이점을 이해한다고 생각합니다. 서버에 클라이언트 소프트웨어를 실행해야하는 사용자 계정 정보가 있으면 GPL을 명백히 위반합니다. 내 서버가 두 버전의 클라이언트 소프트웨어가 서로 통신 할 수 있도록하는 패킷 릴레이 서버와 같은 것이라면 괜찮습니다. 이 가정에서 맞습니까?
Steven Jeffries

4

네트워크를 통해 통신하는 두 프로세스는 실행 파일을 라이브러리와 연결하는 방식으로 파생 된 작업을 생성하지 않습니다. 따라서 서버의 GPL 코드는 클라이언트 코드에 적용되지 않습니다.

GPL 하에서 바이너리를 배포 할 때 수정 된 소스 코드를 배포해야합니다. 서버 바이너리를 배포하지 않기 때문에 서버 소스 코드를 배포 할 필요는 없습니다.

GNU Affero GPL은 GPL과 유사한 라이센스로, 활용하고자하는이 루프 홀을 막기 위해 추가 동사를 사용합니다 ( http://www.gnu.org/licenses/why-affero-gpl.htmlhttp://en.wikipedia.org/wiki/Affero_General_Public_License#Examples_of_web_applications_under_GNU_AGPL ).

면책 조항 : 저는 변호사가 아닌 개발자입니다.


3
경고에 대한 참고 사항 : 클라이언트 가이 서버 소프트웨어 와 특별히 통신하도록 설계된 경우 FSF 서버 및 클라이언트 소프트웨어를 하나의 제품 으로 간주 할 수 있습니다. 참조 GPL의 질문에 여기
바트 반 Ingen Schenau에게

반면에, 제 3자가 서버 소프트웨어 나 라이센스를 보지 않고 서버와 통신하기 위해 클라이언트 소프트웨어를 작성하는 경우, 그 주장은 말도 안됩니다. 그리고 그것은 예를 들어 마이크로 소프트가 아웃룩 서버에 연결하는 소프트웨어를 작성하는 모든 사람을 고소 할 수 있음을 의미합니다.
gnasher729

2

클라이언트 소프트웨어가 제대로 작동하려면 서버 소프트웨어에 의존합니까? 즉, 클라이언트 소프트웨어가 서버에 연결되지 않은 채 작동합니까?

이에 대한 대답이 "예"이고 서버가 클라이언트 소프트웨어에 핵심 지원이 아닌 추가 기능 만 제공하는 경우에는 분명 할 것입니다. 서버 소프트웨어가 클라이언트 소프트웨어의 필수 부분이며 클라이언트 소프트웨어에 핵심 기능을 제공하는 경우 (즉, 클라이언트 소프트웨어가 서버없이 작동하지 않는 경우) 조합은 GPL에 포함 된 파생 된 작업 입니다.


나는주의를 기울이고 서버에서 GPL 코드를 사용 하지 않아야한다 .
Steven Jeffries

2
@StevenJeffries이 답변은 현재 관행과 GPL 요구 사항에 모두 부합합니다. 소프트웨어 나 파생 작품을 배포하지 않는 한 Linux, GCC 또는 WordPress와 같은 서버에서 GPL 소프트웨어를 자유롭게 사용할 수 있습니다. 소프트웨어를 사용한다고해서 파생 된 저작물이 만들어지지는 않습니다. GPL의 경우, 최소한 프로세스 수준 분리 (공유 메모리 없음, 공유 데이터 구조 없음)가 포함 된 경우 GPL이 정상으로 간주됩니다. 올바른 해결책과 참고 자료는 J. Lenthe의 답변을 참조하십시오.
amon

@ amon : 서버와 클라이언트간에 데이터 구조를 공유하지 않으면 맞습니다. 그래도 의심의 여지가 없습니다. 내가 그리는 구별 (클라이언트 소프트웨어는 서버 소프트웨어에 따라 올바르게 실행된다)은 임의적이지 않다. 이것은 FSF가 "유도 된 작업"이 아닌 것으로 간주하기위한 두 가지 필수 요구 사항 중 하나입니다. 다른 하나는 "팔 길이 통신"입니다. 내 말을 들지 마라. FSF 웹 사이트에서 직접 읽어보십시오.
Robert Harvey

@amon : 자세한 내용은 여기참조하십시오 .
Robert Harvey

(후속 후 읽기 로버트의 링크로 좋은) 또 다른 매우 관련 GPL FAQ 항목 @amon이 하나, 특히 마지막 세 단락입니다 : gnu.org/licenses/gpl-faq.html#MereAggregation
apsillers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.