상담 게시판

상담 내용
LGPL문의 입니다.
  1. 작성일 :
  2. 2016.01.09
  3. 작성자 :
  4. kimhm204
  5. 조회수 :
  6. 2883

지난번에 비슷한 문제로 질문을 했었는데 이해가 잘되지 않아 다시 질문을 합니다.

제가 QT를 이용해서 응용 프로그램을 만들어서 LGPL v3버전을 사용했다고 가정을 하였을때

1.  Qt라이브러리를 사용하여 만든 응용프로그램의 소스를 공개할 의무는 없는건가요? (Qt라이브러리의 소스는 당연히 공개합니다.) 예를 들어 제 프로젝트에 File이라는 클래스가 존재하고 이 클래스를 Qt라이브러리의 QFile의 헤더파일을 include하여 링킹을 시켰을 경우 File이라는 클래스의 소스를 공개해야 하나요?

2. 정적 링킹을 하였을 경우 소스 공개의무가 오브젝트 파일까지 있는 건가요? 즉 컴파일을 하고나서  *.cpp, *.h, *.o, *.exe파일이 있다고 하면 배포할 때 사용한 LGPL라이선스의 라이브러리의 소스하고 *.o, *.exe만 공개하면 되는건가요?

3. 표준 C++라이브러리만 사용하여 클래스 를 제작한 다음 오브젝트 파일로 만들어서 응용프로그램에 include 시킨다면 해당 클래스는 소스 공개의무에서 벗어나는 건가요?

4. 라이선스 전문을 읽어보면 개작이라는 말이 나오는데 이 개작의 뜻이 직접 라이브러리의 소스 수정하는 것을 의미하는 건가요? 그리고 이 경우 전체 응용프로그램의 소스를 공개해야되는 건가요?  예를 들어 Qt라이브러리의 QFile의 소스를 수정하면 수정한 QFile만 공개하면 되나요? 아니면 전체 응용프로그램의 소스를 공개해야 하나요?

  1. 첨부파일
답변
답변 답변일 : 2016.01.22

안녕하세요           

문의하신 내용이 LGPL 3.0 적용을 받는 Qt라이브러리를 이용해서 응용 프로그램을 만들 경우를 말씀하시는 것으로 이해하고 답변하도록 하겠습니다.

 

1. Qt 라이브러리의QFile 헤더파일을 링킹하여 사용하여 만든 응용 프로그램의 소스를 공개할 의무가 있는가?

라이브러리의 헤더파일을 링크하여 사용할 경우에는 소스 코드 공개의 의무는 없으나 오브젝트 코드를 공개해야 합니다. 오브젝트 코드 내에는 LGPL 3.0 라이선스의 적용을 받고 있는 라이브러리가 사용되고 있다는 내용의 안내 문구를 명확하게 고지해야 하며, LGPL 3.0과 GPL 3.0 라이선스 사본을 첨부해야 합니다.

 

<참고: LGPLv3>

제3조. 라이브러리 헤더 파일의 자료를 결합하는 오브젝트 코드

응용프로그램의 오브젝트 코드는 라이브러리 일부를 구성하는 헤더 파일의 자료를 결합한 형태로 작성될 수 있다. 만약 이러한 오브젝트 코드와 결합된 자료가 숫자 매개변수, 데이터 구조의 설계 형태, 접근도구, 작은 매크로, (10행 이하의) 인라인 함수, 그리고 탬플릿으로 제한되는 것이 아니라면, 그 오브젝트 코드는 다음과 같은 두 가지 조건을 충족시킨다는 조건 하에 당신이 임의로 정한 규정에 따라 컨베이 할 수 있다.

a) 오브젝트 코드 내에 라이브러리가 사용되고 있다는 사실과 라이브러리 및 라이브러리의 사용에 대해 본 라이선스가 적용된다는 내용의 안내 문구를 각 복제본에 명확하게 고지해야 한다.

b) GNU GPL의 사본 및 본 라이선스 문서를 오브젝트 코드에 첨부해야 한다.

 

* LGPL 3.0의 상단:

This License is a set of additional permissions added to version 3 of the GNU General Public License.

 

 

2. 정적 링크의 경우 소스코드 공개 의무의 범위

정적 링크는 프로그램과 결합하는 방법의 링크로서 소스코드를 제공해야 합니다. 소스코드 제공의 범위는 저작물 전체이며, 배포시에는 수정 된 사실 및 일시 (라이브러리가 추가된 사실과 일시)를 명시해야 하고, GPL 3.0과 LGPL 3.0 라이선스 사본을 포함해야 합니다. 이외에도GPL 3.0 제4조 규정들은 따라야 합니다.

 

"결합 저작물"이란 라이브러리에 응용프로그램을 결합하거나 링크로 연결하여 생성된 저작물을 의미한다.

<참고: LGPLv3>

제4조. 결합 저작물

당신은 임의로 정한 조건에 따라 결합 저작물을 컨베이할 수 있다. 단, 당신이 정한 조건들은 결합 저작물 내에 포함된 라이브러리의 일부에 대한 수정 및 그 수정 부분을 디버깅하기 위한 역공학에 대해 제한을 두어선 안되며, 다음의 조건들을 충족시켜야 한다.

(생략)

d) 다음 중 하나의 방법을 사용해야 한다:

0) 해당 소스의 컨베이 행위에 관한 GNU GPL의 제6조에 상술된 방식에 기반하여, 최소 해당 소스는 본 라이선스의 규정에 따라 컨베이하고, 해당 응용프로그램 코드는 사용자가 응용프로그램과 연결 버전의 수정된 버전을 재결합 혹은 재연결하여 수정된 결합 저작물을 생성하는 것이 가능하도록, 그리고 이에 적합한 형태로 컨베이 해야 한다.

 

<참고: GPL 3.0>

제6조. 비(非)소스 형태의 컨베이 행위

당신은 본 라이선스에 따라 컴퓨터가 인식할 수 있는 해당 소스도 함께 컨베이 한다는 조건 하에, 제4조와 제5조에 의거하여 다음과 같은 방법 중 하나로GPL 적용 저작물을 오브젝트 코드 형태로 컨베이할 수 있다. (생략)

 

 

3. 표준C++라이브러리만 사용하여 클래스를 제작한 후 오브젝트 파일로 만들어 응용 프로그램에 include 한다면 소스 코드 공개 의무가 있는지 여부

표준 C++ 라이브러리의 경우에는 라이선스가 없는 것으로 알고 있습니다. 따라서 소스 코드 공개 의무는 없어 보입니다.

 

4. 개작의 의미와 소스 코드 공개의 범위

개작(改作, rewrite)은 많은 부분을 다시 작성한다는 의미가 담겨 있는데, 'modification(수정, 변경)'를 문의하신 것으로 보고 답변 드리도록 하겠습니다. 수정은 본 라이선스의 적용을 받는 소스 코드를 변경하거나, 자신의 코드 또는 새로운 코드를 결합 하는 등의 행위를 뜻합니다. 다만 정정은 수정으로 보지 않는 것이 일반적입니다.

수정을 한 코드의 배포에 대하여LGPL 3.0에 따라 배포하거나 GPL 3.0에 따라 배포하는 방법이 있습니다. LGPL 3.0에 따른 배포는 제3조(라이브러리 헤더 파일의 자료를 결합하는 오브젝트 코드), 제4조(결합 저작물), 제5조(결합 라이브러리)의 방법이 있고, GPL 3.0의 제5조 혹은 제6조에 따라 수정된 소스의 배포를 할 수 있습니다.

예를 든 케이스 'Qt라이브러리의 QFile의 소스를 수정하면 수정한 QFile만 공개하면 되나요? 아니면 전체 응용프로그램의 소스를 공개해야 하나요?'는 소스 수정 여부보다 응용 프로그램과 라이브러리간 링크된 형식에 따라 답변이 달라질 수 있기 때문에 자세한 내용은 라이선스를 참고해주기 바랍니다.

 

<참고: LGPL 3.0>

제2조. 수정된 버전에 대한 컨베이

라이브러리의 복제본을 수정하는데 있어, 어떤 기능이 그 기능을 사용하는 응용 프로그램에 의해 제공되는 어떤 함수나 데이터를 언급할 경우 (기능이 호출될 때 전달되는 인수는 제외함) 다음과 같은 조건 하에 수정된 버전의 복제본을 컨베이 할 수 있다.

a) 본 라이선스에 따라서 컨베이 한다. 단, 응용프로그램이 함수나 데이터를 제공하지 않는 경우에도 기능이 작동하고 본래의 목적을 정상적으로 수행하도록 최선을 다해 노력해야 한다.

b) GNU GPL에 따라서 컨베이 한다. 이 경우, 본 라이선스의 추가적 허용사항을 적용하지 않는다.

 

5. 結

1. Qt 라이브러리의QFile 헤더파일을 링킹하여 사용하여 만든 응용 프로그램의 소스를 공개할 의무가 있는가?

라이브러리의 헤더파일을 링크하여 사용할 경우에는 소스 코드 공개의 의무는 없으나 오브젝트 코드를 공개해야 합니다.

 

2. 정적 링크의 경우 소스코드 공개 의무의 범위

저작물 전체의 소스코드 공개를 해야 합니다.

 

3. 표준C++라이브러리만 사용하여 클래스를 제작한 후 오브젝트 파일로 만들어 응용 프로그램에 include 한다면 소스 코드 공개 의무가 있는지 여부

소스 코드 공개 의무는 없어 보입니다.

 

4. 개작의 의미와 소스 코드 공개의 범위

- 수정은 본 라이선스의 적용을 받는 소스 코드를 변경하거나, 자신의 코드 또는 새로운 코드를 결합 하는 등의 행위를 뜻합니다.

- Qt라이브러리의 수정한 QFile의 소스코드 공개 범위는 링크 형식에 따라 달라질 수 있습니다.

 

<참고>

GPL 3.0: https://www.olis.or.kr/ossw/license/license/detail.do?lid=1072&mapcode=010068¤tPage=

LGPL 3.0: https://www.olis.or.kr/ossw/license/license/detail.do?lid=1073&mapcode=010001¤tPage=2

 

이상입니다. 

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

목록

관리자페이지
제목