비 GPL 소프트웨어에서 GPL 소프트웨어 호출


30

작성중인 다른 프로그램에서 GPL하에 릴리스 된 프로그램을 (법적으로) 사용할 수 있습니까 (작성중인 프로그램의 경우) GPL을 존중하지 않아도됩니까?

예를 들어, 프로그램 (GPL하에있는)을 사용하는 GUI가 있는데, GUI에서 코드를 숨기거나 판매 할 수 있습니까?

답변:


30

당신은 할 수 사용하는 프로그램은 GPL에 의해 영향을받지 않고 자신의 프로그램에서 · 배타적 프로그램을,하지만 당신은 당신의 프로그램이 GPL의 조항이 적용되기없이 자신의 프로그램에 · 배타적 코드를 링크 할 수 없습니다.

기존 명령 행 프로그램을 중심으로 GUI 랩퍼를 작성한 질문에 제공된 예제에서 GUI는 GPL 프로그램을 GPL 프로그램에서 실행하는 별도의 프로그램 인 경우 GPL의 조건에 구속되지 않습니다. 별도의 프로세스를 수행하고 기존 인터페이스 (예 : 명령 행 또는 stdin / stdout)를 통해서만 통신합니다.

GPL FAQ의 관련 비트 :

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

모듈이 동일한 실행 파일에 포함되어 있으면 하나의 프로그램으로 확실히 결합됩니다. 모듈이 공유 주소 공간에서 서로 연결된 상태로 실행되도록 설계되어 있다면, 모듈을 하나의 프로그램으로 결합해야합니다.

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


GPL 적용 플러그인을로드하도록 설계된 무료 프로그램이 아닌 프로그램을 출시 할 수 있습니까?

프로그램이 플러그인을 호출하는 방법에 따라 다릅니다. 예를 들어, 프로그램이 단순한 포크와 exec 만 사용하여 플러그인을 호출하고 통신하는 경우, 플러그인은 별도의 프로그램이므로 플러그인 라이센스는 기본 프로그램에 대한 요구 사항을 요구하지 않습니다.

프로그램이 플러그인을 동적으로 링크하고 서로 함수 호출을 수행하고 데이터 구조를 공유하는 경우 기본 프로그램과 플러그인의 확장으로 처리되어야하는 단일 프로그램을 믿습니다. GPL로 보호되는 플러그인을 사용하려면 기본 프로그램을 GPL 또는 GPL 호환 자유 소프트웨어 라이센스로 배포해야하며 기본 프로그램을 배포 할 때 GPL 조건을 준수해야합니다. 플러그인.

프로그램이 플러그인을 동적으로 링크하지만 플러그인 간의 통신이 일부 옵션을 사용하여 플러그인의 '주요'기능을 호출하고 리턴 될 때까지 기다리는 경우로 제한됩니다.

GPL은 어떤 경우에도 기본 명령 줄 프로그램에 전적으로 적용됩니다. 사용자가 다른 소스에서이를 얻는 것과는 달리 GPL을 배포하는 경우 GPL 사본을 사용자에게 제공해야합니다. 명령 행 프로그램이 GPL하에 있고 (GUI 랩퍼가 아닌 경우에도) 요청시 명령 행 프로그램의 소스 코드를 사용할 수있게하십시오. GPL FAQ에서 다시 :

사람들이 GPL로 보호되는 소프트웨어를 사용자가 부분적으로 독점적이라고 알고있는 시스템의 "일부"라고 배포하는 경우 사용자는 GPL로 보호 된 소프트웨어에 대한 자신의 권리를 모를 수 있습니다. 그러나 그들이받은 것이 무료 프로그램과 함께 다른 프로그램이라는 것을 알면 그들의 권리는 분명해질 것입니다.

표준 면책 조항 : 저는 변호사가 아니며, 변호사 인 경우에도 귀하의 변호사가 아닙니다 . 결정적인 답변이 필요한 경우 관할 지역에서 실습 할 수있는 라이센스가있는 적절한 법률 전문가에게 문의하십시오.


1
연결에 대한 FSF의 위치는 소수입니다. (그리고, IMO, 그것은 아무 의미를 전혀하지 않습니다 자동화 된 프로세스가 새로운 작품을 만들 수 없습니다..)
데이비드 슈워츠

1
그러나 FSF는 GPL을 작성했습니다. 이것은 그들의 의견이 훨씬 더 관련성이 있습니다. "X라고하면 {...}"이 법정에서 일반적으로 받아 들여진다는 의미입니다. "X를 말할 때 {...}을 의미했습니다."
MSalters

"간단한 포크와 exec 만 사용하여 호출"한다는 것은 무엇을 의미합니까? 누군가 이것을 명확히 할 수 있습니까?
Krunal

그렇다면 파이프 래퍼를 작성하여 GPL 코드를 별도의 프로세스로 실행하여 GPL을 쉽게 우회 할 수 있습니까? 그것은 GPL을 무의미하고 시행하기가 불가능하게 만드는 것처럼 보입니다. 자체 라이브러리를 작성하고 GPL 라이브러리와 함께 링크하면 어떻게됩니까? 그러면 별도의 독립형 라이브러리도 GPL이됩니까? GPL 코드를 사용하는 동안 다른 사람의 라이브러리에 연결하면 어떻게됩니까? 그들의 도서관은 GPL이됩니까? 이러한 질문에 대답하지 않으면 GPL을 쉽게 우회 할 수있는 거대한 허점이 생깁니다. 예라고 대답하면 저작권법을 위반하는 것입니다.
Cerin

@Cerin-GPL은 배포 한 코드에만 적용됩니다. 따라서 GPL 및 비 GPL 호환 라이센스에 모두 연결되는 프로그램을 작성할 수 는 있지만 동일한 프로세스에서 GPL 및 비 GPL 호환 코드를 실행하므로 해당 프로그램을 타사에 배포 할 수 없습니다 . "재분배없이 사용"은 많은 사람들에게 GPL의 허점으로 여겨진다. 이는 웹 서비스 등이 사용자에게 소프트웨어를 실행하는 대신 소프트웨어를 실행하기 때문에 GPL을 완전히 회피 할 수 있다는 것을 의미하기 때문이다. GNU AGPL은 이 문제를 해결하려고 시도).
데이브 Sherohman에게

0

그것을 사용한다는 의미에 따라 다릅니다.

  • 코드로 컴파일하십시오.
  • 공유 라이브러리를 사용
  • 실행 파일을 실행

또한 다른 코드가 속한 GPL의 버전 / 변형에 정확하게 의존합니다.

  • GPL
  • LGPL
  • AGPL
  • 아마 다른 사람

법적 면책 조항 : 저는 변호사가 아닙니다.


-2

이는 프로그램이 GPL 프로그램을 얼마나 정확하게 "사용"하는지에 달려 있습니다. GPL FAQ는 다소 긴 설명 이 있지만 여전히 해석에 많은 관심을 가지고 있습니다.

독점 시스템에는 GPL 적용 소프트웨어를 통합 할 수 없습니다. (...) 그러나 많은 경우 GPL 지원 소프트웨어를 독점 시스템과 함께 배포 할 수 있습니다. 이 작업을 올바르게 수행하려면 자유 및 비 자유 프로그램이 무기 길이로 통신하고 단일 프로그램을 효과적으로 만들 수있는 방식으로 결합되지 않아야합니다. (...) 두 프로그램이 하나의 프로그램에서 효과적으로 두 부분이되도록 결합 된 경우 두 개의 개별 프로그램으로 취급 할 수 없습니다. 따라서 GPL은 모든 것을 다루어야합니다.컴파일러와 커널 또는 편집기와 쉘처럼 두 프로그램이 잘 분리되어 있으면 두 개의 개별 프로그램으로 취급 할 수 있지만 제대로 수행해야합니다. 문제는 단순히 형식 중 하나입니다. 수행중인 작업을 설명하는 방법입니다. 왜 우리는 이것에 관심이 있습니까? 우리는 사용자가 컬렉션에서 GPL로 덮인 소프트웨어의 무료 상태를 명확하게 이해하기를 원하기 때문입니다.

커맨드 라인 GPL 프로그램을 호출하기 위해 주로 존재하는 GUI의 예에서 두 가지가 분명히 단일 프로그램을 형성하므로 GPL에서 코드를 해제해야한다고 생각합니다.


아닙니다. 그들은 "단일 프로그램을 분명히 형성하지 않습니다". 기본 명령 줄 프로그램이 GUI 오버레이가없는 상태에서 작동 할 수있는 한 "단일 집계"로 결합되며 "효과적으로 단일 프로그램"이 아닙니다. 인용 한 텍스트의 예를 참고하십시오. 컴파일러는 커널 위에 놓여 있고 커널 없이는 실행되지 않지만 컴파일러 없이는 커널이 행복하게 실행됩니다.
Dave Sherohman

1
@Dave : GUI 오버레이가없는 상태에서 기본 명령 줄 프로그램이 계속 작동 할 수 있는지 여부는 명령 줄 프로그램의 라이센스 상태에 문제가있는 경우 관련이있을 수 있습니다. 그러나 GUI에 관한 질문은 GUI에 관한 것입니다. 명령 행 프로그램이므로 단일 프로그램을 구성한다는 것은 의심 할 여지가 없습니다.
Michael Borgwardt

인용 한 섹션의 예제 중 하나를 대체하고 그 결과를 살펴 보겠습니다. "...하지만 문제는 컴파일러에 관한 것이다. 커널 없이는 완전히 쓸모가 없기 때문에 단일 프로그램을 형성한다는 것은 의심 할 여지가 없다." 물론 인용 한 텍스트에 "두 개의 개별 프로그램으로 취급 할 수 있습니다"라는 문구가 명시되어 있지는 않습니다. 단순히 의존성 문제라면 Linux에서 닫힌 소프트웨어를 실행할 수 없었습니다. 그 소프트웨어는 (GPLed) 커널 없이는 "완전히 쓸모가 없습니다".
Dave Sherohman

@Dave : 물론 컴파일러와 모든 종류의 폐쇄 형 소프트웨어는 Linux 커널 없이는 쓸모가 없습니다. POSIX 및 / 또는 C 라이브러리 표준을 구현하고 자체적으로 중요한 기능을 제공하는 모든 것에서 실행할 수 있고 실행할 수 있기 때문입니다. . 하나의 특정 명령 행 프로그램을 구동하기 위해 존재하는 GUI 래퍼와는 완전히 다릅니다.
Michael Borgwardt

3
그래도 GUI 부분이 잘못되었습니다. 동일한 GUI 래퍼 다른 CLI 프로그램, 특히 원본의 이후 버전에서 작동합니다. 이는 기본 프로그램에 대한 원래 GPL 권리를 여전히 행사할 수 있다는 것을 의미하기 때문에 이와 관련이 있습니다. 10 % 빠르도록 다시 컴파일하면 CLI가 방해가되지 않습니다.
MSalters

-3

아니.

GPL 코드는 다른 GPL 코드에서만 사용할 수 있습니다.

Wikipedia의 GPL 기사 의 첫 줄 인용 :

GPL은 일반적으로 사용되는 최초의 카피 레프트 라이센스이므로 파생 된 저작물은 동일한 라이센스 조건에 따라서 만 배포 될 수 있습니다.

그 외에도 GPL은 몇 페이지 길이이며 여러 버전으로 존재합니다.


경고, 개인이 앞을 내다 본다!

나는 매우 제한적이고 바이러스와 같은 특성 때문에 GPL 라이센스를 개인적으로 많이 싫어합니다. 그들은 "무료"라고 부르지 만 실제로는 그 반대입니다. GPL 코드는 다른 GPL 코드 이외의 다른 용도로는 사용할 수 없습니다. 따라서 현재 프로젝트가 오픈 소스인지 여부에 관계없이 다른 프로젝트를 GPL로 강제하거나 전체 라이브러리를 다시 작성해야합니다. 예를 들어 freeBSD와 같은 거대한 오픈 소스 프로젝트가 있었는데, 라이센스가 호환되지 않기 때문에 수십만 줄의 리눅스 코드를 다시 작성해야했습니다. GPL과 호환되지 않습니다.

"원하는대로하십시오"라는 의미에서 진정한 "무료"라이센스를 원한다면 BSD 또는 MIT 라이센스를 권장합니다 ... 실제로 다른 라이센스는 대부분 괜찮습니다. 그것이 얼마나 제한적이며 다른 사람들이 어떻게 그것을 강요하는지 때문에 실제로 문제가되는 것은 단지 GPL입니다. 마지막으로 지나치게 복잡합니다.

아, 그렇습니다, 그것은 또한 편도 티켓입니다. GPL은 대부분의 라이센스에서 라이센스가 부여 된 코드 / 라이브러리를 사용할 수 있지만 이러한 라이브러리 / 코드는 차례로 GPL 코드를 사용할 수 없습니다.


"파생 작품"이라고 쓰여 있습니다. 여기에는 GPL 코드에 동적으로 연결되는 소프트웨어가 포함됩니까?
rightfold

@WTP : 확실히 그렇습니다. LGPL의 요점은이를 허용하는 다른 라이센스를 갖는 것입니다.
Michael Borgwardt

3
명령 줄 프로그램으로 둘러 싸인 GUI 셸 은 저작권 목적으로 정의 된 "파생 작업" 이 아닙니다 .
Dave Sherohman

1
@ Dave Sherohman-분명하지 않습니다. 이 질문에 대한 대답 은 "정말로 GPL 프로그램의 기능을 노출시키는 순수한 래퍼는 GPL이어야합니다."라고 말합니다. 그것은 그들이 의사 소통하는 방법의 기술적 측면 일뿐만 아니라 의도입니다. 예를 들어, 책을 번역하면 파생 된 작품이 만들어집니다. Kindle 형식으로 변환하면 파생 작업이됩니다. GUI를 추가하면 파생 작업이 생성된다는 판사가 판결되는 것을 볼 수있었습니다. 조심하십시오.
Scott Whitlock
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.