이 누리집은 대한민국 공식 전자정부 누리집입니다.

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

2022.03.25



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 하는 방식으로만 그 라이브러리를 활용해만 소스코드 공개를 회피할 수 있는 건가요?



------ 댓글 -------

License 관리자

안녕하세요

공개소프트웨어 라이선스 관리자입니다.

1.

LGPL은 말씀하신 수정없이 다이나믹 링킹으로 결합하여 배포한다고 하여도 해당 라이브러리에는 소스코드 공개의무가 있습니다.

수정없이 다이나믹 링킹인 경우 고지문에 다운로드 출처를 작성하여 고지하는 것으로 편의상 활용되기도 하지만,

(이 부분에서 소스코드 공개의무가 없다, 하지 않아도 된다라고 이해하신 것 같습니다)

원칙적으로는 소스코드 공개의무에 따라 해당 라이브러리의 소스코드를 공개해야 합니다.

2.

앱과 라이브러리를 별도로 받은 후에 import 하는 방식을 배포 받는 사람이 직접 하는 것이 아니라면,

LGPL 라이선스에 영향을 받을 것으로 판단됩니다.

(일반적으로 오픈소스 라이선스는 배포를 함으로써 의무사항이 발생하기 때문에

앱이든 라이브러리든 소스코드 공개의무가 있는 바이너리 혹은 소스코드를 배포 시에는 소스코드 공개의무가 발생합니다.)

감사합니다.

※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.

------ 댓글 -------

답변 감사합니다.

다시 한번 정리하자면

1. 앱에서 사용한 LGPL 2.1 라이센스의 라이브러리 소스는 공개 또는 사용자가 볼 수 있게 해야 한다. (수정 유무에 상관없이)

위 1 번은 맞는거죠

2. 이 LGPL 2.1 라이센스의 라이브러리를 Dynamic Link하여 사용하는 앱스토어의 앱

이 앱의 소스코드도 공개(또는 제공) 를 해야 하는 거죠?

저 LGPL 2.1 라이센스의 라이브러리를 수정하지 않고 사용하더라도 말이죠?

제가 이해한게 맞는지 한번만 추가 답변 해주실 수 있을까요?

------ 댓글 -------

License 관리자

안녕하세요

공개소프트웨어 라이선스 관리자입니다.

문의주신 내용 답변드립니다.

1-1. LGPL-2.1 라이브러리를 링킹 형태로 사용하며, 수정 시 라이브러리 소스를 배포 받은 대상(앱 다운 받은 모든 이)에게 제공해야 합니다.

1-2. LGPL-2.1 라이브러리를 링킹 형태로 사용하며, 수정을 하지 않았을 경우 라이브러리 소스를 배포 받은 대상(앱 다운 받은 모든 이)에게 제공해야 합니다. 다만, 고지문에 버전과 출처를 작성하여 소스코드 공개(제공)의무를 간소화한 방식으로 이행할 수 있다.

2. 원칙적으로 소스코드를 공개(제공) 해야 하는 것이 맞지만, 수정하지 않은 경우에는 위와 같이 고지문에 버전과 출처를 작성하여 공개의무를 이행하는 방식으로 진행하셔도 될 것으로 보입니다.

감사합니다.

※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.

댓글 0

첫 댓글을 작성해보세요!

댓글 작성

댓글을 작성하려면 게시글 작성 시 입력한 이메일과 패스워드를 입력해주세요.