GPLv3 신화#2: GPL 소프트웨어를 다른 소프트웨어와 혼합할 수 없습니다

  • Oct 13, 2023

GPL 코드와 다른 오픈 소스 라이선스가 적용되는 코드를 혼합할 수 없다는 것이 널리 알려진 믿음입니다. 제한 사항이 있지만 실제로는 GPLv2와 GPLv3 모두에서 가능합니다. 그러나 GPLv3 최종 초안의 새로운 언어는 이를 훨씬 더 명확하게 하며 FSF는 GPLv3이 Apache 라이센스 버전 2.0과 호환 가능하다고 명시적으로 밝혔습니다. 이 기사에서 우리는 유명한 오픈 소스 변호사 Lawrence Rosen, Jim Jagielski 및 Justin과 상담합니다. Apache Foundation의 Erenkrantz는 이것이 개발자에게 어떻게 작동하는지 정확히 알아냅니다.

이제 “최종 초안” GNU General Public License 버전 3(GPLv3)이 나왔습니다. 저는 지금이 라이센스에서 가장 잘 이해되지 않은 조항 중 일부를 살펴보는 좋은 시간이 될 것이라고 생각했습니다. ~ 안에 1 부, 우리는 GPL 소프트웨어 판매 개념을 탐구했습니다. 이 부분에서는 GPL(v3 및 v2) 소프트웨어와 다른 라이센스가 적용되는 소프트웨어를 혼합하는 방법을 살펴봅니다.

면책조항: 이 정보는 다음을 포함한 다양한 출처에서 수집되었습니다. GPLv3 웹사이트, 프로세스에 참여한 전문가와의 인터뷰, 다양한 업계 관찰자의 분석. 그러나 이는 법적 조언을 위한 것이 아닙니다.

오해 2: GPL 소프트웨어를 다른 소프트웨어와 혼합할 수 없습니다.

거짓. 오픈 소스 라이선스 전문가에 따르면 이는 특히 최신 GPLv3 초안의 문구에서 가능합니다.

첫째, 쉬운 경우입니다. GPL의 두 버전 모두 GPL 적용 소프트웨어와 GPL이 아닌 소프트웨어의 "집합"을 허용하는 조항이 있습니다. GPLv3 초안 4는 섹션 5에 다음과 같이 명시합니다. (GPLv2는 해당 라이센스의 섹션 2에도 비슷한 내용이 나와 있습니다.)

해당 저작물을 다른 개별적이고 독립적인 저작물과 함께 편집한 것. 이는 그 성격상 저장 또는 배포 공간 내에서 해당 저작물의 확장이 아닙니다. 편집물과 그에 따른 저작권이 개인의 저작물 이상으로 편집물 사용자의 접근이나 법적 권리를 제한하는 데 사용되지 않는 경우 "집합" 매체라고 합니다. 허용하다. 해당 저작물을 집합체에 포함한다고 해서 본 라이선스가 집합체의 다른 부분에 적용되는 것은 아닙니다.

예를 들어 Red Hat Enterprise Linux를 예로 들어 보겠습니다. RHEL에는 무료 프로그램과 비자유 프로그램이 모두 포함되어 있습니다. 여기에는 GPL, EPL, Apache, BSD 및 기타 가능한 모든 라이센스가 적용되는 프로그램이 포함되어 있습니다. 섹션 5의 마지막 단락에서는 단일 집계로 전달되더라도 괜찮다고 말합니다.

그의 "GPLv3에 대한 의견" 에세이, 오픈 소스 변호사 Lawrence Rosen은 이 조항이 GPL을 결합하는 데에도 사용될 수 있다고 믿습니다. 동일한 프로그램에서도 다른 라이센스의 코드와 함께 라이센스 코드 "모듈"을 사용하는 것은 약간의 문제라고 생각합니다. 뻗기. 내가 Larry에게 말했을 때 그는 이렇게 대답했습니다.

몸을 쭉 뻗으세요. "모듈"이라는 용어가 "컴파일된 개체 코드의 가장 작은 단위"라는 의미라면 아마도 전혀 저작권이 보호되지 않을 것입니다. 그러나 일반적인 의미에서 나는 그 단어가 더 크고 상업적으로나 계산적으로 중요한 것에 적용되는 것을 의미했습니다. 상당한 저작권을 포함하는 "데이터베이스 모듈" 또는 "파일 시스템 모듈"과 같은 저작권이 있는 저작물 표현적인 내용. 독립적으로 작성된 저작물 모듈을 공동저작물(대형 컴퓨터 시스템)에 사용하는 경우 두 라이센스 모두 이러한 방식으로 축어적 사본을 집계하는 것을 허용하므로 허용된 집합적 사본이 허용되는 것으로 간주합니다. 일하다. 그에 대한 파생물은 없습니다(아마도 결과적으로 더 큰 작업이 대체용으로 의도되지 않는 한). 원본에 대한 데이터베이스 또는 파일 시스템 모듈이지만 이는 파생 저작물과 관련된 실제 문제입니다. 분석).

나는 이 주장에 동의하지 않습니다. 왜냐하면 Apache 라이센스 코드뿐만 아니라 모든 라이센스가 적용되는 코드, 심지어 독점 비공개 소스 코드에서도 조합이 가능하기 때문입니다. 나는 RMS(Richard Stallman)도 동의하지 않을 것이라고 생각합니다. 이에 래리는 이렇게 답했다.

그는 그렇지 않습니다. 그러나 그는 GPLv3을 작성했고 이제 그의 라이센스에 명시된 내용에 따라 생활해야 합니다.

어쨌든 GPL을 사용하여 C 또는 Java 소스 파일과 소스 파일을 가져오는 등 보다 세부적인 조합을 위해서는 GPL이 아닌 라이선스에서 이를 더 큰 프로그램에 사용하면 Rosen의 해석에 의존할 필요가 없습니다. GPLv3(그리고 그 정도는 덜하지만 GPLv2)은 특정 라이센스에 대해 제한된 방식으로 이를 허용합니다. GPLv3은 이를 명확하게 하기 위해 "섹션 7 예외"를 추가합니다.

FSF는 명시적으로 언급됨 Apache 2.0은 GPLv3과 호환됩니다. 나는 아파치에게 확인해 줄 수 있는지 물었다. Apache Foundation의 Justin Erenkrantz는 "그렇습니다. 우리는 이에 대해 매우 기대하고 있습니다!"라고 썼습니다. 그는 섹션 7이 GPLv3과 Apache License v2 간의 호환성 주장의 핵심이라고 말합니다. 부분적으로는 다음과 같습니다(GPLv3 초안 4에서):

"추가 권한"은 하나 이상의 조건에서 예외를 적용하여 본 라이센스의 조건을 보완하는 조건입니다. 전체 프로그램에 적용되는 추가 권한은 해당 법률에 따라 유효한 한도 내에서 본 라이센스에 포함된 것처럼 처리됩니다. 추가 권한이 프로그램의 일부에만 적용되는 경우 해당 부분은 해당 프로그램에 따라 별도로 사용될 수 있습니다. 그러나 전체 프로그램은 추가 조항에 관계없이 본 라이센스의 적용을 받습니다. 권한.

결론은 이제 누구나 전반적으로 GPLv3에 따라 라이센스가 부여된 프로그램 내에서 Apache 코드를 사용할 수 있다는 것입니다. 그 반대는 사실이 아닙니다. Apache Harmony의 일부 코드를 Sun의 Java 7/OpenJDK에 추가하려는 가상의 예에 대해 논의했습니다(OpenJDK가 GPLv3을 채택하고 최종 초안과 거의 동일하다고 가정). 저스틴은 다음과 같이 씁니다.

가상의 공동 결합 작업은 GPLv3의 조건에 따라 제어됩니다. Apache의 코드는 그 자체로 라이센스가 다시 부여되지 않습니다(ALv2가 여전히 우리 코드에 적용되므로). FSF의 호환성에 대한 설명은 GPLv3이 다음과 같은 코드를 통합할 수 있다는 것입니다. ALv2에 따라 라이센스가 부여되었으며 여전히 더 큰 결합 저작물이 다음 조건에 따라 재배포됩니다. GPLv3.

짐 자기엘스키(Jim Jagielski)도 이에 동의합니다. "GPLv3은 Apache 라이센스보다 더 '제한적'이기 때문에 결합된 작업은 GPLv3에 따르게 될 것입니다."라고 그는 썼습니다. 분명히 말하자면, 나는 GPL 라이센스가 "유출"되어 GPL이 아닌 코드가 "우연히 공개"되는 일이 없도록 다시 한 번 요청했습니다. GPL. 저스틴은 이렇게 대답했습니다.

아니요, 맞습니다. ALv2 라이센스를 제거하고 자신의 라이센스를 훼손한다는 의미에서 라이센스를 다시 취득할 권리가 없습니다. 그러나 여기서의 법적 근거는 GPLv3(& Sec. 7). 이러한 방식으로 볼 때 GPLv3은 ALv2에 포함된 용어의 상위 집합입니다. 7개 조항), ALv2의 필수 조항도 준수하고 있습니다.

좋은 소식은 이것이 Apache뿐만 아니라 GPL과 "호환"되는 것으로 간주되는 모든 라이센스에서 작동한다는 것입니다. GPLv2의 경우 GNU 웹사이트 목록. 아마도 목록이 완성되면 GPLv3용으로 업데이트될 것입니다.

로렌스 로젠(Lawrence Rosen) 변호사가 자신의 에세이에서 언급했듯이 이는 복잡한 문제이며 사람마다 해석이 다를 수 있습니다. "법적 차이를 명확하게 이해하려면 변호사와 상담해야 합니다."라고 그는 썼습니다. 래리는 여전히 자신의 것을 선호한다 오픈 소프트웨어 라이선스 (OSLv3), 그리고 GPLv3이 올바른 방향으로 나아가는 단계이기는 하지만 '모두를 지배하는 하나의 라이센스'는 아니라고 썼습니다. 괜찮아요. 그는 이렇게 말합니다.

나는 GPLv3이 우리 중 많은 사람들이 사용할 수 있는 좋은 라이센스라고 믿습니다. 그러나 그것이 무료 오픈 소스 커뮤니티에 서비스를 제공하는 유일한 라이센스는 결코 아닐 것입니다. 소프트웨어 소유자는 자신의 철학적 및 비즈니스 목표를 충족할 수 있는 다른 좋은 라이센스를 선택할 수 있습니다. Apache, Eclipse, Mozilla 및 Perl 기반과 기타 많은 프로젝트는 자체 라이선스를 사용하여 무료 오픈 소스 소프트웨어에 대한 자체 비전을 계속해서 구축해 나갈 것입니다. GPLv3이 더 큰 커뮤니티에 참여하는 것을 포용한다는 점에서 나는 그것에 상당히 만족합니다. 물론 그것이 제가 추천할 라이선스는 아닐지라도 말입니다.

GPL 라이센스 호환성에 대해 질문이 있는 경우 GNU 및 Apache 사이트 모두에 법적 토론 포럼이 있습니다. 또는 여기에 의견을 게시하시면 제가 상담한 사람들에게 전달하여 추가 설명이 있는지 확인하겠습니다.