오픈소스 라이선스 별 의무사항
오픈소스 라이선스 별 의무사항
재배포하지 않는다면 자유롭게 사용 가능
먼저, 대부분의 오픈소스 라이선스는 준수해야 할 의무 사항을 ‘재배포’시 부여한다. 이 말은 오픈소스를 ‘재배포’하지 않는다면 고지, 소스 코드 공개 등의 의무사항이 발생하지 않고, 자유롭게 사용이 가능하다는 의미이다.
재배포란?
여기서 재배포란 오픈소스의 소스 코드 또는 바이너리의 복사본을 다른 사람에게 제공하는 행위를 의미한다. 앱스토어 배포, 판매, 3rd party 제공, 고객사 납품 등이 재배포에 해당한다. 사내 개발 환경 구축, 테스트 도구 등 사내 용도로만 오픈소스를 사용하는 경우는 재배포에 해당하지 않는다.
아무 조건 없이 사용 가능한 라이선스
CC0, Public Domain과 같이 아무런 제한 없이 무료로 사용할 수 있는 라이선스가 있다.
Public Domain
단, Public Domain이라고 선언된 소프트웨어라도 사례별로 법적 검토가 필요한 복잡한 문제가 내재되어 있을 수 있다. 사용하려는 코드가 Public Domain인지 확인이 필요하다면 OSPOOpen Source Program Office에 문의하라.
수월하게 사용 가능한 라이선스
Permissive License라고 분류할 수 있는 아래의 오픈소스 라이선스는 고지 의무를 요구한다. 오픈소스 라이선스의 고지 의무는 비교적 수월하게 준수할 수 있다.
- 이와 같이 고지 의무를 요구하는 Permissive 라이선스 하의 오픈소스를 포함하는 소프트웨어를 배포할 경우, “저작권 표시”, “라이선스 고지” 등의 의무를 준수해야 한다. (참고 : 저작권 표시 및 라이선스 고지)
- SK텔레콤 오픈소스 컴플라이언스 프로세스를 통해 오픈소스 고지문을 발행하고 소프트웨어 배포 시 이를 동봉하여 고지 의무를 준수할 수 있다.
주의가 필요한 라이선스
Copyleft 라이선스 유형
GPL(GNU General Public License)은 오픈소스를 재배포 시 소스 코드 공개를 요구한다. 오픈소스 자체의 소스 코드 뿐만 아니라 결합한 소스 코드까지 함께 동일한 라이선스 조건으로 공개할 것을 요구해서 Copyleft 성격의 라이선스라고도 한다. Copyleft 라이선스 유형은 오픈소스 라이선스 중에 요구하는 의무사항이 가장 많은 라이선스 유형이기 때문에 이 유형의 라이선스로 배포되는 오픈소스는 사용 시 주의가 필요하다.
자사 코드 분리 방법
대표적인 의무 사항은 이 라이선스로 배포되는 오픈소스를 제품에 포함하여 배포하려면 해당 오픈소스의 소스 코드의 공개가 필요하다. 또한 이 오픈소스와 결합하는 소스 코드까지도 동일한 오픈소스 라이선스를 적용하여 공개해야 한다.
따라서, Copyleft 라이선스 유형의 라이선스가 적용된 오픈소스는 SK텔레콤이 배포하는 제품에 포함 시 주의해야 한다.
이러한 오픈소스는 설계 단계에서부터 Build 시 자사 소프트웨어와 통합되지 않고 Runtime에도 독립된 프로세스로 동작되도록 해야 한다.
Copyleft 라이선스 유형으로 분류할 수 있는 오픈소스 라이선스는 다음과 같다.
주의 : GPL/LGPL-3.0 설치정보 제공 의무
GPL-3.0/LGPL-3.0하의 오픈소스가 설치된 사용자 제품(User Product)을 배포하기 위해서는 소스 코드 뿐만 아니라 설치 정보를 함께 제공해야 한다. 이는 기업이 준수하기 어려운 조건이기 때문에 일반적으로 GPL-3.0/LGPL-3.0의 오픈소스는 사용자 제품(User Product) 개발 시 사용할 수 없음에 주의하라.
- 사용자 제품(User Product) : 전자 기기와 같은 embedded device
- 설치 정보(Installation Information) : 사용자가 소스 코드를 빌드하여 다시 제품에 설치하기 위해 필요한 모든 정보 및 방법
같이 소스 코드 공개 의무를 요구하는 Copyleft 라이선스 하의 오픈소스를 포함하는 소프트웨어를 배포할 경우, 사용자에게 소스 코드를 직접 제공하거나, 사용자가 요청시 소스 코드를 제공하겠다는 서면 약정서를 제공해야 한다. 이에 대한 세부 절차 및 방법은 다음 가이드를 참고하라. : internal_link
Weak Copyleft 유형
Weak Copyleft 유형의 라이선스는 이와 같이 소스 코드 공개는 요구하지만, 공개 범위가 Copyleft 유형의 라이선스에 비해 약하다는 특성이 있다.
LGPL Library는 Dynamic Link하여 사용
LGPL (Lesser GPL)도 역시 재배포 시 소스 코드 공개를 요구하는 등 GPL과 동일한 조건을 요구한다. 단, Library 형태의 LGPL하의 오픈소스를 Link 형태로 결합할 경우, LGPL Library 부분만 소스 코드를 공개하면 되고, 결합하는 코드는 공개 의무가 없다는 점이 GPL과 다르다.
LGPL이 적용된 컴포넌트를 dynamically-linked 형태로 사용할 경우, 자사 코드를 공개하지 않는 방식으로 사용할 수 있다.
Weak Copyleft 라이선스 유형으로 분류할 수 있는 오픈소스 라이선스는 다음과 같다.
사용 제한 라이선스
다음의 라이선스는 SK텔레콤의 제품/서비스에 사용하기에 적합하지 않은 조건을 포함하고 있다. 따라서, 이러한 라이선스 하의 오픈소스는 사용하지 말아야 한다.
비상업용 라이선스
연구, 학습만을 위해서라고 해도 SK텔레콤 내에서 사용한다면 상업적인 활동으로 간주될 수 있다. 따라서 비상업적으로만 사용할 수 있도록 제한하는 라이선스에 따라 공개된 오픈소스는 SK텔레콤에서 사용할 수 없다. 이러한 비상업용 (Non-Commercial) 라이선스는 다음과 같다.
Network 서비스 제한 라이선스
AGPL, SSPL은 Network 서비스도 배포로 간주하여 의무사항 준수를 요구하는 조항을 포함한다. 이에 따라 Network 서비스를 제공하는 서버에 AGPL로 공개된 오픈소스가 포함되어 있다면, 소프트웨어를 배포하지 않아도, AGPL 오픈소스 뿐만 아니라 함께 링크되어 동작하는 다른 소프트웨어의 소스코드 까지 AGPL로 공개해야 하는 의무가 발생한다. 이 경우, SK텔레콤의 핵심 서버 프로그램까지도 AGPL로 공개해야 하는 위험이 있다. 따라서, SK텔레콤의 제품 및 서비스 개발 시, AGPL 및 SSPL 등의 오픈소스 라이선스가 적용된 오픈소스는 사용할 수 없다.
이러한 Network 서비스 시 조건을 부여하는 라이선스는 다음과 같다.
- AGPL (GNU Affero General Public License)
- SSPL (Server Side Public License)
광고 조항 포함 라이선스
BSD-4-Clause 라이선스는 오픈소스의 기능 / 활용을 언급하는 모든 광고에 특정 문구 (“This product includes software developed by the .")의 포함을 요구한다. 이러한 “advertising clause"의 요구사항을 준수하는 것은 쉽지 않기 때문에 사용을 제한한다.
이러한 라이선스 하의 오픈소스를 반드시 포함해야 하는 경우라면 OSPOOpen Source Program Office에 포함할 수 있는 방법을 문의하라. : Support (opensource@sktelecom.com)
이외 언급하지 않은 라이선스
위에서 분류되지 않은 라이선스가 적용된 오픈소스를 SK텔레콤의 제품에 사용하기 위해서는 사전 검토가 필요하다. OSPOOpen Source Program Office에 사용 가능 여부를 문의하라. : Support (opensource@sktelecom.com)
1 - AGPL-3.0 가이드
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정시 의무사항
- 추가/수정한 부분에 AGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 추가/수정한 부분에 AGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
- 소스 코드 제공 의무
- 바이너리에 해당하는 전체 소스 코드를 제공한다.
- AGPL-3.0은 파생저작물에 대해서도 AGPL-3.0을 적용하여 소스 코드를 공개할 것을 요구한다.
- 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 빌드 환경을 제공한다.
- 설치 정보 제공 의무 : 바이너리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.
- 원격 네트워크 상호 작용
- 원격 사용자가 수정된 버전의 소스 코드를 다운 받을 수 있도록 네트워크 서버를 제공해야 한다.
소스 코드 내 라이선스 문구
AGPL-3.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
AGPL-3.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 AGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
Case 2. 바이너리 형태로 재배포
AGPL-3.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 AGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
2-2 소스 코드 제공 의무
바이너리에 해당하는 소스 코드를 제공한다. 이때 다음 사항을 준수한다.
- AGPL-3.0은 파생저작물에 대해서도 AGPL-3.0을 적용하여 소스 코드를 공개할 것을 요구한다. 아래 내용을 참고하여 AGPL-3.0하의 오픈소스와 파생저작물의 소스 코드를 공개한다.
AGPL-3.0 파생 저작물의 범위
일반적인 AGPL-3.0의 파생 저작물의 범위는 다음과 같다.
- 수정 코드
- GPL 프로그램과 동일한 프로세스에서 동작하는 Module
- GPL 프로그램과 링크로 연결한 Library
- GPL 프로그램을 상속한 Class
다음의 경우 GPL의 파생 저작물로 보지 않는다.
- CD와 같은 매체에 함께 존재하지만 GPL프로그램과 전혀 연동하지 않는 독립 프로그램 (#MereAggregation)
- GPL 프로그램과는 별도의 프로그램으로써 Pipe, Socket, IPC, Command Line Arguments로 GPL 프로그램과 통신하는 경우
- 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 빌드 환경을 제공한다. 여기에는 다음 사항이 포함된다.
- Tool chain 정보
- 빌드 스크립트
- 빌드 방법 (README)
소스 코드 대신 서면 약정서 (Written Offer)를 제공할 수 있다. 여기에는 다음 진술이 포함되어야 한다.
- 서면 약정서는 제품 판매 후 3년간 유효하다.
- 누구에게나 제공한다.
- 비용 청구를 하지 않는다. (소스 전달을 위해 발생하는 비용 제외)
이후 외부로부터 서면 약정서를 근거로 소스 코드 제공을 요청 받을 경우, 위에서 언급한 바이너리에 해당하는 소스 코드를 제공해야 한다. 따라서 회사는 제품 판매 후 최소 3년간 소스 코드를 보관해야 한다.
2-3 설치 정보 제공 의무
바이너리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.
- User Product : 전자 기기와 같은 Embedded Device
- 설치 정보(Installation Information) : 사용자가 소스 코드를 빌드하여 다시 제품에 설치하기 위해 필요한 모든 정보 및 방법
사용 제한
대부분의 User Product는 보안상의 이유로 설치 정보를 제공하는 것이 불가능하다. 따라서, User Product로 배포하는 소프트웨어에는 AGPL-3.0의 오픈소스를 사용하지 않아야 한다.
Case 3. 원격 네트워크 상호 작용
AGPL-3.0하의 오픈소스를 (1) 수정하고, (2) 수정한 버전이 네트워크를 통해 원격의 사용자와 상호 작용하는 경우,
- 원격 사용자가 통해 수정된 버전의 소스 코드를 다운 받을 수 있도록 네트워크 서버를 제공해야 한다.
- 여기서의 소스 코드는 위의 “2-2. 소스 코드 제공 의무"에서 요구하는 범위와 동일하다.
사용 제한
따라서, 바이너리를 배포하지 않는 네트워크 서버 개발 시에도 AGPL-3.0하의 오픈소스를 사용할 경우에는 소스 코드 공개가 필요할 수 있기 때문에 가능한 사용하지 않아야 한다.
라이선스 호환성
서로 요구하는 의무사항이 상충되는 오픈소스 라이선스는 하나의 프로그램에 동시에 존재해서는 안된다. 다음은 AGPL-3.0과 충돌하는 라이선스 목록이다. AGPL-3.0 프로그램 내에 다음 라이선스 하의 오픈소스를 포함해서는 안된다. (참고 : https://www.gnu.org/licenses/license-list.html#GPLIncompatibleLicenses)
- Apache-1.1
- BSD-4-Clause
- FTL
- IJG
- OpenSSL
- Python-2.0
- zlib-acknowledgement
- XFree86-1.1
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/AGPL-3.0-only.txt
2 - Apache-2.0 가이드
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
소스 코드 내 라이선스 문구
Apache-2.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
Apache-2.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 라이선스 사본 제공
- 저작권, 특허, 상표권 등 정보를 유지한다.
- NOTICE 파일이 포함되어 있을 경우 이를 유지한다.
즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
Case 2. 바이너리 형태로 재배포
Apache-2.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 라이선스 사본 제공
- 저작권, 특허, 상표권 등 정보를 유지한다.
- NOTICE 파일이 포함되어 있을 경우 이를 유지한다.
이를 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/Apache-2.0.txt
3 - BSD-2-Clause 가이드
BSD-2-Clause 라이선스는 BSD 2-Clause “Simplified” License 라고도 불리며 소스 코드 공개를 요구하지는 않는 Permissive한 라이선스이다. BSD-3-Clause보다 간략해졌다.
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
소스 코드 내 라이선스 문구
BSD-2-Clause하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (c) <YEAR>, <OWNER>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
BSD-2-Clause하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
즉, 소스 코드 내 저작권, 라이선스 등을 그대로 유지한다.
Case 2. 바이너리 형태로 재배포
BSD-2-Clause하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
이를 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/BSD-2-Clause.txt
4 - BSD-3-Clause 가이드
BSD-3-Clause 라이선스는 BSD 3-Clause “New” or “Revised” License 라고도 불리며 소스 코드 공개를 요구하지는 않는 Permissive한 라이선스이다. BSD-4-Clause에서 문제가 된 “advertising clause” 이 삭제되었다.
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
소스 코드 내 라이선스 문구
BSD-3-Clause하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (c) <year>, <copyright holder>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the <organization> nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
BSD-3-Clause하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
즉, 소스 코드 내 저작권, 라이선스 등을 그대로 유지한다.
Case 2. 바이너리 형태로 재배포
BSD-3-Clause하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
이를 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/BSD-3-Clause.txt
5 - BSD-4-Clause 가이드
BSD-4-Clause 라이선스는 BSD “Original” or “Old” License 라고도 불리는 BSD 라이선스의 원형이로써, 소스 코드 공개를 요구하지는 않지만, 광고 조항 (advertising clause)를 포함하고 있어서 사용하는데 문제가 된다.
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- BSD-4-Clause하 오픈소스의 기능 / 활용을 언급하는 모든 광고에 다음 문구 포함
“This product includes software developed by the ."
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- BSD-4-Clause하 오픈소스의 기능 / 활용을 언급하는 모든 광고에 다음 문구 포함
“This product includes software developed by the ."
소스 코드 내 라이선스 문구
BSD-4-Clause하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (c) <year>, <copyright holder>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by the <organization>.
4. Neither the name of the <organization> nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
BSD-4-Clause하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 저작권 고지
- 라이선스 사본 제공
- 보증 부인 고지
- BSD-4-Clause하 오픈소스의 기능 / 활용을 언급하는 모든 광고에 다음 문구 포함
“This product includes software developed by the .”
즉, 소스 코드 내 저작권, 라이선스 등을 그대로 유지한다.
Case 2. 바이너리 형태로 재배포
BSD-4-Clause하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 저작권 고지
- 라이선스 사본 제공
- 보증 부인 고지BSD-4-Clause하 오픈소스의 기능 / 활용을 언급하는 모든 광고에 다음 문구 포함
“This product includes software developed by the .”
이를 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
FreeBSD, NetBSD, BSD 등의 오픈소스는 원래 BSD-4-Clause를 적용하였으나, “advertising clause” 조항의 문제를 인식하여 BSD-3-Clause, BSD-2-Clauese 등으로 라이선스를 변경하였다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/BSD-4-Clause.txt
6 - CDDL-1.0 가이드
CDDL-1.0은 Common Development and Distribution License 1.0이라고도 불리며, 파일 단위의 소스 코드 공개를 요구하는 Weak Copyleft 성격의 라이선스이다.
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정시 의무사항
- 수정한 파일에 CDDL-1.0을 적용한다. (별도로 추가한 파일에는 CDDL-1.0 적용 의무 없음)
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 수정한 파일에 CDDL-1.0을 적용한다. (별도로 추가한 파일에는 CDDL-1.0 적용 의무 없음)
- 소스 코드 제공 의무
- 바이너리 내 CDDL-1.0에 해당하는 파일의 소스 코드를 제공한다.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
CDDL-1.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 라이선스 사본
- 저작권, 특허, 상표권 등 법적 고지 유지
즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 수정한 파일에 CDDL-1.0을 적용한다. (별도로 추가한 파일에는 CDDL-1.0 적용 의무 없음)
Case 2. 바이너리 형태로 재배포
CDDL-1.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 라이선스 사본 제공
- 저작권, 특허, 상표권 등 법적 고지 유지
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 수정한 파일에 CDDL-1.0을 적용한다. (별도로 추가한 파일에는 CDDL-1.0 적용 의무 없음)
2-2 소스 코드 제공 의무
바이너리 내 CDDL-1.0에 해당하는 소스 코드 파일을 제공한다. 이때 다음 사항을 준수한다.
- CDDL-1.0은 파일 내 추가한 내용에 대해서도 CDDL-1.0을 적용하여 소스 코드를 공개할 것을 요구한다. 따라서, 원본 파일과 더불어 수정한 파일도 CDDL-1.0을 적용하여 공개한다.
오픈소스 고지문에 사용자가 소스 코드를 수령할 수 있는 방법을 안내함으로써 소스 코드 제공 의무를 준수할 수 있다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/CDDL-1.0.txt
7 - EPL-2.0가이드
EPL-2.0은 Eclipse Public License 2.0이라고도 불리며, 모듈 단위의 소스 코드 공개를 요구하는 Weak Copyleft 성격의 라이선스이다.
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정시 의무사항
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 소스 코드 제공 의무
- 바이너리 내 EPL-2.0에 해당하는 모듈의 소스 코드 파일을 제공한다.
소스 코드 내 라이선스 문구
EPL-2.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
EPL-2.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 라이선스 사본 제공
- 저작권, 특허, 상표권, 보증부인, 면책 등 법적 고지 수정 금지
즉, 소스 코드 내 명시된 라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
Case 2. 바이너리 형태로 재배포
EPL-2.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 라이선스 사본 제공
- 저작권, 특허, 상표권, 보증부인, 면책 등 법적 고지 수정 금지
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
2-2 소스 코드 제공 의무
바이너리 내 EPL-2.0에 해당하는 모듈의 소스 코드 파일을 제공한다. 이때 다음 사항을 준수한다.
- EPL-2.0은 모듈 내 추가한 내용에 대해서도 EPL-2.0을 적용하여 소스 코드를 공개할 것을 요구한다. 따라서, 원 모듈과 더불어 모듈 내 추가/수정한 내용도 EPL-2.0을 적용하여 공개한다.
오픈소스 고지문에 사용자가 소스 코드를 수령할 수 있는 방법을 안내함으로써 소스 코드 제공 의무를 준수할 수 있다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/EPL-2.0.txt
8 - GPL-2.0 가이드
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정시 의무사항
- 추가/수정한 부분에 GPL-2.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 추가/수정한 부분에 GPL-2.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
- 소스 코드 제공 의무
- 바이너리에 해당하는 전체 소스 코드를 제공한다.
- 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 빌드 환경을 제공한다.
소스 코드 내 라이선스 문구
GPL-2.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (C) yyyy name of author
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 2
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, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
GPL-2.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 GPL-2.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
Case 2. 바이너리 형태로 재배포
GPL-2.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 GPL-2.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
2-2 소스 코드 제공 의무
바이너리에 해당하는 소스 코드를 제공한다. 이때 다음 사항을 준수한다.
- GPL-2.0은 파생저작물에 대해서도 GPL-2.0을 적용하여 소스 코드를 공개할 것을 요구한다. 아래 내용을 참고하여 GPL-2.0하의 오픈소스와 파생저작물의 소스 코드를 공개한다.
GPL-2.0 파생 저작물의 범위
일반적인 GPL-2.0의 파생 저작물의 범위는 다음과 같다.
- 수정 코드
- GPL 프로그램과 동일한 프로세스에서 동작하는 Module
- GPL 프로그램과 링크로 연결한 Library
- GPL 프로그램을 상속한 Class
다음의 경우 GPL의 파생 저작물로 보지 않는다.
- CD와 같은 매체에 함께 존재하지만 GPL프로그램과 전혀 연동하지 않는 독립 프로그램 (#MereAggregation)
- GPL 프로그램과는 별도의 프로그램으로써 Pipe, Socket, IPC, Command Line Arguments로 GPL 프로그램과 통신하는 경우
- 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 빌드 환경을 제공한다. 여기에는 다음 사항이 포함된다.
- Tool chain 정보
- 빌드 스크립트
- 빌드 방법 (README)
소스 코드 대신 서면 약정서 (Written Offer)를 제공할 수 있다. 여기에는 다음 진술이 포함되어야 한다.
- 서면 약정서는 제품 판매 후 3년간 유효하다.
- 누구에게나 제공한다.
- 비용 청구를 하지 않는다. (소스 전달을 위해 발생하는 비용 제외)
이후 외부로부터 서면 약정서를 근거로 소스 코드 제공을 요청 받을 경우, 위에서 언급한 바이너리에 해당하는 소스 코드를 제공해야 한다. 따라서 회사는 제품 판매 후 최소 3년간 소스 코드를 보관해야 한다.
라이선스 호환성
서로 요구하는 의무사항이 상충되는 오픈소스 라이선스는 하나의 프로그램에 동시에 존재해서는 안된다. 다음은 GPL-2.0과 충돌하는 라이선스 목록이다. GPL-2.0 프로그램 내에 다음 라이선스 하의 오픈소스를 포함해서는 안된다. (참고 : https://www.gnu.org/licenses/license-list.html#GPLIncompatibleLicenses)
- Apache-1.1
- Apache-2.0
- BSD-4-Clause
- FTL
- IJG
- OpenSSL
- Python-2.0
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/GPL-2.0-only.txt
9 - GPL-3.0 가이드
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정시 의무사항
- 추가/수정한 부분에 GPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 추가/수정한 부분에 GPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
- 소스 코드 제공 의무
- 바이너리에 해당하는 전체 소스 코드를 제공한다.
- 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 빌드 환경을 제공한다.
- 설치 정보 제공 의무 : 바이너리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.
소스 코드 내 라이선스 문구
GPL-3.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (C) <year> <name of author>
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/>
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
GPL-3.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 GPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
Case 2. 바이너리 형태로 재배포
GPL-3.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 GPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
2-2 소스 코드 제공 의무
바이너리에 해당하는 소스 코드를 제공한다. 이때 다음 사항을 준수한다.
- GPL-3.0은 파생저작물에 대해서도 GPL-3.0을 적용하여 소스 코드를 공개할 것을 요구한다. 아래 내용을 참고하여 GPL-3.0하의 오픈소스와 파생저작물의 소스 코드를 공개한다.
GPL-3.0 파생 저작물의 범위
일반적인 GPL-3.0의 파생 저작물의 범위는 다음과 같다.
- 수정 코드
- GPL 프로그램과 동일한 프로세스에서 동작하는 Module
- GPL 프로그램과 링크로 연결한 Library
- GPL 프로그램을 상속한 Class
다음의 경우 GPL의 파생 저작물로 보지 않는다.
- CD와 같은 매체에 함께 존재하지만 GPL프로그램과 전혀 연동하지 않는 독립 프로그램 (#MereAggregation)
- GPL 프로그램과는 별도의 프로그램으로써 Pipe, Socket, IPC, Command Line Arguments로 GPL 프로그램과 통신하는 경우
- 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 빌드 환경을 제공한다. 여기에는 다음 사항이 포함된다.
- Tool chain 정보
- 빌드 스크립트
- 빌드 방법 (README)
소스 코드 대신 서면 약정서 (Written Offer)를 제공할 수 있다. 여기에는 다음 진술이 포함되어야 한다.
- 서면 약정서는 제품 판매 후 3년간 유효하다.
- 누구에게나 제공한다.
- 비용 청구를 하지 않는다. (소스 전달을 위해 발생하는 비용 제외)
이후 외부로부터 서면 약정서를 근거로 소스 코드 제공을 요청 받을 경우, 위에서 언급한 바이너리에 해당하는 소스 코드를 제공해야 한다. 따라서 회사는 제품 판매 후 최소 3년간 소스 코드를 보관해야 한다.
2-3 설치 정보 제공 의무
바이너리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.
- User Product : 전자 기기와 같은 Embedded Device
- 설치 정보(Installation Information) : 사용자가 소스 코드를 빌드하여 다시 제품에 설치하기 위해 필요한 모든 정보 및 방법
사용 제한
대부분의 User Product는 보안상의 이유로 설치 정보를 제공하는 것이 불가능하다. 따라서, User Product로 배포하는 소프트웨어에는 GPL-3.0의 오픈소스를 사용하지 않아야 한다.
라이선스 호환성
서로 요구하는 의무사항이 상충되는 오픈소스 라이선스는 하나의 프로그램에 동시에 존재해서는 안된다. 다음은 GPL-3.0과 충돌하는 라이선스 목록이다. GPL-3.0 프로그램 내에 다음 라이선스 하의 오픈소스를 포함해서는 안된다.
- Apache-1.1
- BSD-4-Clause
- FTL
- IJG
- OpenSSL
- Python-2.0
- zlib-acknowledgement
- XFree86-1.1
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/GPL-3.0-only.txt
10 - LGPL-2.1 가이드
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정시 의무사항
- 추가/수정한 부분에 LGPL-2.1을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 추가/수정한 부분에 LGPL-2.1을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
- 소스 코드 제공 의무
- 바이너리(라이브러리)에 해당하는 전체 소스 코드를 제공한다.
- 사용자가 공개된 LGPL 라이브러리의 소스 코드를 빌드하여 동일한 라이브러리를 만들 수 있는 빌드 환경을 제공한다.
소스 코드 내 라이선스 문구
LGPL-2.1하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (C) year name of author
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
LGPL-2.1하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 LGPL-2.1을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
Case 2. 바이너리(라이브러리) 형태로 재배포
LGPL-2.1하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 라이브러리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 LGPL-2.1을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
2-2 소스 코드 제공 의무
바이너리(라이브러리)에 해당하는 소스 코드를 제공한다. 이때 다음 사항을 준수한다.
- LGPL-2.1은 파생저작물에 대해서도 LGPL-2.1을 적용하여 소스 코드를 공개할 것을 요구한다. 아래 내용을 참고하여 LGPL-2.1하의 오픈소스와 파생저작물의 소스 코드를 공개한다.
LGPL-2.1 파생 저작물의 범위
일반적인 LGPL-2.1의 파생 저작물의 범위는 다음과 같다.
다음의 경우 LGPL-2.1의 파생 저작물로 보지 않는다.
- 사용자가 공개된 LGPL 라이브러리의 소스 코드를 빌드하여 동일한 라이브러리를 만들 수 있는 빌드 환경을 제공한다. 여기에는 다음 사항이 포함된다.
- Tool chain 정보
- 빌드 스크립트
- 빌드 방법 (README)
- LGPL 라이브러리를 Static Link하여 생성한 실행파일(Executable)을 배포하는 경우, 사용자가 LGPL 라이브러리를 수정하고 다시 실행파일을 생성할 수 있도록 실행파일을 구성하는 오브젝트 코드를 제공한다. (#LGPLStaticVsDynamic)
소스 코드 대신 서면 약정서 (Written Offer)를 제공할 수 있다. 여기에는 다음 진술이 포함되어야 한다.
- 서면 약정서는 제품 판매 후 3년간 유효하다.
- 누구에게나 제공한다.
- 비용 청구를 하지 않는다. (소스 전달을 위해 발생하는 비용 제외)
이후 외부로부터 서면 약정서를 근거로 소스 코드 제공을 요청 받을 경우, 위에서 언급한 바이너리에 해당하는 소스 코드를 제공해야 한다. 따라서 회사는 제품 판매 후 최소 3년간 소스 코드를 보관해야 한다.
라이선스 호환성
서로 요구하는 의무사항이 상충되는 오픈소스 라이선스는 하나의 프로그램에 동시에 존재해서는 안된다. 다음은 LGPL-2.1과 충돌하는 라이선스 목록이다. LGPL-2.1 프로그램 내에 다음 라이선스 하의 오픈소스를 포함해서는 안된다.
- Apache-1.1
- Apache-2.0
- BSD-4-Clause
- FTL
- IJG
- OpenSSL
- Python-2.0
- zlib-acknowledgement
- XFree86-1.1
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/LGPL-2.1-only.txt
11 - LGPL-3.0 가이드
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 수정시 의무사항
- 추가/수정한 부분에 LGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 추가/수정한 부분에 LGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
- 소스 코드 제공 의무
- 바이너리(라이브러리)에 해당하는 전체 소스 코드를 제공한다.
- 사용자가 공개된 LGPL 라이브러리의 소스 코드를 빌드하여 동일한 라이브러리를 만들 수 있는 빌드 환경을 제공한다.
- 설치 정보 제공 의무 : 라이브러리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.
소스 코드 내 라이선스 문구
LGPL-3.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
LGPL-3.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 LGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
Case 2. 바이너리(라이브러리) 형태로 재배포
LGPL-3.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
- 저작권 고지 제공
- 보증 부인 제공
- 라이선스 사본 제공
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 라이브러리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 추가/수정한 부분에 LGPL-3.0을 적용한다.
- 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
2-2 소스 코드 제공 의무
바이너리(라이브러리)에 해당하는 소스 코드를 제공한다. 이때 다음 사항을 준수한다.
- LGPL-3.0은 파생저작물에 대해서도 LGPL-3.0을 적용하여 소스 코드를 공개할 것을 요구한다. 아래 내용을 참고하여 LGPL-3.0하의 오픈소스와 파생저작물의 소스 코드를 공개한다.
LGPL-3.0 파생 저작물의 범위
일반적인 LGPL-3.0의 파생 저작물의 범위는 다음과 같다.
다음의 경우 LGPL-3.0의 파생 저작물로 보지 않는다.
- 사용자가 공개된 LGPL 라이브러리의 소스 코드를 빌드하여 동일한 라이브러리를 만들 수 있는 빌드 환경을 제공한다. 여기에는 다음 사항이 포함된다.
- Tool chain 정보
- 빌드 스크립트
- 빌드 방법 (README)
- LGPL 라이브러리를 Static Link하여 생성한 실행파일(Executable)을 배포하는 경우, 사용자가 LGPL 라이브러리를 수정하고 다시 실행파일을 생성할 수 있도록 실행파일을 구성하는 오브젝트 코드를 제공한다. (#LGPLStaticVsDynamic)
소스 코드 대신 서면 약정서 (Written Offer)를 제공할 수 있다. 여기에는 다음 진술이 포함되어야 한다.
- 서면 약정서는 제품 판매 후 3년간 유효하다.
- 누구에게나 제공한다.
- 비용 청구를 하지 않는다. (소스 전달을 위해 발생하는 비용 제외)
이후 외부로부터 서면 약정서를 근거로 소스 코드 제공을 요청 받을 경우, 위에서 언급한 바이너리에 해당하는 소스 코드를 제공해야 한다. 따라서 회사는 제품 판매 후 최소 3년간 소스 코드를 보관해야 한다.
2-3 설치 정보 제공 의무
라이브러리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.
- User Product : 전자 기기와 같은 Embedded Device
- 설치 정보(Installation Information) : 사용자가 소스 코드를 빌드하여 다시 제품에 설치하기 위해 필요한 모든 정보 및 방법
사용 제한
대부분의 User Product는 보안상의 이유로 설치 정보를 제공하는 것이 불가능하다. 따라서, User Product로 배포하는 소프트웨어에는 LGPL-3.0의 오픈소스를 사용하지 않아야 한다.
라이선스 호환성
서로 요구하는 의무사항이 상충되는 오픈소스 라이선스는 하나의 프로그램에 동시에 존재해서는 안된다. 다음은 LGPL-3.0과 충돌하는 라이선스 목록이다. LGPL-3.0 프로그램 내에 다음 라이선스 하의 오픈소스를 포함해서는 안된다.
- Apache-1.1
- BSD-4-Clause
- FTL
- IJG
- OpenSSL
- Python-2.0
- zlib-acknowledgement
- XFree86-1.1
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/LGPL-3.0-only.txt
12 - MIT 가이드
MIT 라이선스는 Massachusetts Institute of Technology (MIT)에서 만들었으며, 소스 코드 공개를 요구하지 않는 대표적인 Permissive한 라이선스이다.
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
소스 코드 내 라이선스 문구
MIT하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
MIT하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
즉, 소스 코드 내 저작권, 라이선스 등을 그대로 유지한다.
Case 2. 바이너리 형태로 재배포
MIT하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
이를 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/MIT.txt
13 - MPL-2.0 가이드
MPL-2.0은 Mozilla Public License 2.0이라고도 불리며, 파일 단위의 소스 코드 공개를 요구하는 Weak Copyleft 성격의 라이선스이다.
의무사항 요약
- 소스 형태로 재배포
- 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
- 바이너리 형태로 재배포
- 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
- 수정시 의무사항
- 추가/수정한 파일에 MPL-2.0을 적용한다.
- 소스 코드 제공 의무
- 바이너리 내 MPL-2.0에 해당하는 파일의 소스 코드를 제공한다.
소스 코드 내 라이선스 문구
MPL-2.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.
This Source Code Form is subject to the terms of the Mozilla Public
License, v.2.0. If a copy of the MPL was not distributed with this file,
You can obtain one at https://mozilla.org/MPL/2.0/.
사용 사례 별 의무 사항
Case 1. 소스 형태로 재배포
MPL-2.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.
1-1 고지 의무
- 라이선스 사본 제공 혹은 참조
- 법적 고지 수정 금지
즉, 소스 코드 내 명시된 라이선스 정보를 그대로 유지한 상태로 재배포한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 수정한 파일에 MPL-2.0을 적용한다. (별도로 추가한 파일에는 MPL-2.0 적용 의무 없음)
Case 2. 바이너리 형태로 재배포
MPL-2.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.
2-1 고지 의무
이상의 내용을 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
수정 시 의무 사항
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.
- 수정한 파일에 MPL-2.0을 적용한다. (별도로 추가한 파일에는 MPL-2.0 적용 의무 없음)
2-2 소스 코드 제공 의무
바이너리 내 MPL-2.0에 해당하는 소스 코드 파일을 제공한다. 이때 다음 사항을 준수한다.
- MPL-2.0은 파일 내 추가한 내용에 대해서도 MPL-2.0을 적용하여 소스 코드를 공개할 것을 요구한다. 따라서, 원본 파일과 더불어 수정한 파일도 MPL-2.0을 적용하여 공개한다.
오픈소스 고지문에 사용자가 소스 코드를 수령할 수 있는 방법을 안내함으로써 소스 코드 제공 의무를 준수할 수 있다.
참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/MPL-2.0.txt