2014.12.18
안녕하세요,
LGPL 2.1 6조에 의하면, LGPL Library (*.so)를 Work that used the Library link하여 Executable을 생성할때, LGPL Library의 source code를 제공할 경우, A work containing portions of the Library는 under terms of your choice로 배포할 수 있음을 명시하고 있습니다.
궁금한 것은 자체적으로 개발한 library (*.so)가 따로 존재한다고 가정하고, LGPL Library에서 이 자체개발 library를 link 및 function을 사용하도록 LGPL Library를 수정하였을때, 자체개발 library도 LGPL의 derivative work으로 보아야 하는지 여부입니다. 그렇지 않다고 생각은 하는데요, 가능하다면, LGPL 2.1의 원문 내용에 기반하여 설명 부탁 드리겠습니다. 원문에 "work that uses the Library"에 대한 조항만 있고, LGPL Library가 다른 library를 link하여 사용하는 경우에 대해서는 언급된 부분을 찾지 못해서 문의 드립니다.
감사합니다.
------ 댓글 -------
OSS
안녕하세요.
문의하신 내용에 대한 답변입니다.
우선, LGPL 제4조는 라이브러리 자체에 대한 의 무를 규정하고 있고, 제5조와 제6조는 라이브러리를 사용하여 개발한 소프트웨어에 대한 의무를 규정하고 있습니다.
라이브러리 자체에 대한 의무를 규정한 LGPL 제4조는 LGPL 라이브러리 또 는 라이브러리에 기반한 2차적 저작물을 object code나 executable form으로 배포 할 때에는 라이브러리의 the complete corresponding machine-readable source code를 일반적으로 소프트웨어 제공에 사용되는 매체를 통해 함께 제공해야 한다는 것 입니다.
다만 object code를 지정한 장소로부터 복제해 가져갈 수 있는 방식으로 배포했을 경우에는 동일 장소에서 소스코드를 복제할 수 있는 동등한 방법을 제공해야 합니다.
이때 LGPL 제1조와 제2조의 규정대로 ① 배포 시 저작권 및 보증책임 면제 조항 고지의무, ② 파일 개작 사실과 날짜 명시 의무, ③ 저작 물 전체에 대한 사용 권리를 무료로 배포할 의무를 준수하여야 합니다.
따라서, 우선 개작한 LGPL 라이브러리 소스코드는 위 4조에 따라 공개해야 합니다.
LGPL 제5 조와 제6조는 라이브러리의 어떠한 부분으로부터의 파생물도 포함하지 않지만 컴파일 또는 링크를 통해 라이브러리와 함께 작동하도록 설계된 프로그램을 ‘라이브러리를 사용하는 저작물(work that used the library)’이라 정의하고, ‘라이브러리를 사용하는 저작물과 라이브러리가 링크된 결과로 생성된 실행물은 라이브러리에 기반한 2차적 저작물(a derivative of the library)’이라고 규정하여 LGPL 제6조 에 따라 배포된다고 규정하였습니다.
말씀하신 자체개발 라이브러리는 5조와 6조에서 애기하는 work that used the library, a derivative of the library 둘 다 해당 됩니다.
따라서 해당 자체개발 라이브러리는 LGPL라이브러리의 derivative of the library입니다.
그런데, LGPL 제6조는 LGPL 제5조의 예외로서 라이브러리와 라이브러리를 사용하는 저작물을 결합 또는 링크하여 저작물을 만든 경우 라이선시가 임의로 선택한 규정에 따라 그 저작물을 배포할 수 있다고 규정하고 있습니다.
다만 라이선시가 선택한 규정은 ① 피양도자가 자신의 필요에 따라 저작물을 개작할 수 있으며 개작에 따른 디버깅을 위해 리버스엔지니어링을 허용해야 한다는 것 ② 라이브러리와 라이브러리의 사용에 LGPL이 적용된다는 것과 저작물 안에 LGPL 라이브러리가 사용된다는 사실을 담고 있는 안내 문구를 모든 복제물에 분명하게 명 시할 것 ③ 영문판 LGPL 사본을 함께 제공할 것 ④ 라이브러리에 대한 저작권 표시 및 LGPL 사본 참고할 수 있는 방법을 명시할 것 등의 조건을 준수해야 합니다.
이와 함께 static link의 경우 수정된 라이브러리를 포함한 소프트웨어가 실행될 수 있도록 링크한 소프트웨어의 object code 또는 소스코드를 제공해야 하고 (LGPL 제6조 제a항) dynamic link의 경우 ① 사용자의 컴퓨터 시스템 상에 존재하고 있는 라이브러리의 복제물을 run time에 사용하고 ②사용자가 개작한 라이브러리를 설치하였을 경우 개작된 라이브러리가 기존 라이브러리와 인터페이스 상으로 호환(interface-compatible)되는 한 적절히 작동하도록 해야 합니다(LGPL 제6 조 제b항).
Dynamic link의 경우 반드시 링크한 소프트웨어의 object code 또는 소스코드를 제공할 의무는 없습니다.
즉, 자체 개발한 library(*.so)가 LGPL 라이브러리와 static link된 경우에는 object code만 제공하면 됩니다.
감사합니다.
※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.
------ 댓글 -------
자세한 설명 감사합니다. 많은 도움이 되고 있습니다.
더불어 다음 사항에 대해 문의 드리고 싶습니다.
다음 설명해주신 것 과 같이, 자체개발 library가 LGPL library의 derivative of the library라고 하셨는데요, 6조의 exception이 이 derivative of the Library에도 적용이 가능한지 궁금합니다.
"말씀하신 자체개발 라이브러리는 5조와 6조에서 애기하는 work that used the library, a derivative of the library 둘 다 해당 됩니다.
따라서 해당 자체개발 라이브러리는 LGPL라이브러리의 derivative of the library입니다.
그런데, LGPL 제6조는 LGPL 제5조의 예외로서 라이브러리와 라이브러리를 사용하는 저작물을 결합 또는 링크하여 저작물을 만든 경우 라이선시가 임의로 선택한 규정에 따라 그 저작물을 배포할 수 있다고 규정하고 있습니다."
6조에서는 "work that uses the Library"와 LGPL Library의 combine or link로 생성된 work에 대해서만 예외 적용이 가능하다고 명시하고 있는데, 이 예외조항을
LGPL library의 derivative of the library에도 적용이 가능한지, 궁금합니다. 즉, 6조의 a)항에 따라 Library 뿐만 아니라, derivative of the library에 대해서까지도 complete corresponding machine-readable source code까지도 제공을 해야 하는 것이 아닌지 궁금합니다.
감사합니다.
------ 댓글 -------
OSS
안녕하세요.
문의하신 내용에 대한 답변입니다.
자체개발 라이브러리도 derivative of the library에 해당되기 때문에 static link의 경우 object 코드를 함께 제공해 주는 겁니다.
또한 사용된 LGPL 라이브러리의 소스코드를 개작하지 않은 경우 소스출처를 함께 제공해 주시면 됩니다.
감사합니다.
※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.
댓글 0
댓글 작성
댓글을 작성하려면 게시글 작성 시 입력한 이메일과 패스워드를 입력해주세요.