Kandroid Archive (Old article backup) 
안드로이드 APK소스의 법적 공개 의무
작성자 인베인
작성일 2011-03-27 (일) 17:48
ㆍ추천: 0  ㆍ조회: 8047      
IP: 219.xxx.12
첨부#1 Brown_Rudnick_Advisory_The_Bionic_Library.pdf (114KB) (Down:1681)
bionic 라이브러리의 GPL라이센스 이슈에 대한 자료입니다.  상업목적으로 안드로이드 애플리케이션 개발하시는 분들은
한번쯤은 같이 생각하고 고민해볼만한 내용입니다. 더군다나 시간이 갈수록 오픈소스활용한 비즈니스모델은
왜냐?가 아니라 시대의 트렌드로 자리잡아가고 있기때문이기도 합니다.
 
간단히 요약을 하면,  
현재 안드로이드에 사용되는 bionic 라이브러리는 여러가지 목적이 있겠으나,
 
주요 목적은
 
1. 모바일 플랫폼을 위해 BSD라이브러리 기반으로 simple한 라이브러리를 만드는 것이고,
    . 근거: bionic 라이브러리의 README 공식 문서에 표기
 
2. 사용자가 만든 애플리케이션(*.apk)이 소스가 공개되지 않아도 되도록 보호해주기 위한 것이라고 볼수 있습니다.
    . 근거: Patrick brady의 Google I/O에서 Android Anatomy  발표 동영상(구글 유투브 동영상)
 
 
여기서 한가지 주목할것이 있습니다. bionic 라이브러리가 기술적 & 법적 라이센스 이슈에 걸리게 되면,
*.apk 애플리케이션을 판매할때 고객에게 소스까지 공개해야될 의무를 가질수 있다는 것입니다.
 
일예로,
2003년 리누스 토발즈는 리눅스커널소스의 헤더파일(대략 720여개)들을 UserSpace의 사용자 애플리케이션소스에
포함시켜서 컴파일하여 사용할때는 그 사용자 애플리케이션을 GPLv2 라이센스 조항에 따라 소스를 공개해야 되며
그 프로그램은 또한 소스를 클로즈할수 없음을 밝혔습니다.

 
“… [Y]ou do _NOT_ have the right to use a kernel header file (or any other part of the kernel
sources), unless that use results in a GPL'd program.

What you _do_ have the right is to _run_ the kernel any way you please . . . .
BUT YOU CAN NOT USE THE KERNEL HEADER FILES TO CREATE NON-GPL'D BINARIES.
Comprende?”      http://lkml.org/lkml/2003/12/5/13.
 

 
실제로 bionic 소스 라이브러리에는 LINUX커널소스의 헤더파일들이 그대로 사용되고 있습니다.
이부분에 대해서는 Kandroid 1th , 2nd 컨퍼런스에서 거론했던적이 있었습니다.
 
사실 라이센스 이슈때문에 glibc가 아닌 bionic를 선택했다라는 것은 라이센스 해석을 했을때 설득력과 논리가
떨어지는 것이 부인할수 없는 진실입니다. glibc는 GPL이 아니라, LGPL라이센스 이니까요.. 물론 glibc의 각종
컴포넌트들의 구성에 따라 이것 또한 최근 2.6.X버젼부터는 몇몇 부분들이 
GPL관련 이슈가 있기는 하지만.. glibc관련해서는 여기선 요정도까지만 거론하겠습니다.

 
어찌되었던 이것이 향후 bionic소스에 포함되어 있는 커널 헤더파일들의 사용이
법적 오픈소스 준수 의무에 대해서 어떻게 해석되고 분쟁이 되냐?에 따라
안드로이드 애플리케이션을 작성하는 애플리케이션 개발자들에게 커다란 이슈로 다가 오게 될겁니다.
개방망 및 오픈소스의 이념에 맞게 가급적 구글은 업데이트버젼들도 충실히 세계공헌과 발전을 위해
모두 오픈해주시고, 세계발전에 공헌하는 이러한 안드로이드에 대해 공격하는 자들은 천벌(??)을 받게 해주시옵소서...ㅎㅎ
 
첨부파일은 이에 대한 내용을 다루고 있는 문서입니다. 파일 첨부합니다.
 
이름아이콘 gynoid
2011-03-27 20:11
살떨립니다. 저지금 떨고 있습니다.
인베인 저는 항상 고마워 하며, 동시에 gynoid처럼 떨며 살고 있습니다. :) 3/28 17:00
   
이름아이콘 들풀
2011-03-28 06:48
첨부 PDF 가 오류가 있어서 정정해서 올렸습니다....
차분히 시간을 가지고 읽어봐야겠네요..~
인베인 Thanks. 3/28 17:00
   
이름아이콘 들풀
2011-03-28 16:14
pdf 문서를 읽고 느낀 소감 간단히 몇자 적습니다.
---
제 생각에는 bionic libc에 GPLv2가 적용된다고 하더라도,
안드로이드 SDK기반의 Apk 개발에는 특별한 이슈가 없을 듯 하네요.
구체적으로, biolic libc가 GPLv2가 되면 당연히 Zygote도 GPLv2가 되어야겠지만,
Zygote내에서 실행되는 Dalvik VM 기반의 apk도 GPLv2에 종속되지는 않을 듯 합니다.
하지만, 안드로이드 NDK를 사용한 Apk 개발에는 이슈가 발생할 듯 합니다.
왜냐하면, NDK 역시 bionic libc를 사용하기 때문입니다.
다른 분들의 의견을 경청해 보고 싶네요..
인베인 >구체적으로, biolic libc가 GPLv2가 되면 당연히 Zygote도 GPLv2가 되어야겠지만,
>Zygote내에서 실행되는 Dalvik VM 기반의 apk도 GPLv2에 종속되지는 않을 듯 합니다
전 이에 대해서 해석을 달리합니다.
GPLv2의 가장 무서운(섬짓한) 것중의 하나가 어떠한 형태로든 Linking(e.g:static, dynamic)되어
ELF 바이너리 코드가 동작이 되는 경우 그것은 곧바로 순식간에 오염이 되기 때문입니다.
따라서, 예를 들어 jni인터페이스로 구현되어 동작이되는 최상위의 *.apk도
GPLV2에 종속되는 것에서 완전히 자유롭지 못하다고 생각되는 사람쪽의 한 사람입니다.
결국, *.apk가 GPLV2에 종속되는 것으로 법적 판결이 나는것을 배제할수 없지 않을까 합니다.
물론, I am not a lawer... :)
3/28 16:59
들풀 갑자기 이 글을 보니깐 윤종민님의 의견도 들어보고 싶다는 생각이 많이 드네요..~ 3/28 17:43
인베인 예전에gplviolations의 회원이라고 저녁 뒷풀이때 들었던 기억이 있어서, 윤종민님이 이부분에 대해 보다 좀더 전문적이고 법률적인 의견을 주시면 저를 포함한 많은 개발자분들에게 좋을것같습니다. 3/28 21:09
   
이름아이콘 나그네별
2011-03-28 18:13
일단 재미있는 내용이네요. 조심스럽게 한번 읽어 본 뒤에, 제 의견을 이야기드리겠습니다.
   
이름아이콘 나그네별
2011-03-28 18:29
일단 다음의 링크를 한번 살펴 보는 것이 도움이 될지도 모르겠네요..

Linux: The GPL And Binary Modules - http://kerneltrap.org/node1735

다음은 커널의 라이센스 구문 중 제일 윗 부분입니다.

linux/COPYING
1
2    NOTE! This copyright does *not* cover user programs that use kernel
3  services by normal system calls - this is merely considered normal use
4  of the kernel, and does *not* fall under the heading of "derived work".
5  Also note that the GPL below is copyrighted by the Free Software
6  Foundation, but the instance of code that it refers to (the Linux
7  kernel) is copyrighted by me and others who actually wrote it.
8
9  Also note that the only valid version of the GPL as far as the kernel
10  is concerned is _this_ particular version of the license (ie v2, not
11  v2.2 or v3.x or whatever), unless explicitly otherwise stated.
12
13                         Linus Torvalds
인베인 나그네별님 의견 감사합니다. 이 부분도 첨부된 문서에서 거론하고 있다시피, 다시 간단히 요약해보면, LGPL조항을 가지는 glibc(GNU C library)소스의 경우에는 소스를 보면 나와있듯이, 리눅스 커널 헤더파일들을 그대로 이용하지 않고(실제 BSD계열에서 가지고온 코드들이 있음) 자체적으로 작성한 시스템콜을 사용하여 커널의 서비스를 이용하는 경우에는 GPL위반을 하지 않음으로 인정합니다. 사실 이것때문에 토발즈 아찌가 리눅스를 리차드 스톨만이 요구한 GPLV 3으로 안가겠다고(회사들을 위해서...)한 큰 이유중의 하나라고봐도 과언은 아닐겝니다. 3/28 19:40
인베인 약간 별개지만, 추가적으로, Paste해주신(2005년 4월에 토발즈가 Update한 Linux 커널의 ./COPYING파일) 내용은 누군가(?) 작성한 리눅스 커널 소스를 제품출하시 built-in하지 않고, Module으로 빌드시에는 해당 소스를 공개치 않아도 되는 이슈(리눅스 자체가 토발즈만의 코드만 있는게 아니기 때문에 이것도 사실 법적분쟁으로 가면 위태위태한게 사실입니다.)와도 해당 내용들이 관련이 있습니다. 3/28 19:41
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
150 스탠포드대학의 Systrace와 Power 정보 결합 내용 [1] Jaynux 2016-03-29 4829
149 누리펫, 페이스북 연동 + 애견 자동 급식기 프로젝트, 소스 및.. 아이시클 2014-11-20 3206
148 11월 등록 프로모션 진행! [W3C 온라인 트레이닝 한국어 서비.. 미래웹기술연구소 2013-11-01 2877
147 무료통화 mVoIP API - 예제 소스 포함 뭉치v 2013-04-29 5316
146 이파일에 대한소스좀 gongdol11 2012-09-03 4435
145 쇼핑몰 앱 소스 공개합니다.(Android, iOS) 씨트린매니저 2012-06-12 7380
144 Multicore向 Unified KToolChain ver2.6 (20130105) [14]+22 인베인 2012-05-16 10837
143 [오픈소스] 애주가 소스 공개 아아베재더라아 2012-05-09 5768
142 OpenMP를 이용한 멀티코어 프로그래밍 [4] 다이나믹링크 2012-05-04 6593
141 안드로이드 서비스에 기능 추가 하기 [2] 레이지보이 2012-02-24 5664
140 HTML as App #4 - 기본 링크 스타일과 선택 동작 없애기.. [1]+1 비즈페이 2011-12-30 8201
139 HTML as App #3 - HTML 시작 비즈페이 2011-12-30 5226
138 HTML as App #2 - 주의해야 할 것! 비즈페이 2011-12-27 4072
137 HTML as App #1 - 들어가기 전에 [1]+1 비즈페이 2011-12-22 5080
136 NPTL Optimization for Lightweight Embedded Devices [3]+2 들풀 2011-06-25 5398
135 안드로이드 APK소스의 법적 공개 의무 [5]+7 인베인 2011-03-27 8047
12345678910