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

GPL Version 3.0 에 대해 질문입니다.

2019.04.10

안녕하세요

GPL v3.0 라이센스 관련 궁금한 내용이 있어 문의 드립니다.

저희가 개발하는 프로그램(이하 A.exe)에 2가지 오픈소스를 사용 중 입니다.

사용되는 오픈 소스의 라이선스는 두 가지 모두 GPL v3.0라고 명시되어 있고 이름은 'Win flex-bison'과 'Mingw' 입니다.

A.exe에서는 B.exe와 Mingw 내용 중 컴파일러인 g++를 호출합니다.

A.exe에서는 런타임시 커멘드 명령어로 지정된 경로의 폴더에 있는 B.exe와 g++을 호출하고 있습니다.

B.exe에는 Win flex-bison을 포함하여 개발되었습니다.

제가 궁금한 내용은 아래와 같습니다.

1. A.exe와 Mingw를 같이 배포하면 A.exe의 소스를 공개해야 하나요?

만약 배포를 같이 안 한다면 A.exe의 소스는 공개하지 않아도 되나요?

2. B.exe는 Win flex-bison을 포함하여 개발하였는데 B.exe도 GPL 3으로 감염되나요?

3. 2번에서 B.exe도 GPL 3으로 감염될 때 질문입니다.

B.exe는 Win flex-bison에서 제가 개발한 (a)파일을 빌드하여 나온 결과물인 (b)파일과 그 외 제가 개발한 소스 (c)파일로 구성되어 만들었습니다.

이럴경우 (a),(b),(c)파일 모두 소스를 공개해야 할거 같은데

이때 B.exe에서 소스 공개를 피해갈 방법이 있을까요?

예를 들면

“B.exe에서 Win flex-bison을 포함하지 않고 Win flex-bison에서 (a)를 따로 빌드하여 결과물 (b)를 만들고

나온 결과물(b)파일과 (c)로 따로 빌드하여 B.exe를 만든다면 (a)파일만 공개해도 가능하다” 등..

4. 3번에 연관지어 GPL v3 오픈소스 결과물에 대한 추가 창작물에 대한 정보가 궁금합니다.

5. B.exe가 GPL 3.0으로 감염되면 1번 질문에서의 Mingw와 동일하게 처리하나요?

6. GPL v3이라고 명시되어 있지만 오픈 소스 별로 소스를 공개하지 않아도 되는 경우도 있나요?

답변 부탁드립니다.

감사합니다.

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

OSS관리자

안녕하세요.

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

질문에 답변 드리기 앞서 공개SW에 대한 설명 드리는 것이 이해에 도움이 될 것 같습니다.

GPL은 전염성이 강한 라이선스로 표현이 됩니다. 즉, GPL의 영향을 받는 컴포넌트, 파일(라이브러리), 소스코드를 결합/연결한 프로그램에는 GPL이 적용됩니다.

그러나, GPL 라이선스 전염이 발생하지 않는 경우도 있습니다.

1) 파이프(pipes), 소켓(socket), 명령행인자(command-line argument)로 통신

GPL이 적용된 A프로그램과 그렇지 않은 B프로그램 간 파이프, 소켓, 명령행인자로 통신한다면, B프로그램에는 GPL 라이선스가 전염되지 않습니다. 위 방법으로 통신하는 경우 독립된 프로그램으로 보기 때문입니다.

2) 독립 저작물과 함께 배포

GPL이 적용된 A프로그램과 그렇지 않은 B프로그램을 함께 배포하는 경우, B 프로그램에까지 GPL 라이선스가 전염되지는 않습니다.

3) 출력물

GPL 프로그램을 실행하여 출력된 프로그램, 문서, 통계 등에는 GPL 프로그램이 적용되지 않습니다. 다만, GPL 프로그램의 소스코드 등이 포함되어 있어 파생 저작물로 볼 수 있는 경우는 예외로 합니다.

이런 배경을 바탕으로 질문에 대히야 답변 드리겠습니다.

1. A.exe와 Mingw를 같이 배포하면 A.exe의 소스를 공개해야 하나요?

A.exe가 B.exe와 Mingw의 g++를 호출할 때 커멘드 명령어(Command-line argument)로 호출하기 때문에 분리된 프로그램으로 볼 수 있습니다. 이 경우 함께 배포하더라도 A.exe의 소스코드는 공개하지 않아도 될 것입니다.

2.  B.exe는 Win flex-bison을 포함하여 개발하였는데 B.exe도 GPL 3으로 감염되나요?

B.exe에 Win flex-bison(GPL-3.0)을 포함되어 있다면, B.exe에도 GPL-3.0이 적용 될 것으로 보입니다.

3.  2번에서 B.exe도 GPL 3으로 감염될 때 질문입니다.

B.exe는 Win flex-bison에서 제가 개발한 (a)파일을 빌드하여 나온 결과물인 (b)파일과 그 외 제가 개발한 소스 (c)파일로 구성되어 만들었습니다. 이럴경우 (a),(b),(c)파일 모두 소스를 공개해야 할거 같은데 이때 B.exe에서 소스 공개를 피해갈 방법이 있을까요?

Win flex bison을 사용한 (a)파일을 빌드(컴파일)하여 결과물인 (b)파일을 만들었다면, (a)와 (b)에는 GPL-3.0이 적용됩니다.

소스코드를 공개하지 않을 수 있는 것은 (c)파일 뿐인데, (c)파일을 B.exe에 포함하지 않고 분리하여 배포하고 사용자가 직접 결합하여 사용하도록 하는 방법이 있습니다.

4.  3번에 연관지어 GPL v3 오픈소스 결과물에 대한 추가 창작물에 대한 정보가 궁금합니다.

추가 설명 부탁드리겠습니다...

5. B.exe가 GPL 3.0으로 감염되면 1번 질문에서의 Mingw와 동일하게 처리하나요?

B.exe는 GPL-3.0에 따라 전체 프로그램의 소스코드 공개 및 가정에서 사용되는 제품에 임베디드 되는 SW의 경우 설치정보도 포함하여 고객에게 제공해야 합니다. 그밖에 라이선스 고지, 사본 제공 등의 의무사항도 준수해야 합니다.

6. GPL v3이라고 명시되어 있지만 오픈 소스 별로 소스를 공개하지 않아도 되는 경우도 있나요?

GPL-3.0으로 명시되어 있다면 저작권자가 GPL-3.0의 조건으로 프로그램의 사용을 허용한 것이기 때문에 예외 없이 소스코드를 공개해야 합니다.

이상입니다.

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

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

친절한 답변 감사합니다.

B.exe파일의 GPL-3.0 감염 가능성에 대해 답변해주신 내용 토대로 궁금한 부분 다시 문의 드립니다.

제가 처음 올린 문의 내용에서

“B.exe에는 Win flex-bison을 포함하여 개발되었습니다.” 라고 표현하였는데 잘못된 표현이어서 다시 추가 설명하였습니다.

Win flex bison은 바이너리 파일이고, Win flex-bison의 소스가 포함된 것이 아니라

개발 환경인 비주얼 스튜디오에서 Win flex bison 바이너리 파일을 연결시켜 빌드용으로 사용되고 있습니다.

(비주얼 스튜디오에서 Win Flex Bison 호출 구조는 커멘드 명령 입니다.)

제가 개발한 (a)파일(GPL과 무관)을 Win flex bison로 빌드 하고 나온 결과물 (b)파일과 제가 개발한 (c)파일(GPL과 무관)을 컴파일 하여 나온 결과물이 B.exe입니다.

답변주신 내용 중

3) 출력물

GPL 프로그램을 실행하여 출력된 프로그램, 문서, 통계 등에는 GPL 프로그램이 적용되지 않습니다. 다만, GPL 프로그램의 소스코드 등이 포함되어 있어 파생 저작물로 볼 수 있는 경우는 예외로 합니다.

이라고 설명해 주셨고,

답변 내용 중 3번에서

Win flex bison을 사용한 (a)파일을 빌드(컴파일)하여 결과물인 (b)파일을 만들었다면, (a)와 (b)에는 GPL-3.0이 적용됩니다.

라고 하셨는데,

1. 위와 같이 GPL-3.0인 바이너리를 같은 프로젝트에서 커멘드 명령으로 다뤄도 (a)파일, (c)파일이 감염이 되는지 궁금하고,

2.

GPL-3.0

인 Win flex bison의 출력물인 ‘(b)파일’

‘GPL과 무관한 소스 (a),(c)’

를 통해 만들어진 B.exe는 GPL감염이 안될 거 같은데

(아래 내용을 고려하지 않았을 때의 (a),(b),(c) 파일감염 여부도 궁금합니다.)

(b)파일 상단의 로그에는 아래와 같이 출력되고 있습니다.

A Bison parser, made by GNU Bison 2.7.

Skeleton interface for Bison LALR(1) parsers in C++

Copyright (C) 2002-2012 Free Software Foundation, Inc.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program.  If not, see <

http://www.gnu.org/licenses/

>.

As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton.  Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception.

This special exception was added by the Free Software Foundation in version 2.2 of Bison.

여기서 진한 글씨로 표시된 부분에서 skeleton이 수정되지 않는다면 (b)파일은 GPL-3.0으로 감염되지 않을 거 같은데,

(여기서 skeleton은 Win Flex Bison으로 생각하여 해석했습니다.)

그렇다면 (a),(b),(c)파일로 이뤄진 B.exe는 GPL 3.0을 피해갈 수 있는지 궁금합니다.

설명에 도움되 될까하여 이미지 첨부하였습니다.

댓글 0

첫 댓글을 작성해보세요!

댓글 작성

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