2020.02.14
LGPL 라이선스의 라이브러리를 사용하여 상용프로그램을 제작코자 하는데
사람마다 LGPL 해석이 조금씩 달라 혼동되는 부분이 있어 질문올립니다.
아래는 제가 이해한 내용입니다.
1. 라이브러리를 개작(변경)한 2차저작물은 소스코드를 공개하여야 한다.
2. 라이브러리를 수정하지 않고 동적 링크로 사용만 하는 응용프로그램은 응용프로그램의 소스코드 공개 의무가 없다.
3. 응용프로그램이 라이브러리를 정적 링크로 결합할 시 사용자가 라이브러리를 변경해도 동일한 실행물을 얻을 수 있게 응용프로그램의 목적코드(obj파일)를 배포해야한다.
4. 실행물을 개인적 용도로 개작하거나 리버스엔지니어링 가능함을 고지해야 한다.
5. 응용프로그램에서 LGPL 라이브러리의 라이선스를 표기해야한다.
6. LGPL과 GPL의 원문을 포함하여 같이 배포해야 한다.
7. 라이브러리의 소스코드를 배포(혹은 다운로드 가능토록)한다.
아래는 질문입니다.
- 제가 이해한 위 내용이 맞나요?
- 항목 3에서 목적코드의 배포는 응용프로그램과 함께 배포되어야 하나요? 함께 배포하지 않고 별도로 다운로드 가능토록 해도 되나요?
- 항목 4에서 개작과 리버스엔지니어링 허용이 라이브러리를 동적으로 링크해서 사용만 한 응용프로그램도 해당되는 얘기인가요? 아니면 사용만 한 경우엔 라이브러리에 국한된 얘기인가요?
- 항목 6에서 라이선스 원문은 꼭 응용프로그램과 함께 배포해야 하나요? 원문 링크를 정보창에 표기하면 안되나요?
- 항목 7에서 라이브러리의 소스코드는 꼭 직접 배포해야 하나요? github등의 오픈소스 다운로드 링크를 표기하면 안되나요?
도움 감사드립니다.
------ 댓글 -------
License 관리자
안녕하세요
OSS관리자 입니다.
문의주신 내용 답변 드립니다.
- 내용에 대한 설명 드립니다.
LPGL의 라이선스는 파일 결합 형태에 따라 GPL 다르게 적용될 수 있습니다.
1. 라이브러리의 파일 결합 형태에 따라 다릅니다. 링크 결합이 아닌 경우 라이브러리를 포함한 모든SW의 소스코드를 공개할 수 도 있으며, 링크 결합인 경우에도 정적 링크와 동적 링크에 따라 공개 방법이 다릅니다. 정적 링크 사용 시 수정코드를 포함한 라이브러리의 소스코드와 응용프로그램의 오브젝트 코드에 대한 공개의무가 발생하며, 동적 링크 사용 시 수정코드를 포함한 라이브러리 범위의 공개의무가 발생합니다.
2. 동적 링크 시 응용프로그램의 오브젝트코드 공개의무는 발생하지 않습니다.
3. 정적 링크 사용 시 수정코드를 포함한 라이브러리의 소스코드와 응용프로그램의 오브젝트 코드에 대한 공개의무가 발생합니다.
4. LGPL 라이선스 사본을 동봉(포함)하시면 리버스 엔지니어링에 관한 고지의무를 이행하게 됩니다.
5. 해당 라이브러리 사용에 대한 라이선스 고지를 해야 합니다. 라이선스 사본 포함, 공개SW명, 저작권 정보 등을 고지하시는 것을 권장합니다.
6. GPL, LGPL뿐만 아니라 사용하고 있는 모든 공개SW의 라이선스의 사본을 같이 배포하시는 것을 권장합니다.
7. 배포하는 형태와 마찬가지로 소스코드를 공개하여야 하며, 혹은 제공 약정서(Written Offer)를 제공해야 합니다.
- 항목 3에서 목적코드의 배포는 응용프로그램과 함께 배포되어야 하나요? 함께 배포하지 않고 별도로 다운로드 가능토록 해도 되나요?
목적코드의 공개는 일반적으로 배포 형태와 같은 형태로 공개해야 합니다.
만약, 인터넷 사이트를 통해 배포한다면 인터넷을 사이트를 통해 공개해야 합니다.
목적코드는 응용프로그램과 함께 배포하는 것을 권장하며, 소스코드 동봉하거나 최소 3년 유효한 소스코드를 제공하겠다는 제공 약정서(Written Offer)를 첨부해야 합니다.
- 항목 4에서 개작과 리버스엔지니어링 허용이 라이브러리를 동적으로 링크해서 사용만 한 응용프로그램도 해당되는 얘기인가요? 아니면 사용만 한 경우엔 라이브러리에 국한된 얘기인가요?
LGPL-2.0의 경우 리버스엔지니어링의 범위가 라이브러리 링크 사용 시 라이브러리에만 국한될 수 있습니다만, LGPL-3.0의 경우 응용프로그램도 리버스엔지니어링을 제한할 수 없습니다.
- 항목 6에서 라이선스 원문은 꼭 응용프로그램과 함께 배포해야 하나요? 원문 링크를 정보창에 표기하면 안되나요?
라이선스 사본을 함께 배포하시는 것을 권장합니다.
- 항목 7에서 라이브러리의 소스코드는 꼭 직접 배포해야 하나요? github등의 오픈소스 다운로드 링크를 표기하면 안되나요?
앞서 설명 드린 바와 같이 소스코드의 공개는 배포 형태와 동일한 형태로 공개하셔야 합니다.
만약, CD-ROM 혹은 USB를 통해 응용 프로그램을 배포(판매)하신다면 소스코드 공개 역시 물리적 매체(CD-ROM, USB 등)를 통해 공개해야 합니다.
고맙습니다.
※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.
------ 댓글 -------
답변 감사합니다.
답변해주신 내용중에,
LGPL-2.0의 경우 리버스엔지니어링의 범위가 라이브러리 링크 사용 시 라이브러리에만 국한될 수 있습니다만, LGPL-3.0의 경우 응용프로그램도 리버스엔지니어링을 제한할 수 없습니다.
이 부분에서 한가지 더 명확히 하고 싶어 다시 질문드립니다.
LGPL-3.0 라이선스 원문과 답변해주신 내용에서,
LGPL-3.0 라이브러리를 동적으로 링크하여 사용하는 응용프로그램의 경우, 라이선스 원문의 4조-d)-1)-(a)에 해당하는 것 같으며, 이 경우 오브젝트코드와 소스코드의 공개 의무가 없다고 이해했습니다.
또한 라이선스 원문에 4조 첫 문단에선 "결합 저작물 내에 포함된 라이브러리의 일부에 대한 수정 및 수정부분을 디버깅하기 위한 역공학에 제한을 두어선 안된다"라고 명시되어 있습니다.
즉, 동적 링크로 라이브러리를 사용할 경우 응용프로그램의 소스코드나 오브젝트코드를 제공할 의무가 없으며, 사용된 LGPL 라이브러리에 한해서 역공학에 제한을 두면 안된다고 이해되는데요.
반면, 답변해주신 내용에선 "응용프로그램도 리버스 엔지니어링을 제한할 수 없다"고 하셨는데, 이 부분을 조금 더 명확히 알고 싶습니다.
동적링크의 경우 응용프로그램의 소스나 오브젝트 코드를 제공하지 않아도 되지만, 소스를 난독화나 암호화같은 기법으로 리버스 엔지니어링을 제한할 수 없다는 얘기신가요?
아니면, 사용된 라이브러리의 dll 파일을 새로운 버전의 라이브러리 dll로 변경하는 것을 리버스엔지니어링의 범주안에 놓고, 이것을 제한하면 안된다는 얘기신가요?
자세한 답변 부탁드립니다. 감사합니다.
------ 댓글 -------
License 관리자
안녕하세요
OSS 관리자입니다.
문의주신 내용 답변드립니다.
동적링크의 경우 응용프로그램의 소스나 오브젝트 코드를 제공하지 않아도 되지만, 소스를 난독화나 암호화같은 기법으로 리버스 엔지니어링을 제한할 수 없다는 얘기신가요?
아니면, 사용된 라이브러리의 dll 파일을 새로운 버전의 라이브러리 dll로 변경하는 것을 리버스엔지니어링의 범주안에 놓고, 이것을 제한하면 안된다는 얘기신가요?
>> 말씀해주신 내용 중 전자의 의미가 가깝습니다. 일반적으로 LGPL 라이선스의 적용 범위는 해당 라이브러리이므로 응용프로그램에 리버스엔지니어링이 허용되지 않을 수 있지만, LGPL-3.0에서는 충분한 설치정보 제공이 필요하므로 배포 및 고지 방법, 내용에 따라 응용프로그램의 리버스엔지니어링을 제한할 수 없을 수 있습니다. 위 내용은 분쟁소지가 있을 수 있고, 판결은 법원에서 하므로 최대한 보수적으로 예방하는 것을 권장합니다.
고맙습니다
※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.
댓글 0
댓글 작성
댓글을 작성하려면 게시글 작성 시 입력한 이메일과 패스워드를 입력해주세요.