본문 바로가기

iOS(애플) Dynamic Library 와 라이센스 (LGPL2.1 / LGPL3.0)

junhulove 게시글 작성 시각 2022-03-25 14:43:40 게시글 조회수 1560



LGPL 2.1/3.0 라이센스를 가진 외부 라이브러리/오픈소스를 가져와서 앱에 활용을 하려고 할때

LGPL 2.1/3.0 라이센스 내용 중 아래 내용을 보면

 

- LGPL-2.1 라이브러리를 Dynamic Link하여 사용하는 프로그램

- 참고로, Java에서 LGPL-2.1인 JAR 파일을 import하는 프로그램도 LGPL-2.1의 파생저작물로 간주하지 않는다. (http://www.gnu.org/licenses/lgpl-java.html)

 

라이브러리를 Dynamic Link 로 활용(사용?)하면 오픈소스를 활용한 앱의 소스를 공개하지 않아도 된다는 것 같은데

(물론 소스코드는 공개하지 않아도 실행 파일은 원하는 사람에게 제공을 해야 한다고는 하지만)

 

오픈소스 프로젝트를 Xcode 에서 Mach-O 값을 Dynamic Library 해서 빌드를 하고 

생성된 파일 정보를 출력하면 dynamically linked shared library 라는 메시지도 표시됩니다.

 

즉 다시 한번 정리하자면 !!

해당 라이브러리를 앱에 넣은 후 배포를 하고 

정적으로 사용하는 것이 아니라 (앱 배포 시에 코드에 포함되는 형태가 아니라)

앱 실행 후에 동적(Dynamic Link ) 으로 

코드에서 import <라이브러리명> 로 호출을 하면 경로에서 메모리로 불러오거나 

또는 앱을 실행할 때 메모리로 라이브러리를 불러와서 사용

 

이렇게 사용된다면 LGPL2.1 / LGPL3.0 에서 말하는 소스코드 공개를 하지 않는 케이스로 봐도 될까요 ??

 

당연히 앱의 오픈소스 라이센스 목록에 "이 라이브러리는 Dynamic Link로 사용합니다." 라는 문구와 "이 라이브러리 소스 수정은 없습니다." 문구도 포함을 하려고 합니다. 

 

아니면 아예 프로젝트에 포함하는 형태가 아니라 (위 두가지 형태가 아니라) 

앱 실행후에 라이브러리를 별도로 받은 후에 그걸 import 하는 방식으로만 그 라이브러리를 활용해만 소스코드 공개를 회피할 수 있는 건가요?



맨 위로
맨 위로