비공개 소스 애플리케이션에서 GPL 라이브러리에 링크 할 수 있습니까?


34

모든 사람들이 중복 질문에 대해 외치기 전에, 여기 이미 몇 가지 질문이 있습니다. 그러나 아무도 그 질문에 대답하지 않습니다.

라이브러리를 수정하지 않고 GPL 라이브러리에 링크하면 소스 코드를 해제해야합니까?

이 질문 에 따르면 대답은 '그렇다'입니다.

그러나이 대답은 나에게 만족스럽지 않습니다. 대답은 기본적으로 코드를 오픈 소스로 만들지 않으면 GPL 코드를 사용할 수 없다고 말합니다.

그러나 이전의 내용이 사실이라면 어떤 개인이나 조직도 Linux에서 독점 소프트웨어를 출시 할 수 없음을 나타냅니다. 어느 것이 잘못 되었습니까? 모든 응용 프로그램이 유용한 작업을 수행하고 파일을 열고 콘솔에 쓰고 TCP 연결을 만들려면 응용 프로그램 libc이 GPL에 연결되어 있어야합니다 .

그래서 내 질문은 이것입니다 : GPL이 사이트의 모든 이전 답변에서 말했듯이 다른 GPL 프로그램에 연결되는 프로그램이 GPL 자체 여야한다고 명시하면 어떻게 독점 응용 프로그램을 작성 / 릴리스 / 판매 할 수 있습니까 리눅스에서 실행되는 것은? 위에서 설명한 것처럼 Linux에서 실행하려면 해당 응용 프로그램을 GPL 코드로 선호해야합니다.

좀 더 실용적인 예는 GPL이 아닌 응용 프로그램에서 GPL이있는 공유 라이브러리에 연결한다고 말하면 GPL이 아닌 응용 프로그램이 GPL이되어야합니다. 보다 구체적으로 GPL 라이브러리를 수정하지 않고 사용하고 해당 라이브러리를 .so또는 로 배포하면 .dll내 응용 프로그램이 오픈 소스가 필요합니까?


9
당신은 다른 대답의 희망으로 같은 질문을 계속합니다. 비 GPL 호환 소프트웨어에서는 GPL을 사용할 수 없습니다. 간단하다.
Andrew T Finnell

1
그는 정말? 블리 미. 대답은 간단합니다. 왜 GPL 프로그램의 저자들과 연락을주고 받으시겠습니까? 그들이 말한다면 그것은 훌륭합니다! 그들이 반대한다면, 법적인 세부 사항으로 그들을 강하게 무장 시키려고한다고하더라도 당신이 아무리 "옳다"고 느끼더라도 매우 인기를 얻지 못할 것입니다.
James

3
@ 제임스 : 그들은 GPL을 선택하는 경우, 그것은 그들이 매우 강한 진술 마음이. 마음에 들지 않는 사람들은 우선 MIT, BSD 또는 LGPL을 선택합니다. 전체 GPL 하에서 라이브러리를 보는 것은 매우 드 rare니다. 당신이 할 때, 당신은 그것이 의도적 이었다는 것을 거의 확신 할 수 있습니다.
Jan Hudec

@Jan 아마도, 앱과 john-charles의 용도에 따라 다릅니다. 그러나 JC가 어떻게 접근하고 있는지는 이상하다고 생각합니다. jc가 원하는 답변을 얻으려고 노력하고 있습니까? 이 사이트에는 "큰 소리로 외침을 위해 그들과 대화하기"만해도 해결 될 수있는 많은 질문이 있습니다. :-)
제임스

@ JanHudec : 동의합니다. 저는 회사의 IP 중 일부를 GPL 라이브러리 형태로 공개 할 것을 주장했습니다. 왜냐하면 그것은 그것이 경쟁자에게는 본질적으로 쓸모없고 여전히 우리 지역 사회에 매우 유용하기 때문입니다.
MSalters

답변:


33

GPL 라이브러리에 링크 한 경우 파생 된 작업을 작성했으며 코드가 GPL이어야합니다. 이는 다른 라이센스 코드의 동적 링크를 허용하는 L GPL 코드 와 다릅니다. libc를 포함한 시스템 라이브러리는 모두 LGPL입니다.

Linux 커널 헤더 및 libgcc (컴파일러가 암시 적으로 호출 한 라이브러리)에 대한 특별 면제도 있습니다.


19
libc는 LGPL이 아닙니다. LGPL 프로그램에 링크 할 수 있습니다. 커널 / 시스템 호출에 대한 일반적인 예외도 있으므로 시스템 대 라이브러리 호출이 무엇인지에 대한 논쟁은 없습니다
Martin Beckett

6
LGPL은 새로운 라이센스가 아니며 1991 년에 처음 릴리스되었습니다. libc는 항상 LGPL입니다.
FigBug

4
@ john-charles-1991 년 LGPL이 gplv2와 함께 발명 된 이유입니다. Linux (및 기타 FOSS 커널)가 인기를 얻었 기 때문에 원래 Library-GPL이라고 불렀습니다. 상업용 앱에서 gcc를 사용할 수없는 경우 모든 컴파일러 공급 업체에서 libc가 확산 될 우려가있었습니다.
Martin Beckett

1
@MartinBeckett 이것은 FSF 의견 (GPL하에 라이센스를 부여하지 않은 경우 GPL 코드에 링크 할 수 없음)이지만 논쟁의 여지가 없습니다. 연결에 대한 FSF 의견을 확인하기위한 중대한 소송은 없었습니다 (내가 틀렸다면 나를 정정하십시오).
K.Steff

2
@ john-charles-예, 모든 일반적인 법률은 법원에서 테스트되지만 저작권에 관한 판례법은 상당히 많습니다. 배트맨 DVD의 수정되지 않은 사본이 파생물이 아니기 때문에 원하는만큼 판매 할 수 있다고 주장하면 MPAA가 동의하지 않을 것입니다! GNU 카피 레프트는 저작권을 사용하여 매우 현명한 방법으로 라이센스 계약을 시행합니다. 법원에서 테스트 된 적이없는 이유 중 하나는 모든 사람이 항상 정착했기 때문입니다.
Martin Beckett

7

일반적으로 GPL 라이브러리에 링크하고 코드를 배포 한 다음 코드를 GPL로 해제 할 수 없다는 것이 맞습니다.

그러나 사람들이 Linux 라이브러리와 연결하고 비 GPL 라이센스로 제품을 릴리스하는 방식 인 시스템 라이브러리 예외 가 있습니다.

다른 라이센스는 두 라이센스가 서로 호환되는 경우입니다. 자세한 내용은 FSF 호환 라이센스 페이지 를 확인하십시오 .

마지막으로, GPL의 lib 작성자는 비상업적 또는 취미 사용과 같은 특정 예외를 만들 수 있습니다.

불행히도, 단단하고 빠른 규칙을 가질 가능성이 너무 많습니다. 귀하의 질문에 더 구체적인 내용이 없으면 귀하의 답변은 "아마도 할 수는 없지만 아마도 가능할 것입니다."


1
SLE는 또한 컴파일러에 의해 생성 된 파서를 포함하고 있기 때문에 프로그램이 컴파일러에서 파생 된 작업에 대한 질문에 답변합니다.
Martin Beckett

3
아니요, SLE를 사용하면 무료 툴체인과 표준 런타임 (예 : Visual Studio)을 사용하여 GPL 코드를 개발할 수 있습니다. 무료 애플리케이션이 아닌 GPL 라이브러리와의 연결을 허용하지 않습니다.
Jan Hudec

1
GPL 프로그램의 출력은 GPL에서 다루지 않습니다. 참조 gnu.org/licenses/gpl-faq.html#GPLOutput
막시무스 최연소

-1

짧은 대답은 아무도 모른다는 것입니다. (이 토론은 LGPL이 아닌 GPL에 관한 것입니다.)

GPL은 다른 사람들이 다른 방식으로 해석하는 "파생 저작물"에 대한 모호한 언어를 가지고 있습니다. 정적 링크는 위반하지만 시스템 인터럽트 (예 : Linux 커널)를 통한 호출은 그렇지 않습니다. 후자는 주로 Oracle과 같은 회사가 Linux를 통해 제공되고 고소되지 않은 사실에 근거합니다. 라이센스에 대해서는 명확하지 않습니다.

동적 링크가 명확하지 않은 경우, 70/30이 위반한다고합니다. 파이프 또는 원격 프로 시저 호출 (30/70)을 사용하여 프로그램을 호출하는 것은 본질적으로 동일한 것이더라도 위반하지 않습니다. COM을 통해 또는 Java Jar를 사용하여 전화하는 것은 완전히 불분명합니다.

기본적으로 의심의 여지가 있고 변호사가 마음에 들지 않으면 GPL을 멀리하십시오.


1
GPL이 그다지 모호한 것은 아니며 파생물이 무엇이고 그렇지 않은지에 관한 문제에 관한 판례법이 잘 논의되어 있습니다. Linux syscall 인터페이스와 libc의 차이점은 전자는 작동하는 소프트웨어 (저작권의 예외로 확인 된)를 만드는 데 필요하지만 후자는 그렇지 않습니다 (자신의 구현 가능). 법적인 관련성이없는 작업의 호출 방식과는 아무런 관련이 없습니다.
Jules

"70/30이 위반한다고 말함"및 "30/70이 위반하지 않음"– 위반 / 위반하지 않는 비율이 동일하다는 것이 의도적 인 것입니까? "이것은 본질적으로 같은 것이지만"그것이 다른 것으로 의도되었다는 것을 암시한다.
Mateusz Konieczny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.