독점 라이브러리와 연결되는 GPL 코드는 먼저 생성 된 것이 무엇인지에 따라 다릅니 까? [닫은

StackOverflow https://stackoverflow.com/questions/1854843

문제

Microsoft는 Windows 및 MFC DLL 라이브러리 등을 만듭니다. 오픈 소스는 새로운 MFC 응용 프로그램을 작성하고 소스 코드를 GPL로 릴리스합니다. 이 앱은 Windows에서 실행하기 위해 MS DLL/라이브러리와 연결해야하지만, 이제 Microsoft의 GPL을 강제로 강요 할 권리가 있다고 주장 할 수는 없다고 생각합니다.

이것은 GPL 라이센스가 실제로 "생성 된"것에 달려 있다는 것을 의미합니까? 링크없이 게시 된 독점 라이브러리 (예 : Windows DLLS)와 GPL 코드와 나중에 GPL 프로그램이 연결되어 있다면 GPL 프로그램은 독점 코드가 있지만 독점 라이브러리를 GPL로 변환 할 수 없습니다. " "GPL 코드와 링크.

이 경우 NVIDIA 또는 RealNETWORKS가 다음을 수행 할 수 있습니까? 그들이 독점적 인 hddecoding 미디어 디코딩 엔진 라이브러리를 비공개로 유지하고 싶다고 가정 해 봅시다. 그러나 그들은 또한 하드웨어를 보여주기 위해 OpenSource GPLED 코드를 "활용"하고 싶다.

  1. 그들은 미디어 디코딩을 수행하고 일부 샘플 코드를 해제하기 위해 독점 라이브러리를 만듭니다.
  2. 누군가 (OpenSource Development)는 XBMC, MPLAYER 또는 VLC와 같은 GPLED 코드 용이 독점 라이브러리에 링크 된 "플러그인"을 만듭니다.
  3. 그들은 독점 라이브러리를 먼저 만들었으므로 (MS MS를 먼저 생성하는 것처럼) 독점 코드와 연결되는 GPL 프로그램은이를 GPL 코드로 덮지 않는다고 주장 할 수 있습니다.

이론적으로 NVIDIA 독점 미디어 디코더 라이브러리와 연결되는 GPL VLC.EXE 파일을 생성하는 OpenSource 개발자는 GPL 라이센스를 위반하고 있다고 주장 할 수 있습니다.

VLC, GIT, Cygwin 등과 같은 Windows에서 실행되는 모든 GPL 프로그램이 GPL 라이센스를 위반하고 있음을 의미합니다. 독점적 인 Microsoft Windows 라이브러리와 연결되어야하기 때문입니다.

사례 2 : 이것의 문제점 :

NVIDIA는 최신 그래픽 기능을 숨기는 새로운 하드웨어 추상화 라이브러리를 만들 수 있습니다. 또한이 라이브러리를 사용하여 FreeBSD 드라이버를 생성하고 BSD 드라이버의 소스 코드를 해제하지만 라이브러리 소스 코드는 아닙니다.

누군가 (Linux 개발자)는 Linux 용 Nvidia 그래픽 드라이버를 만들기 위해이 라이브러리와 연결되는 Linux 드라이버를 구현할 수 있습니다. 그러나 Nvidia는이 작업을 수행하지 않았기 때문에 라이브러리 소스를 "숨겨진"상태로 유지하면서 "Linux 지원"을 활성화 할 수 있습니다.

그것은 확실히 GPL의 정신을 위반합니다.

Windows/Mac/iPhone/PSP3에서 GPLED 소스로 생성 된 EXE를 실행하는 모든 EXE를 GPL의 정신을 위반한다는 것을 의미합니까?

도움이 되었습니까?

해결책

gnu gpl faq에서 :

무료 프로그램을 위해 플러그인을 작성할 때 GPL을 적용 할 수 있습니까?

프로그램이 Fork 및 Exec를 사용하여 플러그인을 호출하는 경우 플러그인은 별도의 프로그램이므로 기본 프로그램의 라이센스는 요구 사항이 없습니다. 따라서 플러그인에 GPL을 사용할 수 있으며 특별한 요구 사항이 없습니다.

프로그램이 플러그인을 동적으로 연결하고 서로 기능을 호출하고 데이터 구조를 공유하는 경우, 우리는 단일 프로그램을 형성한다고 생각합니다.이 프로그램은 메인 프로그램과 플러그인의 확장으로 취급되어야합니다. 이는 GPL로 덮인 플러그인을 무료 메인 프로그램과 조합하면 GPL을 위반할 수 있습니다. 그러나 플러그인 라이센스에 예외를 추가하여 해당 법적 문제를 해결하여 무료 메인 프로그램과 연결할 수있는 권한을 부여 할 수 있습니다.

질문도 참조하십시오 나는 무료가 아닌 라이브러리를 사용하는 무료 소프트웨어를 작성하고 있습니다..

그리고:

GPL 소프트웨어와 함께 GPL과 호환 라이브러리를 사용하는 경우 어떤 법적 문제가 발생합니까?

GPL의 두 버전은 일반적으로 시스템 라이브러리 예외라고하는 Copyleft에 대한 예외가 있습니다. 사용하려는 GPL과 호환 라이브러리가 시스템 라이브러리의 기준을 충족하는 경우 사용하기 위해 특별한 작업을 수행 할 필요가 없습니다. 전체 프로그램에 소스 코드를 배포 해야하는 요구 사항에는 해당 라이브러리가 포함 된 링크 된 실행 파일을 배포하더라도 해당 라이브러리가 포함되지 않습니다.

"시스템 라이브러리"로 간주되는 것에 대한 기준은 GPL의 다른 버전마다 다릅니다. GPLV3은 섹션 1의 "시스템 라이브러리"를 명시 적으로 정의하여 "해당 소스"의 정의에서 제외합니다. GPLV2는 섹션 3의 끝 근처에 다음을 말합니다.

그러나 특별한 예외로 소스 코드는 실행 가능한 실행이 실행되는 운영 체제의 주요 구성 요소 (컴파일러, 커널 등)와 함께 정규 분포 (소스 또는 이진 형식)를 포함 할 필요가 없습니다. 해당 구성 요소 자체가 실행 파일을 동반하지 않는 한.

...

다른 팁

GPL 제한이 힘을 입는 방식에 대한 근본적인 오해가 있습니다. 첫 번째 예는 "시스템 라이브러리 면제"로 덮여 있지만 그렇지 않은 경우에도 영향을 미치지 않을 것입니다.

GPL은 GPL'D 프로그램 또는 그 파생물을 배포하는 경우 GPL에 해당하는 용어 (프로그램 / 파생물을 배포 한 사람들에게)에 따라 프로그램 또는 파생 상품에 소스를 제공해야한다고 말합니다.

즉, Microsoft의 일부 코드와 연결된 GPL 프로그램을 배포하면 전체 왁스 전체에 소스를 제공하거나 저작권을 깨뜨리는 데 소스를받을 위험이 있음을 의미합니다. Microsoft가 제 3자인 한, 이것은 어떤 제한도하지 않습니다. 그들을 (물론이야!). Microsoft의 코드에 액세스 할 수 없으면 라이센스를 위반하지 않고 해당 파생 작업을 배포 할 수 없습니다.

Ianal이지만 창조의 질서는 중요하지 않습니다. 두 바이너리 연결이 GPL을 위반하는 경우 GPL은 먼저 생성 된 GPL에 의해 허용되지 않습니다.

사례 1은 Michael Burr가 인용 한대로 시스템 라이브러리 예외에 의해 해결됩니다. 시간 의존적이지 않음 - 시스템 라이브러리 예외가 아니라면 Windows 98 (GPLED 코드 앞에 작성된)에서 2003 년에 작성된 GPLED 코드를 실행하는 것은 GPL 위반의 많은 것입니다. Vista (GPLED 코드 후 작성된)에서 실행하는 것입니다.

사례 2가 GPL의 정신을 위반한다는 데 동의하지만, GPL이 용어를 사용하므로 NVIDIA 드라이버는 모듈로로드되기 때문에 Linux 커널과 "연결되지 않은"것이 아닙니다. 정적으로 연결된 비 프리 NVIDIA 바이너리와 함께 Linux 커널을 배포 할 수는 없지만 요즘 정적으로 연결된 커널을 배포하는 사람은 누구입니까?

당신은 그들과 연결하여 다른 프로그램 라이센스를 변경하지 않습니다. 라이센스가 비 연속 소스 프로그램에 링크 할 수없는 경우 라이센스를 변경하거나 해당 프로그램에 연결을 중지해야합니다. 다른 프로그램이 귀하와 연결된 경우 상황이 다릅니다. 이 경우 라이센스를 징계하거나 프로그램에 연결을 중지해야합니다.

간단히 말해서, 코드 또는 라이브러리 위에 GPL을 적용 할 수 없다는 것입니다. GPL과 호환됩니다 신청하지 않는 한 편집 된 결합 작업을 배포합니다. 링크 예외.

링크 예외는 비 프리 비트가 포함 된 컴파일 된 실행 파일을 배포하는 방법을 제공하지만 소스 형식으로 프로그램을 배포하는 데 특별한 권한이 필요하지 않습니다.

물론이 예외는 비없는 라이브러리에 따라 다르면 (특히 정적으로) 연결되는 프로그램을 배포 할 수 있습니다.

따라서 첫 번째 질문에 답하기 위해, 아니오 .. 이것은 '닭고기 또는 달걀'시나리오가 아닙니다. 내가 추천하는 것은 예외를 작성해야 할 가능성에 직면했을 때, Apache 또는 3 조항 BSD 라이센스와 같은 제한이 적은 라이센스를 선택하는 것이 좋습니다.

둘째, 아니요, 당신은 당신이 연결하는 일에 대한 라이센스를 변경할 목적으로 코드에 GPL을 적용 할 수는 없습니다. 다시 말하지만, 우리는 링크 예외로 돌아 왔는데, 이것은 당신의 책임입니다.

그만큼 spririt GPL 중 독점 소프트웨어와 같은 것이없는 세상에 살고 있습니다. RMS는 이것을 여러 차례 최종 목표로 언급했습니다. 남아있는 것 실용성 이는 무료 플랫폼에 무료 소프트웨어를 배포하려는 사람들을 위해 해결해야합니다.

이것이 커널에서와 같이 Linux가 GPL v2 만 남아있는 가장 큰 이유 중 하나입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top