GPL 소프트웨어 바이너리는 다운로드, 소스 코드는 우편만 제공해도 되나요?

slomo의 이미지

LG 넷하드의 경우인데요. 바이너리는 고객지원센터에서 바로 다운로드 받을 수 있고
판매할 때 함께 포함된 CD에도 들어있지만 소스 코드는 메일을 보내면 CD-ROM에
담아서 보내주겠다고 합니다. 그렇게 해도 되는 것인가요? 그냥 함께 올려놓으면
편할텐데...

http://www.lge.co.kr/brand/nethard/support/NethardQnaDetailCmd.laf?brand=NETHARD&mncode=NETHARD_QNA&seq=2149

저희는 GPL을 준수하기 위해 노력하고 있으며 매뉴얼 및 CD에 사용된 GPL 프로그램과 GPL 라이센스 원문을 포함하고 있으며
소스를 받으실 수 있는 방법 또한 매뉴얼에 기재되어 있습니다.
다음은 매뉴얼에 기재되어 있는 내용입니다.
다음 e-mail을 통해 LG 전자에 소스 코드를 요청하실 경우 매체 비용, 운반비 등 제공에 필요한 제반 비용을 받고 CD-ROM에 담아 보내 드리도록 하겠습니다. :
opensource@lge.com
감사합니다.

neocoin의 이미지

그냥 소스 코드를 받는 장벽을 높인거죠. GPL2 가 작성될때 인터넷이 흔하지 않은 시절이라 그렇게 정의해놨습니다. 그걸 이런 식으로 사용하는거겠죠.

한마디로 GPL2 라면 그래도 됩니다. ;;

cwryu의 이미지

이럴 수록 진짜로 요청해서 귀찮게 해야 바뀝니다. 돈 주고받고 우편 보내는 일도 번거로운 일이지요.

3,4000원 정도면 되겠군요.

dg의 이미지

방금 펌웨어를 다운로드 받았는데 GPL이나 소스코드 관련된 내용을 전혀 고지받지 못했습니다. 과연 펌웨어에 GPL 소프트웨어가 전혀 포함되지 않은 것일까요?

Lipi의 이미지

아래의 사이트에서 Data Storage로 Category를 정해서 검색하면 넷하드 관련 소스 파일을 구하실 수가 있습니다.
넷하드뿐만 아니라 TV 및 Android폰 관련 등 공개해야 하는 소스 파일은 여기서 구하실 수가 있을 겁니다.

http://opensource.lge.com

참고로 삼성전자 Open Source사이트도 링크 걸어 놓을 게요.

http://opensource.samsung.com

dg의 이미지

넷하드 소스파일을 받아봤는데 단지 사용된 GPL 소프트웨어의 소스코드를 모아놓 것에 불과합니다. 이걸로 GPL을 준수했다고 보기 힘들것 같습니다. 펌웨어를 빌드할 수 있을 정도로 제공 되어야 된다고 봅니다. GPLv3 Section 6에서는 다음과 같이 명시적으로 규정하고 있습니다. (LG 넷하드에 사용된 소프트웨어중 GPLv3로 배포된 것이 있습니다.)

"Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

그리고 앞에서 언급했듯이 펌웨어를 배포하면서 GPL에 관련된 사항을 고지 안한것도 잘못이라고 생각합니다.

cwryu의 이미지

위 상황을 설명하고 문제를 제기해 보세요. 아마도 GPLv2 기준으로 전략을 짜 놓은 모양이군요.

gplv3 쓸 만한 소프트웨어는 아마도 samba 신버전일 것 같은데, 그러면 말씀대로 수정된 버전을 적용할 방법을 제공해야 합니다.

dg의 이미지

GPLv2 기준으로 보더라도 GPL 위반이 맞는거 같네요.
일단은 제가 다운로드 받은 펌웨어의 소스코드를 요청했으니 응답을 기다려 보지요.

cwryu의 이미지

펌웨어 다운로드할 때 고지를 안 했다는 사실은 그렇지요.

dg의 이미지

고지의 문제 뿐이 아닙니다. GPLv2의 경우라도 펌웨어의 소스코드를 제공해야지 펌웨어에 사용된 GPL 소프트웨어의 소스코드만을 제공하는 것은 GPL을 위반한 것입니다.

cwryu의 이미지

아니요. 잘못 알고 계십니다.

"소스코드를 제공해야 하는 의무"를 엄밀히 말하면 GPL에 "derived works"에 대해 같은 라이선스로 배포되어야 한다고 쓰여 있는 부분인데요. (GPLv3에서는 좀 더 명시적으로 정의되어 있습니다.) 한 바이너리로 (혹은 라이브러리로) 링크되는 것이 아니라 단지 파일시스템에 같이 설치되서 연동되서 돌아가는 것이라면 derived works의 범위로 보지 않습니다. 리눅스 배포판 모두가 모두 GPL이 되지도 않고, 지금까지 리눅스로 만들어진 GPL을 준수하는 수많은 전자제품이 그래 왔습니다.

dg의 이미지

제가 받은 펌웨어는 하나의 바이너리 파일로 되어 있었습니다. 단지 같은 파일시스템에 설치된게 아니라 하나의 바이너리로 링크되는 것에 더 가깝다고 봅니다. 수많은 전자제품이 그래왔다면 사례를 좀 알려주세요.

벨킨의 오픈소스 페이지인데요
http://www.belkin.com/support/opensource/
각 제품의 펌웨어 버젼마다 소스코드가 제공되고 그 소스코드로 펌웨어를 빌드할 수 있습니다. 님의 입장에 따르면 사용된 GPL 소프트웨어들의 소스 각각을 모아서 제공하기만 하면 되는데 벨킨은 하지 않아도 되는 일을 하고있나봅니다. (보시면 대부분 GPL 버젼 2에만 해당됩니다)

cwryu의 이미지

배포되는 파일이 1개라고 링크됐다고 부르는 게 아닙니다. 한 개의 바이너리로, 혹은 동적 라이브러리르 통해 1개의 메모리스페이스에서 돌아간다는 것이지 배포하는 포맷이 파일 1개라고 링크라고 부르는 게 아닙니다. 티보가 그렇고 공유기가 그렇고 안드로이드 휴대전화가 그렇고 전자제품 펌웨어 배포 파일은 1개입니다. 거기에 리눅스 들어 있다고 소스가 다 공개되어 있지는 않습니다.

리눅스 배포판 ISO 파일로 배포하면 거기 들어 있는 게 전부 GPL이어야 합니까?

GPLv3의 경우에는 빌드해서 적용할 수 있는 방법을 제공해야 합니다. 명시적으로 그런 의무 조건이 있으니까요. 하지만 GPLv2는 없습니다.

네 벨킨은 안 해도 되는 일을 하는 것 같네요. GPL 때문에 공개한 소스들 찾아 보십시오.

dg의 이미지

제 말은 1개의 파일로 배포됐다고 링크라고 주장하는게 아닙니다. 단지 링크쪽에 더 가깝다고 했을 뿐입니다. 아래 얘기는 GPLv2 기준입니다.

링크쪽에 더 가깝다고 한것은 펌웨어 파일에서 어느부분이 GPL의 의무사항이 적용되지 않는 부분인지 식별 가능한가... 그리고 그 부분이 GPL소프트웨어와 독립된 소프트웨어로 인정할 수 있는가... 하는 측면에서 그렇게 말한 것입니다. 이 두가지가 충족되면 GPL소프트웨어와 GPL아닌 소프트웨어를 같이 배포하면서 전체에 GPL이 강제되는 것을 방지할 수 있습니다. GPLv2에 다음과 같은 내용이 있습니다.

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.

상업적 소프트웨어가 포함된 리눅스 배포판의 경우에는 GPL 소프트웨어와 상업적 소프트웨어가 각기 다른 파일에 들어있기 때문에 쉽게 구분할 수 있습니다. ISO파일 하나로 배포되더라도 ISO파일 내부에 어떠한 파일들이 있는지 들여다 보는 것은 매우 쉽습니다. 그리고 포함된 상업적 소프트웨어는 GPL 소프트웨어와 완전히 독립적으로 동작하거나 표준적인 시스템콜, 소켓, 파이프 등 일반적으로 독립적인 프로그램 사이의 통신방법으로 인정되는 방법으로만 연동되므로 GPL소프트웨어와 독립적인 프로그램으로 인정 됩니다.

안드로이드의 경우는 리눅스 커널만 GPL입니다. 안드로이드 폰에서 수정된 커널을 돌리는게 가능하다고 하니 펌웨어 파일에서도 리늑스 커널과 나머지를 구분가능하지 안나 생각됩니다.

공유기의 경우는 제가 앞서 올린 벨킨 링크에서 소스코드를 받아보면 펌웨어 까지 빌드가능한 전체 소스가 공개되어 있습니다. 제 주변에는 링크시스 공유기 펌웨어 소스를 받아서 수정하여 수정된 펌웨어를 돌렸다는 얘기를 들었네요. Dlink도 비슷한 수준으로 공개되고 있는거 같습니다.

티보의 경우에는 디지털 서명같을것을 사용하여 하드웨어 자체가 수정된 펌웨어가 동작하지 못하도록 해서 문제가 되었는데 그얘기는 수정된 펌웨어를 빌드하는데는 문제가 없었다는 얘기인것 같군요.

언급한 사례를 일일이 확인하기 어려우니 소스코드 받을 수 있는 링크 포함해서 사례 하나만 들어주시면 안될까요? 수많은 전자제품이 그래왔다면 그런 사례 하느쯤은 있을거 아닙니까?

제가 받은 LG전자 넷하드 펌웨어는 ISO처럼 널리 알려진 형식으로 되있는것이 아닌거는 확실하네요. 펌웨어가 빌드 가능한 소스가 있었다면 빌드과정을 추적하면 알 수 있겠지만요. 그렇다고 리버스 엔지니어링 하자니 저작권법 위반인것 같고... 따라서 이런 경우는 GPLv2에 따르면 전체에 GPL이 강제되는 경우라고 봅니다.

cwryu의 이미지

대충 삼성을 골라서 보면,

http://opensource.samsung.com/

수백개 되는데 적당한 제품을 골라서 펌웨어 이미지까지 빌드할 수 있는지 살펴보세요.

안드로이드 파일은 커널 뿐만 아니라 webkit (LGPL), bluez (GPL) 코드가 공개 대상이고 파일 1개 안에 다 들어있습니다.

dg의 이미지

삼성 TV

LA32B650
LA32B750
LA40B650
LA40B750
LA46B650
LA46B750
LA52B650
LA52B750

모델 버젼 1000의 소스파일 10_LA40B750.zip을 받아본 결과 빌드해서 펌웨어에 적용하는 방법까지 설명되어 있습니다.

cwryu의 이미지

이 문제는 예제로 그렇다 아니다, 연구한다고 판단할 수 있는 성격이 아닙니다.

제 말이 미덥지 않으시면 연구하지 마시고 직접 전문가에게 문의해 보세요. 저도 가끔 SFLC 주소로 메일을 보냅니다. http://softwarefreedom.org/about/contact/

slomo의 이미지

감사합니다.

그런데 저는 Data Stroage에서 N4B1 모델을 받았는데 압축을 풀다가 에러가 나네요. 다시 해봐야겠습니다.

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

dg의 이미지

아.. 그리고 GPLv3에 따르면 바이너리는 다운로드 받을 수 있게 하면서 소스코드는 우편으로만 제공하는것도 잘못입니다.