iptime 인터넷 공유기 리눅스 커널 및 GPL 소프트웨어 코드공개.

엠브리오의 이미지


오늘 저의 개인메일로 iptime 에 적용된 리눅스 커널소스 및 사용된 GPL 관련 소프트웨어의 소스코드가 전달되었습니다.

회사의 홈페이지에는 아직 공지가 없습니다만, 어차피 GPL 인데다가 8월에 공개하겠다고 한바 있으므로 공개해도 문제가 없으리라 생각하여
링크걸어둡니다. 여기에 올릴려고 했더니 용량 문제인지 올려지지가 않네요.

궁금하신분들은 받아서 살펴보시길..

http://withseha.net/~embryo/netos.tgz

커널 버전은 2.4.16-rmk2 이고, 나머지 프로그램들에 대한 코드도 들어 있는데 생각보다는 버전들이 낮습니다.

wkpark의 이미지

조금 늦긴 했지만 좋은 소식이네요~~ ^^

온갖 참된 삶은 만남이다 --Martin Buber

김일영의 이미지

물론 나중에 딴 소리만 안한다면 해당 회사도 좋은 선례를 만들어 준 것이고, 고맙게 생각해야겠지요.
험... 그런데 전 믿음이 부족해서인지 약간 못 미더운 감이 있습니다.
혹시 좋은 일 하시고도 나중에 문제가 될 지 모르니 주고 받으신 메일 꼭 잘 보존하시기 바랍니다.

여하튼 우왕ㅋ굳ㅋ

cwryu의 이미지

뜯어보니 철저히 검토하지 않고 공개된 것 같네요. LGPL 라이센스의 lib이 바이너리만 있다던지 한 것도 있구요.

커널 설정도 한 가지로 다 커버된다는 얘기인데 이것도 좀 의심스럽네요.. iptime이 그 오랜 시간동안 한 가지 칩셋만 사용한 건가요?

vacancy의 이미지

뜯어보지는 않았습니다만 ;;
LGPL license를 지닌 코드가 iptime에서 만든 것이 아니고
iptime측에서 수정한 바 없으면 굳이 공개하지 않아도 될 겁니다.
( 이미 공개되어 있을 것이므로 제작한 곳에 가서 받으면 되니까요. )

그리고 커널 설정의 경우 다 공개해주면 좋겠지만 -_-a
다른 업체들하고 일해봐도 커널 설정을 줄줄이 잘 넣어주는 곳은 없더군요.
커널 설정은 GPL의 영향을 받지 않으므로
( 어차피 개인이 설정하기 나름이니까요. ;; )
사실 공개할 필요가 없기 때문 같습니다.

권순선의 이미지

그렇지 않습니다. 수정하지 않았다고 하더라도 gpl/lgpl 코드는 모두 사용 여부와 사용된 코드를 공개할 의무가 있습니다.

redneval의 이미지

LGPL `제 4조' 에서 인용:
목적 코드를 지정한 장소로부터 복제해 갈 수 있게 하는 방식으로 배포할 경우, 동일한 장소로부터 원시 코드를 복제할 수 있는 동등한 접근 방법을 제공한다면 이는 원시 코드가 목적 코드와 함께 복제되도록 설정되지 않았다 하더라도 원시 코드를 배포하는 것으로 간주됩니다.

vacoanoy 님은 이 부분을 잘못 이해하신 것 같습니다.

만약 vacoanoy 님 말대로라면, 사용된 코드를 공개하지 않고서는 코드를 수정했는지 안했는지 모르니까 문제가 됩니다.

그러나 실제적으로 많은 오픈소스 프로그램들이 의존적인 코드를 전부 배포하지 않아도 되는 이유는 LGPL `제 4조' 때문입니다.

예를 들어 제가 lgpl인 Gtk2-perl에 의존적인 프로그램 Pfed를 배포했을때 Gtk2-perl의 소스코드가 필요없는 이유는, Debian 의 apt-get 명령어로 Gtk2-perl의 목적코드를 받는 방식으로 배포했기 때문입니다. (물론, 사용자는 목적 코드를 받은 곳과 동일한 장소인 Debian 저장소에서 Gtk2-perl의 소스코드를 받을 수 있습니다.)

--------------------Signature--------------------
Light a candle before cursing the darkness.

vacancy의 이미지


저,저는 vacancy 입니다. ;; 쿨럭

제가 잠시 혼동이 있었네요.
덕분에 다시 한번 확인해보게 됐습니다. 감사합니다. ^^a

근데 하나 궁금한 것이 있는데,
의존하고 있는 라이브러리를 명시만 하고
아예 바이너리도 같이 묶어 배포하지 않으면
아무 문제가 없는 것이지요 ?
( 라이브러리는 GPL/LGPL이고 다른 곳에서 받을수 있다고 하죠. )

redneval의 이미지

아이고 이런 실수를. 죄송합니다, vacancy님

Quote:

의존하고 있는 라이브러리를 명시만 하고
아예 바이너리도 같이 묶어 배포하지 않으면
아무 문제가 없는 것이지요 ?

그렇습니다. 그렇게 배포하면 코드를 수정하지 않았다는 것이 누가 봐도 명백하니까요.

다만 어디서 라이브러리를 받아야 하는지는 당연히 알려주어야 하고요.

그 곳에는 라이브러리와 함께 소스코드가 공개돼있어야 합니다.

(이런 경우는 사실상 소스코드를 배포하는 거나 다름없습니다. 누가 배포하냐 차이일 뿐이지요.)

하지만 상업적인 회사가 바이너리가 없는 소스코드 형태로만 배포하는 곳은

현실적으로 없을 것 같습니다.

--------------------Signature--------------------
Light a candle before cursing the darkness.

cwryu의 이미지

바이너리를 같이 배포하는 한, 빌드할 때 사용한 configuration이 무엇이냐도 GPL로 커버되는 문제입니다.

"소스는 ftp.gnu.org에서 받으세요. configure한 방법은 비밀~" 식으로 할 수는 없습니다.

uosarang의 이미지


공개한 커널은 컴파일하여

바이너리로 만들어서

타겟에서 돌려볼 수 있어야 하지 않나요?

그러한 방법도 같이 공개를 해야하는건 GPLv3인가요..

머리를 굴려라! 그래야 먹고 산다.

dipole의 이미지

궁금해서 파일을 받아 커널 설정에 들어가 보았습니다
원래 쉘을 띄워서 본 제품에 사용된 하드웨어는
인텔의 IXP4xx 시리즈의 533MHz 의 cpu로 나옵니다

그러나 보내온 커널의 소스는
KS8695 라는 ARM9 with MMU + 5 Port 10/100 Integrated Switch and PHY with MII 라는
일반적으로 공유기 전용으로 나오는 cpu 의 커널 소스입니다
저는 이 커널의 어디에서도 IXDP4xx 혹은 IXDP425 의 cpu 를 사용하는 아키텍쳐 포팅을 찾을수 없었습니다
KS8695 라는 제품은 Micrel사 사에서 나온 CPU 이고 쉘에서 본 cpu 정보는 Intel 사의 CPU 입니다

엉뚱한 커널을 공개한듯 합니다
물론 2.6 패치입니다 KS8695 라는 제품의 커널 패치는
http://maxim.org.za/ks8695_26.html 에서 찾을수 있습니다

쉘에서 사용된 커널은 2.4.18 이고 공개한 커널은 2.4.16 rmk 패치입니다
또 쉘에서 본 플랫폼에 대한 정보 스트링이 arch 에서 찾아져야 하는데 찾을수 없습니다
공개했다고 하고 보내주면 오 공개했구나 하고 넘어갈줄 안것인지....

어떻게 생각하십니까?
제대로 커널을 공개한 건가요?

너는 누구냐?

cwryu의 이미지

커널 아키텍쳐가 다른 문제는 엠브리오님이 어떤 제품에 대한 소스코드를 요청하셨는지에 달려 있습니다.

이 파일은 설정 파일의 내용으로 유추해 볼 때 Q204의 소스 코드로 추측됩니다. 만약 엠브리오님이 Q204의 고객이라서 Q204 제품의 소스코드를 요청하신 거라면 일단 이 사안은 문제가 없는 것이고, 그게 아닌데 Q204 코드를 던졌다면 (실수이든 아니든) 엉뚱한 파일을 건넸다는 뜻이 되겠죠.

설령 다른 제품의 소스코드라도 다시 확인하면 되는 일이죠. X-scale 프로세서를 사용하는 ipTIME 제품의 고객 분이 계시면 EFM 측에 그 제품에 대한 소스코드를 요청하시고 파일을 올려 주세요.

jr의 이미지

확인해보니 dipole님이 제기하신것처럼 KS8695용입니다.
패키징된 정보를 찾아보면 Q204모델의 개선판 초기 릴리즈 펌웨어로 보입니다.
소스코드를 보면, 공개된 부분은 커널과 드라이버, busybox관련 부분이며, 공유기 펌웨어로 패키징 하는 프로그램과 업데이트 프로그램, 실제 공유기의 configuration S/W부분은 바이너리만 포함되어 있습니다.
PS : 질문입니다만, GPL구성요소(busybox)와 같이 배포되는 펌웨어의 경우, 위의 경우같이 바이너리로 공개된 부분(configurator)에 대해서 GPL강제가 되는건가요?

Darkcircle의 이미지

GNU에서 제공한 소프트웨어를 통해 생산되었을 경우 반드시 공개를 하여야 하는 것으로 알고 있습니다.
프로그램의 생산원(프로그램을 만들도록 도와준 컴파일러 등등)이 GNU 소프트웨어 이기 때문에
GNU 라이센스를 따라야 한다는거죠.

만약 Intel이나 MS의 컴파일러를 썼다면 공개여부에 대한 얘기 자체가 달라질 수 있습니다.
어쨌든... MS건 트롤테크건 어디건간에 이런식의 라이센스 준수여부는 유사 내지는 동일하게 적용됩니다.
MS의 컴파일러를 사용하였다면 제품 판매시 MS에 라이센스 비용을 지불해야 할 항목에 대해 지불하여야 하는걸로 알고 있구요...
멀티미디어 전송기술 같은것을 말입니다. 예를 들면 WMV를 썼다거나 그걸 위한 소스코드를 적용했다거나 등등..

즉, 정리하자면 펌웨어 패키징 프로그램, 업데이터, 공유기 환경 설정자 등의
기계 내부적 핵심 프로그램이 gcc와 같은 컴파일러 또는 GNU 라이브러리 기반 환경에서
컴파일 되었다고 한다면 반드시 공개하여야 할 "의무"가 있습니다..

---------------------------------------------------------------
피곤함 1테라톤을 가방 보따리에 주섬주섬 짊어메고 다니는 아이 . . . Orz

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

wkpark의 이미지

Quote:

즉, 정리하자면 펌웨어 패키징 프로그램, 업데이터, 공유기 환경 설정자 등의
기계 내부적 핵심 프로그램이 gcc와 같은 컴파일러 또는 GNU 라이브러리 기반 환경에서
컴파일 되었다고 한다면 반드시 공개하여야 할 "의무"가 있습니다..

잘 못 알고계신듯.

GCC 컴파일러 자체를 개작하여 배포하는 경우는 그 배포 시점에서 GPL이라는 GCC라이센스에 준하는 공개의 의무가 발생합니다만, C언어로/gcc 환경하에서 짜는 창작물 프로그램 자체는 GPL의 영향을 받지 않습니다.

온갖 참된 삶은 만남이다 --Martin Buber

Darkcircle의 이미지

제가 그 부분을 "꼭 해야만 하는 의무" 로 잘못 이해하고 있었군요...

... 헐 -_- ... GPL 다시 읽어봐야하겠습니다.
하긴 대충 읽고 넘어갔으니 그렇게 이해할 수밖에 ...

---------------------------------------------------------------
피곤함 1테라톤을 가방 보따리에 주섬주섬 짊어메고 다니는 아이 . . . Orz

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

dipole의 이미지

조항에 대한 구체적인 사항은 잘 모르지만
중요한 것은 받은 사람이 배포한 것과 같은 바이너리를 빌드할수 있느냐 하는것인것 같습니다
GNU의 목적과 정신에 가장 적합하지 않을까요?
소프트웨어를 하는 입장에서 숨기려 한다면 코드를 살짝씩 바꿔서 배포한다 한들 그것을 증명할수 있을까요?
결국은 배포하는 사람의 마음이 가장 중요한 것인데 여기는 그렇지 않다는 것에 결론이 이르게 되네요
소스를 배포하고자 하는 이상, 많은 사람들에게 공유의 정신을 실천하고자 하는 이상
configureation 방법이나 tool과 같이 간단한 README 정보를 제공하는 것이 그리 어려울까요?

적당히 입막음 하고자 선별적으로 골라 배포한 흔적이 너무나 역력한 것이 눈에 보이는듯 합니다

너는 누구냐?

Darkcircle의 이미지

ASUS 측에서도 펌웨어를 오픈소스로 개발하였고 그래서 해당 소스 전체를 공개하였습니다.
물론 잘못된 이미지 컴파일로 인한 제품 문제는 회사측에서 책임을 지지않겠다는 조건하에서죠.
물론 최신버전입니다. 바이너리 버전도 있고요. 차라리 설치하는건 바이너리 버전이 더 편하겠죠.
하지만 GPL 라이센스에 의거해서 소스코드는 물론 툴체인까지 전부 공개가 되어 있구요.
이거 찾으시려면 드라이버로 가는게아니라 해당 웹사이트의 Others 가시면 있습니다.

드라이버 다운로드 홈페이지 (WL-500gP를 제가 썼었습니다.) 에 가시면 풀 소스 압축파일이 있을 것입니다.
이거 그대로 컴파일해서 나오는 파일을 Web 기반 펌웨어 인스톨러로 설치하면 잘 동작합니다.
IPTime 측에서 오픈소스 에 대한 전략으로 오픈소스 컴파일 설치로 인한 리스크가 발생하였을 경우
수리 비용을 사용자가 부담(기술지원료 지불) 하는 식으로 이득을 챙기는 방법도 있을텐데
뭐가 그리 두려워서 소스 공개를 안하려는건지... 똥배짱이네요. 이거 국제소송 걸리면 골치아플텐데.

---------------------------------------------------------------
피곤함 1테라톤을 가방 보따리에 주섬주섬 짊어메고 다니는 아이 . . . Orz

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

linlin의 이미지

그런데 firmware쪽은 오픈소스 개발모델이 상대적으로 잘 동작하지 않는 것 같아요. 무선 라우터 중에 dd-wrt나 기타 오픈소스에서 시작된 firmware들도 마찬가지로 100% 오픈소스로 잘 남아있지 않고 어느 시점부더 상용으로 전환하는 경우가 많으며 이 과정에서 GPL 라이센스 조항과 충돌하는 경우가 자주 발생하거든요. 링크시스도 그 유명한 wrt-54g이후에 마지못해 리눅스 펌웨어 전용 wrt-54gl을 내놓는 분위기였고 이제는 뭐 오픈소스 사용자들은 신경도 쓰지 않고 있지요. 결국 리눅스 라우터 플랫폼 등장에 대한 장밋빛 전망들은 모두 물거품이 되어 버렸구요. (솔직히 기술적인 측면에서는 이것이 상당히 재미있는 현상입니다. 리눅스는 네트워킹 쪽으로 필요한 코드를 모두 갖고 있고 리눅스 사용자들은 싼값에 고성능 라우터를 만들 생각에 wrt-54g 구매를 늘렸으며 wrt-54g용 오픈소스 펌웨어 역시 진화를 거듭했거든요. 그런데 linksys가 여기에 호의적이지 않게 된 이유가 뭔지....)

이건 상대적으로 firmware 이름에서도 알 수 있듯이 한번 설치하고나면 업그레이드가 잘 필요하지 않은 firmware의 특성상 개발자 커뮤너티가 잘 형성이 안되는 문제가 있지 않을까 짐작해보는데 이건 더 알아봐야 할 문제겠죠.

라이센스 개념이 좀 더 느슨한 한국의 현실에서는 상당수의 공유기 업체들이 오픈소스 코드를 슬쩍 가져다 자사제품에 넣는 관행이 자리잡을 가능성이 높겠죠. 어쨌거나 GPL은 일단 가져다 썼으면 소스코드 공개를 요구하고 있으니 적어도 소스코드 공개 요청이 들어오면 정확하게 공개해주는게 사리에 맞다고 봐요.

하나 궁금한 것은 firmware의 경우는 컴퓨터보다 훨씬 하드웨어에 종속적이기 때문에 소스코드는 공개해도 특정 하드웨어 이외에서는 돌아가지 못하도록 엔지니어링할 수 있는 가능성이 열려 있는데 왜 많은 업체들이 소스코드 공개를 꺼려하는 그 이유가 무엇인지... 공유기 펌웨어에 공개하면 큰일날 정도의 중요한 회사 핵심 기술이 들어갈 것 같지도 않고... 어쨌든 펌웨어 업체들은 무슨이유에서인지 소스코드 공개를 가급적 하지 않으려는 특성이 강합니다.

cwryu의 이미지

이번 기회에 이 문제에 관심있는 분들의 논의를 집중시키기 위해 구글그룹을 만들었습니다.

http://groups.google.com/group/foss-legal-kr

그룹 이름은 거창하지만 (IANAL) 일단 iptime 이슈에 대해 정리하고 올바른 GPL 준수를 촉구하는 것을 목표로 합니다. 지금까지 알려진 사실들과 문제 사항을 정리할 예정인데, 가입하시면 관련 정보를 올려 주시고 페이지 편집에 도움을 주세요.

요즘 구글 그룹스에 스팸봇이 돌아다니기 때문에 부득이 승인을 해야 가입되도록 설정해 놓았습니다.