1. 오픈소스와 라이선스의 정의
2. 주요 오픈소스 라이선스의 특징 및 의무사항
3. 소프트웨어 공개범위 및 관리필요성
4. 라이선스 양립성 및 듀얼 라이선스
5. 라이선스 분쟁사례
오픈소스 (Open Source Software)
저작권이 존재하지만 저작권자가 소스코드를 공개하여 누구나 자유롭게 사용, 복제, 배포, 수정, 활용 할 수 있는 SW를 지칭
-> 오픈소스 반대 개념은 상용SW가 아닌 (소스코드)비오픈소스
OSI의 오픈소스 정의 (10가지 기준)
1. 자유로운 배포
2. 소스코드 공개
3. 2차적 저작물 허용
4. 소스코드 수정 제한
5. 개인이나 단체에 대한 차별 금지
6. 사용 분야에 대한 제한 금지
7. 라이선스의 배포
8. 라이선스 적용상의 동일성 유지
9. 다른 라이선스의 포괄적 수용
10. 라이선스의 기술적 중립성
OSI 인증 라이선스
80여개가 인증 받음. 여기에 있어야만 오픈소스가 인정되는 것은 아님. 모든 전 세계 2500여 종은 오픈소스 라이센스 존재 가치가 있음. 여기 80여가지는 보통 개발자들이 통상 많이 쓰는 라이선스라고 생각하면 된다.
오픈소스 라이선스
SW 지식재산권
저작권(Copyright), 특허권(Patent), 상표권(Trademark Right), 영업비밀(Trade Secret)
SW 라이선스
SW 지식재산권은 저작권자만이 사용할 수 있지만 저작권자가 다른 사용자에게 일정한 조건으로 사용할 수 있는 권한을 부여할 수 있음. 이와 같은 권한을 '라이선스'라고 함.
오픈소스 SW 라이선스
오픈소스 SW 저작권자와 이용자간에 이용 방법 및 조건의 범위를 명시한 계약으로서 오픈소스SW를 이용하기 위해서는 개발자가 규정한 라이선스를 준수해야 하며, 이를 위반할 경우에는 라이선스 위반 및 저작권 침해가 발생하고, 이에 대한 책임을 지게 됨.
->
공통 준수사항
- 저작권 고지 문구 유지
- 제품명 중복 방지
- 라이선스 호환성(양립성) 준수
라이선스에 따른 준수사항
- 사용고지
- 소스코드 공개
- 무상 특허 사용 허락
오픈소스 라이선스의 개념 및 분류
오픈소스 SW와 비공개 소프트웨어의 차이
Non-Open Source Sfotware / Free & Open Source Software
리처드 스톨만의 Free Software (Free Software Foundation : FSF)
- 프로그램을 실행할 수 있는 자유
- 프로그램을 채택하고 연구할 수 있는 자유
- 프로그램을 재 배포할 수 있는 자유
- 프로그램을 개선할 수 있는 자유
에릭 레이먼드 Open Source Software
- 개발되는 방식에 초점을 주는 실용적 접근
- 산업계는 물론이고 개발자에게도 경제적인 보상을 할 수 있어야 한다고 주장
- "보는 눈만 많다면, 어떤 버그라도 쉽게 잡을 수 있다."
라이선스 분류별 의무사항
Permissive
- 자유롭게 사용할 수 있고 일반적으로 저작권, 라이선스 명, 라이선스 사본 고지 외 다른 의무사항이 없음
Weak Copyleft
- 자유롭게 사용할 수 있고 Permissive 계열의 라이선스에 추가하여 일반적으로 수정 코드에 대한 소스코드 공개의무가 있음
Strong Copyleft
- 자유롭게 사용할 수 있고 Weak Copyleft 계열의 라이선스에 추가하여 전체 소스코드 공개의무 or 기술적 보호조치의 보호금지 / 설치정보 제공의무가 있음
고지의무 : BSD, MIT 등
수정코드 공개 : MPL, EPL, CPL 등
-> Weak copyleft이다.
결합된 전체 소스코드 공개 : GPL, AGPL 등
-> Strong copyleft 이다. 장점도 있지만 단점도 있다. 영리를 목적으로 하는 기업이나 특정한 개발자 중에 소스코드 재공개가 부담스러운 개발자들에게는 제약조건이 많은 사용하기 어려운 것.
오픈소스 라이선스 주요 용어 및 개념
사용형태
복제, 수정 및 결합
사용 범위
수정 및 결합 -> 수취, 실행 only,
배포, 서비스
적용 라이선스
배포
- permissive 라이선스 계열 -> 사용, 변경사항 고지, 무상 특허권리 허용
- weak copyleft 라이선스 계열 -> 제한적 소스코드 공개
- strong copyleft 라이선스 계열 -> 전체 소스코드 공개
서비스
AGPL-3.0, SSPL-1.0 -> 전체 소스코드 공개
결국 오픈소스는 배포하는지 배포하지 않는지이다. 예를 들어 A라는 기업이 오픈소스중에서 mysql, redhat이라던지 내부의 어떤 인사관리시스템의 용도로 개발을 한다고 하면 이건 오픈소스를 가지고와서 내부에서 실행만 하고 사용만 하는 것이기 때문에 라이선스 의무사항이 발생되지 앟는다. 그렇지만 내부 개발자들이 이런 오픈소스를 가지고 홍보의 목적, 판매의 목적 등 기업의 제 3자에게 배포하게 될 경우 의무사항이 발생한다. 사용된 오픈소스가 permissive인지 ,weak인지, strong인지를 확인하셔야 한다.
주요 라이선스 의무사항
- 주요 OSS 라이선스인 GPL, LGPL, CPL, MPL 등은 OSS 코드 뿐 아니라 사용자 코드 공개의무 발생
- OSS 활용하면서 공개하기 어려운 코드를 보호하기 위해서는 적절한 라이선스 관리가 필요함
GPL (General Public License)
주요 의무사항
- 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, GPL 명시
- 소프트웨어 수정 및 링크 시 모든 코드를 GPL에 의해 공개
소스코드 공개범위
GPL 코드와 연결된 모든 코드
LGPL (Lesser General Public License)
주요 의무사항
- 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, LGPL 명시
- 소프트웨어 라이브러리 수정 및 링크 시 라이브러리 소스 코드를 LGPL에 의해 공개, 파일단위 복제 및 수정 시 GPL에 의해 공개
소스코드 공개범위
LGPL 라이브러리를 구성하는 모든 코드
리처드 스톨만이 설립한 FSF단체에서 공표한 라이센스가 GPL, LGPL이다.
GPL은 대표적인 strong copyleft이다.
LGPL은 week copyleft이다. 라이브러리 GPL이라고도 함.
MPL (Mozilla Public License)
주요 의무사항
- 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, MPL 명시
- 무상 특허권리 허용(사용자들에게 특허권리를 주장 x)
- 소스코드 수정 사용시 해당 파일을 MPL에 의해 공개
소스코드 공개범위
MPL 코드를 수정한 해당 파일
-> week copyleft이다.
EPL (Eclipse Public License)
주요 의무사항
- 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, EPL 명시
- 무상 특허권리 허용(사용자들에게 특허권리를 주장 x)
- 소스코드 수정 사용시 해당 모듈을 EPL에 의해 공개
소스코드 공개 범위
EPL 코드를 수정한 해당 모듈
-> week copyleft이다.
GPL 2.0
오프젝트 코드 or 실행물 형태 (a work based on the program) -> 복제 및 배포 (copy and distribute) ->
라이선스 의무사항 발생
소스코드 공개
- 실행물에 포함된 모든 모듈들의 소스코드(the complete corresponding machine-readable source code), 인터페이스 정의 파일전체, 실행물의 컴파일과 설치를 제어하는데 사용된 스크립트 전부를 GPL 2.0으로 공개, 실행물이 실행되는 운영체제의 주요부분과 구성요소들은 예외
- 소프트웨어 교환을 위해 일반적으로 사용되는 매체(on a medium customarily used for software interchange)
기타
- 저작권고지, 보증부인, 라이선스 사본 제공
- 수정사실과 날짜 파일에 명기
- 법원의 판결, 특허침해 등에 의해 라이선스 조건을 준수할 수 없는 경우, GPL에 의한 배포 불가능
Written Offer 제공
최소 3년간 유효한 소스코드 제공 약정서 (a written offer, valid for at least three years)
-> 소스코드가 오브젝트 코드와 함께 복제되도록 설정하지 않은 경우
목적 코드나 실행물을 지정한 장소로부터 복제해 갈 수 있게 하는 방식으로 배포할 경우, 동일한 장소로부터 원시 코드를 복제할 수 있는 동등한 접근 방법을 제공 (offering equivalent access to copy the source code from the same place)
GPL 2.0은 가장 많이 사용되는 오픈소스 라이선스 이기도 하고 가장 수많은 분쟁 사례 중 하나이다. 90년대 초반에 발표된 라이선스이다.
예를 들어 온라인 전용으로 배포되는 소프트웨어일 경우에 소스코드를 온라인으로 받을 수 있도록 제공하고 동일한 장소가 아니더라도 오브젝트 코드 또한 다른 사이트에 링크를 걸어 거기서 다운로드 받을 수 있게 동등한 접근 방법을 제공한다면 함께 배포하지 않는다 하더라도 인정할 수 있음. 반면에 오프라인으로 판매되는 제품인데 인베디드 제품 예로 tv에 내장되어 있는 소스코드라면 오프라인으로만 판매가 되는 tv라면 반드시 오브젝트 코드도 오프라인으로 같이 배포해야 한다. 소스코드 바이너리는 오프라인으로 배포하고 소스코드를 온라인으로 배포하면 이건 동등한 접근 방법이 아니기 때문에 이것은 같이 배포해야하는 의무사항을 위반하게 되는 케이스이다.
그래서 배포함에 있어 여려움이 있기 때문에 소스코드를 직접 공개하지 않는다 하더라도 최소 3년간 소스코드를 제공하겠다는 약정서를 포함한 경우에는 실제 소스코드를 배포하지 않는다 하더라도 약정서에 의해 공개행위로 간주한다는 것이다. 국내 많은 가전이나 자동차업체 등 하드웨어를 공급하는 기업들은 하드웨어와 소스코드를 함께 배포하기 어렵기 때문에 이러한 하드웨어에 포함된 메뉴얼에 어떤 오픈소스가 사용되었습니다라고 고지하고 만약에 소스코드 요청 시 제공하겠다는 것을 명시한다. 이런 오픈소스를 다운받을 수 있는 전용 사이트를 통해서 다운로드 받게 하거나 그게 여의치 않은 사용자에게는 cd나 저장매체를 우편으로 배달해주는 서비스를 같이 제공하고 있다.
GPL 3.0
오프젝트 코드 or 실행물 형태 (a work based on the program) -> 복제 및 배포 (copy and distribute) ->
라이선스 의무사항 발생
소스코드 공개
- 실행물에 포함된 모든 모듈들의 소스코드(the complete corresponding machine-readable source code), 인터페이스 정의 파일, 저작물의 서브프로그램과 다른 부분들 사이의 제어 흐름이나 밀접한 데이터 통신 등을 통해 저작물이 특별히 필요로 하는, 동적 링크된 하위 프로그램과 공유 라이브러리의 소스코드를 포함
- 소프트웨어 교환을 위해 일반적으로 사용되는 매체(on a medium customarily used for software interchange)
기타
- 저작권고지, 보증부인, 라이선스 사본 제공
- 수정사실과 날짜 파일에 명기
- 법원의 판결, 특허침해 등에 의해 라이선스 조건을 준수할 수 없는 경우, GPL에 의한 배포 불가능
- 기술적 보호조치의 보호 금지
- 사용자 제품에 대한 설치정보 제공(수정된 버전을 설치, 실행하기 위한 모든 방법과 절차, 인증키 및 기타 필요한 정보)
- 추가적인 허용사항/제약 사항 부가 가능
- 차별적 특허라이선스 계약 체결 금지
- Affero GPL가 결합하거나 연결하여 저작물을 만들 수 있도록 허용
Written Offer 제공
최소 3년간 유효한 소스코드 제공 약정서 (a written offer, valid for at least three years)
-> 소스코드가 오브젝트 코드와 함께 복제되도록 설정하지 않은 경우
목적 코드나 실행물을 지정한 장소로부터 복제해 갈 수 있게 하는 방식으로 배포할 경우, 동일한 장소로부터 원시 코드를 복제할 수 있는 동등한 접근 방법을 제공 (offering equivalent access to copy the source code from the same place)
2000년대 초반에 GPL 3.0 다시 공표됨. 공표된 이유는 하나는 임베디드 소프트웨어가 확장되면서 GPL 2.0의 시대는 소프트웨어 그 자체였는데 이게 장비에 탑제되면서 사용자들이 장비에 대한 접근에 대한 이슈가 발생했다. 예전에는 소스코드 공개하면 다시 컴파일해서 작동되는지 확인했는데 이제는 하드웨어에 탑제되어서 하드웨어를 판매하는데 일반 사용자들은 소스코드를 공개했다하더라도 그걸 장비에 다시 탑제할 권한이 없는한 무용지물이라는 것이다. 그래서 이런 임베디드 소프트웨어의 확대가 탄생 배경이다. 또 하나는 라이선스 의무사항에 이행조건은 배포시점에 발생한다고 했다. 인터넷이 발전되고 하면서 오픈소스라고 하는 것이 직접 배포하지 않고 오픈소스를 기반으로 시스템을 구축하고 일반 사용자들에게는 서비스만 제공하는 것이다. 뱅킹 서비스 포털 서비스 등 이런 오픈소스 저작물을 만들고 서비스를 제공함에도 불구하고 배포되지 않기 때문에 라이선스 의무사항이 발생되지 않았다는 것 때문에 공포됨.
GPL 2.0 / GPL 3/0의 차이점
- 배포(distribution)를 컨베이(convey)라는 용어로 대체
- 복제, 수정, 배포행위 등을 포함하는 프로퍼게이트(propagate, 전파)로 확대 적용
- 해당 소스(corresponding source)에 인터페이스 정의 파일, 저작물의 서브프로그램과 다른 부분들 사이의 제어 흐름이나 밀접한 데이터 통신 등을 통해 저작물이 특별히 필요로 하는 동적 링크된 하위 프로그램과 공유 라이브러리의 소스코드 전체
- 기술적 보호조치의 보호에 관한 법적 권리 포기(3조)
- 사용자제품에 대한 설치정보의 제공. "설치 정보"란 해당 소스의 수정본으로부터 발생한 사용자 제품 내의 저작물의 수정된 버전을 설치하고 실행하기 위한 모든 방법과 절차, 인증키, 기타 필요한 정보를 말함(제6조)
- 추가적인 허용사항 또는 제약사항을 부가하는 것을 가능하도록 함(제7조)
- 차별적인 특허라이선스 계약체결의 금지(제11조)
- Affero GPL과 결합하거나 연결하여 하나의 저작물을 만들 수 있도록 허용(제13조)
LGPL 2.1
LGPL 라이브러리 소스코드 -> 라이브러리 소스코드 수정(라이브러리에 기반한 저작물, a work based on the Library) -> 복제 및 배포(copy, distribute)
라이선스 의무사항 발생
소스코드 공개
- 라이브러리에 기반한 저작물 : 라이브러리의 전부 또는 일부를 원본 그대로 혹은 수정된 상태 및 다른 언어로 직접 번역된 상태로 포함하는 저작물
- 라이브러리에 대한 완전한 소스코드
- 라이브러리에 대한 완전한 소스 코드란 라이브러리에 포함된 모든 모듈들의 소스코드 및 이와 관련된 모든 인터페이스 정의 파일, 그리고 라이브러리의 컴파일과 설치를 제어하는데 사용된 모든 스크립트를 의미
기타
- 원본 / 파생저작물 LGPL or GPL로 배포
- 수정사실과 날짜 파일에 명기
- 라이브러리 사용만을 허용 (기타 GPL 적용)
- 역분석(Reverse Engineering) 권한 허용
- 사용자가 라이브러리를 수정하여 사용할 수 있도록 오브젝트 코드 or 공유 라이브러리 제공
- 배포 시 LGPL 라이브러리 사용 명시
- 저작권고지, 보증부인, 라이선스 사본 제공
소스코드가 오브젝트 코드와 함께 복제되도록 설정하지 않은 경우 : GPL과 동일
Written Offer 제공
최소 3년간 유효한 소스코드 제공 약정서(a written offer, valid for at least three years)
단, 라이브러리 단순 링크 (라이브러리를 사용하는 저작물, work that uses the Library) -> 복제 및 배포(copy, distribute)
(의 경우 소스코드 공개 의무사항은 발생하지 않고 단순 고지만 하면 됨)
기타
- 라이브러리 사용만을 허용 (기타 GPL 적용)
- 역분석(Reverse Engineering) 권한 허용
- 사용자가 라이브러리를 수정하여 사용할 수 있도록 오브젝트 코드 or 공유 라이브러리 제공
- 배포 시 LGPL 라이브러리 사용 명시
- 저작권고지, 보증부인, 라이선스 사본 제공
LGPL 3.0
LGPL 라이브러리 소스코드 -> 라이브러리 소스코드 수정(라이브러리에 기반한 저작물, a work based on the Library) -> 복제 및 배포(copy, distribute)
라이선스 의무사항 발생
소스코드 공개
- 라이브러리에 기반한 저작물 : 라이브러리의 전부 또는 일부를 원본 그대로 혹은 수정된 상태 및 다른 언어로 직접 번역된 상태로 포함하는 저작물
- 라이브러리에 대한 완전한 소스코드
- 라이브러리에 대한 완전한 소스 코드란 라이브러리에 포함된 모든 모듈들의 소스코드 및 해당 소스(corresponding source)에 인터페이스 정의 파일, 저작물의 서브프로그램과 다른 부분들 사이에 제어 흐름이나 밀접한 데이터 통신 등을 통해 저작물이 특별히 필요로 하는 동적 링크된 하위 프로그램과 공유 라이브러리의 소스코드 전체
기타
- 기술적 보호조치의 보호에 관한 법적 관리 포기(3조)
- 사용자 제품에 대한 설치제공(수정된 버전을 설치, 실행하기 위한 모든 방법과 절차, 인증키 및 기타 필요한 정보(6조)
- 추가적인 허용사항 또는 저약사항을 부가하는 것을 가능하도록 함(7조)
- 차별적인 특허라이선스 계약체결의 금지(11조)
- Affero GPL과 결합하거나 연결하여 하나의 저작물을 만들 수 있도록 허용(13조)
- 수정사실과 날짜 파일에 명기
- 라이브러리 사용만을 허용 (기타 GPL 적용)
- 역분석(Reverse Engineering) 권한 허용
- 사용자가 라이브러리를 수정하여 사용할 수 있도록 오브젝트 코드 or 공유 라이브러리 제공
- 배포 시 LGPL 라이브러리 사용 명시
- 저작권고지, 보증부인, 라이선스 사본 제공
Written Offer 제공
최소 3년간 유효한 소스코드 제공 약정서(a written offer, valid for at least three years)
단, 라이브러리 단순 링크 (라이브러리를 사용하는 저작물, work that uses the Library) -> 복제 및 배포(copy, distribute)
(의 경우 소스코드 공개 의무사항은 발생하지 않고 단순 고지만 하면 됨)
LGPL 2.1 / LGPL 3.0 차이점
- 배포(distribution)를 컨베이(convey)라는 용어로 대체
- '해당 소스(corresponding source)에 인터페이스 정의 파일, 저작물의 서브프로그램과 다른 부분들 사이의 제어 흐름이나 밀접한 데이터 통신 등을 통해 저작물이 필요로 하는 동적 링크된 하위 프로그램과 공유 라이브러리의 소스코드 전체
- 사용자제품에 대한 설치정보의 제공. "설치 정보"란 해당 소스의 수정본으로부터 발생한 사용자 제품 내의 저작물의 수정된 버전을 설치하고 실행하기 위한 모든 방법과 절차, 인증키, 기타 필요한 정보를 말함(제6조)
- 추가적인 허용사항 또는 제약사항을 부가하는 것을 가능하도록 함(제7조)
- 차별적인 특허라이선스 계약체결의 금지(제11조)
- Affero GPL과 결합하거나 연결하여 하나의 저작물을 만들 수 있도록 허용(제13조)
- 프로그램을 양도 받는 모든 이들에게 프로그램과 함께 GPL 및 LGPL 라이선스 사본 제공
MPL 1.1 / 2.0
MPL 1.1
오브젝트 코드 or 실행물 형태 ( a work based on the program) -> 복제 및 배포 (copy, ddistribute)
라이선스 의무사항 발생
소스코드 공개
- 커버되는 코드 (covered code)
- "커버되는 코드"는 "원 코드나 수정물, 또는 원 코드와 수정물의 결합물을 의미하며, 각각의 경우에 코드의 일부분을 포함함"으로 정의 (1조 3항)
- "수정물(Modifications)"은 일련의 파일로 릴리즈 되는 경우 "(1) 원 코드나 선행 수정물을 포함하는 파일의 내용에 추가되거나 삭제된 코드 및 (2) 원 코드나 선행 수정물의 일부분을 포함하는 새로운 파일"을 의미(1조9항)
- MPL 1.1 라이선스 하에서 배포되는 원 코드(또는 원 코드로부터 수정된 선행 수정물)와 무관하게 작성된 별도의 파일들은 "커버되는 코드"에 포함되지 않음에 따라서 MPL 1.1 제3조 제6항의 소스코드 공개 규정이 적용되지 않음.
기타
- "커버되는 코드"의 소스코드는 MPL 1.1 또는 그 후속 버전에 의해서만(only)배포될 수 있다고 규정(3조 1항)
- 무상 특허권리 허용
- 특허소송 제기 시 60일 이내에 관련소송을 철회하거나 원개발자 등에게 라이선스 사용에 따른 정당한 로열티를 지급하지 않는 경우에 해당 라이선스에서 부여한 특허권 및 저작권리가 종료
MPL 2.0 부터 라이선스 호환가능
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions a those licenses, 3.3, Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice
무상 특허권리가 만들어진 배경은 오픈소스가 독점적인 특허권리를 취득함에 있어 독점화 되는 것을 예방하기 위해서 필요한 라이선스. 하나는 저작물을 무료로 권리를 주기 위해서 두번째는 자신의 특허 권리를 사용자들이 무상으로 사용하도록 허용하기 위해서 MPL 1.1로 공개. 이렇게 공개된 저작물을 제3의 사용자가 자신의 저작물과 결합해서 재공개할 수 있다. 이렇게 재공개할 경우 제 3자의 저작물 또한 MPL 1.1과 동일한 조건으로 공개를 허용한다. 그리고 그 제 3자또한 무상으로 사용자들에게 제공해야한다. 그럼에도 불구하고 재공개함에 있어 독점적인 특허권리를 주장하기 위해 특허권리 소송을 한다면 보복조치로 제 3자에게 부여했던 저작권, 특허권을 종료시키는 보복조건을 부여하는 것이다.
MPL 1.1부터는 동일한 조건으로만 허용하기 때문에 호환성에 여러 문제가 발생시켰다. 반면에 2.0부터는 여러가지 GPL이라던지 다른 라이센스로 공개를 허용하고 있고 더 큰 저작물을 만들 경우에는 자신의 선택에 따라 라이선스를 선택할 수 있도록 함.
EPL 1.0
오브젝트 코드 or 실행물 형태 (a work based on the program) -> 복제 및 배포 (copy, distribute)
-> 라이선스 의무사항 발생
소스코드 공개
- 사용자로 하여금 본 프로그램의 변경된 부분에 대한 공개를 요구
- 프로그램 추가 부분에 있어서 사용자 자신의 라이선스를 가진 개별 소프트웨어 모듈은 포함시키지 않고 있음에 따라 변경된 코드를 포함하는 모듈단위의 소스코드 공개를 요구
기타
- 요구조건에 있어 프로그램이 소스코드 형태로 제공될 경우 반드시 본 라이선스에 따라 이용이 가능해야 함을 명시(3조)
- 무상 특허권리 허용(2조)
- 특허소송 제기시 해당 소송이 제기된 날에 사용자에게 주어진 특허권리가 종료(라이선스 사용권리는 유지) (2조)
Apache 2.0
오브젝트 코드 or 실행물 형태, 소스코드 -> 배포(distribute)
-> 라이선스 의무사항 발생
고지의무
- 수정된 파일에 대해 수정사항을 표시한 안내문구 첨부
- "저작권, 특허, 상표, attribution에 대한 고지사항을 소스코드 또는 "NOTICE" 파일 등에 포함
- "수정물(Modifications)"은 일련의 파일로 릴리즈 되는 경우 "(1) 원 코드나 선행 수정물을 포함하는 파일의 내용에 추가되거나 삭제된 코드 및 (2) 원 코드나 선행 수정물의 일부분을 포함하는 새로운 파일"을 의미(1조9항)
기타
- 수취인에게 라이선스 사본 제공
- 최초개발자 등을 위해 보증을 면제
- 무상 특허권리 허용(3조)
- 특허소송(교차청구나 반소 포함)을 하는 경우 해당 라이선스에서 부여한 특허 라이선스 권리가 소송접수일에 종료되는 것으로 규정(3조)
Apahce v2.0에 따라 이용 가능한 "저작물" 및 그에 대한 "파생 저작물"과 분리 가능하거나(separable from) 또는 그 인터페이스에 단순 링크하는(merely link) 저작물은 "파생 저작물"에 포함되지 않고, Apache v2.0의 요구사항을 적용할 필요 없음(1항)
대표적인 permissive 라이선스이다. 일반적으로 수 많은 대형 프로젝트들이 apache 2.0을 채택하고 있다. 그럼에도 불구하고 무상 특허권리 조항이 있다. 가장 중요하게 생각하는 것이 고지의무이다. 소스코드는 공개하지 않아도 되나 누구든지 알 수 있게 고지해야한다.
MIT
원 저작자의 법률상 책임을 부담하지 않는다는 내용만으로 된 라이선스 -> 배포(distribute)
라이선스 의무사항 발생
고지의무
- 원저작자의 법률상 책임을 부여하지 않는다는 라이선스 문구를 표시
- 누구나 상업적 사용을 포함한 어떠한 목적으로 든지 사용할 수 있고 제3자에게도 자유로이 배포할 수 있음
- 소스코드를 용도에 따라 자유로이 수정할 수 있음
기타
- 보증의 부인 책임의 제한
대표적인 permissive 라이선스이다.
BSD 2-claues 'Simplified' License
원 저작자의 법률상 책임을 부담하지 않는다는 내용만으로 된 라이선스 -> 배포(distribute)
라이선스 의무사항 발생
고지의무
- 저작권 및 라이선스 사용 고지
기타
- 보증의 부인 책임의 제한
BSD 3-clause 'New' or Revised' License
라이선스 의무사항 발생
고지의무
- 저작권 및 라이선스 사용 고지
- 제품에 대한 보증이나 홍보에 최초개발자나 기여자 이름을 사용하지 못함
기타
- 보증의 부인 책임의 제한
- 저작권자의 상표권 사용금지
BSD 4-clause 'Original' or 'Old' License
라이선스 의무사항 발생
고지의무
- BSD-3 clause 라이선스의 원형
- 저작권 및 라이선스 사용 고지
- BSD 소프트웨어 사용 (파생물 포함)을 광고할 때에는 광고에 저작권자 명시
기타
- 보증의 부인 책임의 제한
- 저작권자의 상표권 사용금지
대표적인 Permissive 라이선스이다.
Ms-PL
Microsoft Permissive License에서 현재의 이름으로 변경 -> 배포 (distribute)
라이선스 의무사항 발생
무상 특허 허용
- 무상 특허 사용 허용(2조 8항)
- 특허 보복 조항(3조 8항)
- 저작자/기여자의 이름이나 로고, 상표 등을 사용할 수 없음
- 배포 시 모든 저작권과 특허, 상표 및 귀속 고지를 유지(3조 C항)
- 소스코드 배포 시 라이선스 사본 포함
기타
- 보증의 부인 책임의 제한
- 컴파일된 형식이나 오브젝트 코드 형식으로 배포하는 경우 본 라이선스를 준수하는 라이선스에 의해서 배포
저작권 표시 의무와 오픈소스 고지
저작권 표시 의무
일반 저작물
- 저작권 표시의무는 저작물에 대하여 일반적으로 행해지는 것으로서 오픈 소스에만 적용되는 것은 아님.
- 일반 저작물의 경우에도 상대방에게 저작권이 있음을 알림으로 해서 그 침해 시 고의적 침해임을 알리게 하여 손해배상의 범위를 확대시키는 기능을 함.
오픈소스 고지
- 일반 저작권 표시 이외에 오픈 소스의 저작자를 알림으로써 사용자에 대한 사용권리를 인지시키고 질문 사항이 있을 경우 질문할 사람을 특정시키는 기능이 있으며 오픈 소스에 있어서는 이 기능이 가장 중요한 기능
- 또한, 저작자 표시 문구가 해당 부분 소스코드의 라이선스 변경 요청을 할 경우에도 필요함.
- 오픈 소스 사용 고지 의무는 대부분의 오픈 소스 라이선스에서 의무사항으로 규정(간략한 내용, 저작권 및 라이선스 정보제공)
- 만일 이 라이선스 문구가 없는 코드의 경우에는 사용이 불가하다는 암묵적 정보를 주게 됨.
고지의무와 이행방법
File Scope Approach
- Notice -> File 1
- Notice -> File 2
- Notice -> File 3
개별 파일 헤더라인에 다 notice 하는 것
Centralized Approach
- Notice -> AUTHORS or COPYING, LICENSE
- File 1, File 2, File 3
개별 파일 헤더라인에는 생략하고 종합적으로 전체 copyright를 notice 한다.
Hybrid Approach
- Notice -> AUTHORS or COPYING, LICENSE
- Notice -> File 1
- Notice -> File 2
- Notice -> File 3
둘 다 함.
- GPL에는 GPL 라이선스가 적용되지 않는 많은 서브 프로그램들이 존재하지만 GPL의 라이선스 조건에 따라 전체 프로그램은 GPL의 적용을 받게 됨.
- 이 경우에는 GPL이 아닌 라이브러리나 클래스 들이 다른 프로젝트에 재사용될 수도 있기 때문에 이런 경우에는 중앙집중적 방식("centralized" approach)을 통해 프로젝트 최상위에 AUTHORS or COPYRIGHT 파일을 생성하고 전체 파일에 사용된 저작권 및 라이선스를 종합 고지하고 개별 파일에도 저작권 문구와 라이선스 고지를 권장함
코드제공 약정서(Written Offer 예)
코드 공개의무사항이 발생되는 오픈소스 라이선스 중 GPL, AGPL 계열의 경우 코드제공 약정서를 허용하고 있다. 코드 공개방법으로 코드제공 약정서를 선택하는 경우, 제3자 누구에게나 소스 배포의 물리적 실행에 필요한 최소한의 비용만을 받고 컴퓨터로 인식할 수 있는 완전한 형태의 해당 소스 코드 복사본을 제공한다는 내용의 최소한 3년 이상 유효한 약정서를 함께 제공해야 한다. 이 소스 코드는 제1조와 제2조의 규정에 따라 배포되어야 하며, 소프트웨어 교환을 위해 일반적으로 사용되는 매체를 통해 제공되어야 한다. 코드제공 약정서의 예는 다음과 같다.
EX. ~~~~~~~~~~
GPL Compliance Division
Our Comapy
Any Town, US 99999
Please write "source for producy Y" in the memo line of your payment.
You may also find a copy of the source at
http://www.example.com/sources/Y/./
This offer is valid to anyone in receipt of this information
소스코드 공개범위
- Case 1. 경우에 따라 해당 오픈소스의 소스 코드만 공개 혹은 고지 하거나
- Case 2. 해당 오픈소스의 소스 코드를 수정 또는 추가한 부분까지 공개하거나
- Case 3. 해당 오픈소스와 링크된 모든 사용자 코드를 공개하거나
소스코드 공개 케이스
- Case 1. OSS 원본 소스코드 공개 혹은 고지 (Permissive)
- Case 2. OSS 원본 소스코드 + 소스코드 추가 및 수정 부분 공개 (Weak Copyleft)
- Case 3. OSS 원본 소스코드 + 소스코드 추가 및 수정 부분 + OSS와 링크된 사용자 소스코드 공개 (Copyleft)
GPL 공개범위
- 원프로그램으로부터 파생된 것이 아닌 별도의 독립 저작물로 인정될 만한 상당한 이유가 있을 경우에는 해당 저작물의 개별적인 배포에는 본 허가서의 규정들이 적용되지 않음.
- 다른 저작물과 함께 단순히 저장하거나 배포할 목적으로 동일한 매체에 모아 놓은 집합물의 경우에는, 원프로그램으로부터 파생되지 않은 다른 저작물에는 본 허가서의 규정들이 적용되지 않음.
- GPL v2 License with system exceptions(https://www.kernel.org/pub/linux/kernel/COPYING)
- 수정한 내용에 대한 소스 공개 의무 발생, SW를 수정하거나 새로운 SW를 링크시키는 경우 하나의 프로세스로 동작하는 전체 프로그램의 소스 코드 공개(동일한 실행 파일에 포함되는 경우, 공유주소영역(Shared address space)에서 링크되어 실행되는 경우)
- 소스 코드 공개 예외사항
-> 리눅스를 기반으로 개발된 Application, 커널 모듈 형태로 작성된 Loadable Device Driver 등에 의한 정상적인 리눅스 system call을 사용하는 경우
-> Class Path Exception인 경우,
-> 2개의 프로그램이 파이프(pipe), 소켓(socket), command line arguments 형태로 통신하는 경우
GPL(함수 호출) / GPL (라이브러리) / GPL (파일 사용) / GPL (...) --> 사용자 메인 프로그램
- 동일한 실행파일에 포함
- 공유주소영역에서 링크되어 실행
= GPL과 동일조건으로 소스코드 공개
사용자 메인 프로그램 <--> GPL(Pipe, Class Path, RPC, RMI, SOAP, HTTP, Normal System Call)
= 사용자 코드 비공개
다양한 오픈소스 유입경로
다양한 오픈소스의 유입경로로 인해 오픈소스 가시화 어려움
1. 외주개발에서 사용된 오픈소스
2. 서드파티 라이브러리에 포함된 오픈소스
3. 상용 소프트웨어에 포함된 오픈소스
4. 개발자가 외부 레포지토리에서 다운로드한 오픈소스
5. 정확한 출처 없이 내부에서 재사용되는 오픈소스
만약에 협력업체와 제조사가 라이선스를 모를 경우 결론적으로 둘다 라이선스 위반임
라이선스 위반 모니터링 생태계
GPL 공개 소프트웨어 -> 협력/외주업체 + 제조사 = 수정 및 링크
- 오픈소스 사용, 저작권, 보증부인 등 기타 고지의무
- GPL 라이선스 사본
- 소스 코드 공개 등
1. 납품/출시
2. 구매 및 사용 (고객 or 경쟁사)
3. 구매 및 binary 역 컴파일로 소스코드 분석
4. GPL 라이선스 위반 의심 이슈화 및 메일 전송
5. 시정조치 요구, 위반 시 라이선스 사용료 및 코드공개, 재발방지 시행방안 요구
6. 해당 기업에서 응대 거부, 부인 or 시정조치 미흡시 법원에 제소
7. 법원
라이선스 관리 및 위반 감시 단체
- FSF(www.fsf.org)
- gpl-violations.org(www.gpl-violations.org)
- SFLC(www.softwarefreedom.org)
- 기타 오픈소스 커뮤니티
-> 한미 FTA(친고죄 폐지)
-> 한 EU FTA (법률시장 개방)
오픈소스 관리 국제표준 Open Chain
ISO/IEC PRF 5230
ISO/IEC DIS 18974
국가 사이버 보안 개선을 위한 미 연방 행정명령 14028
네트워크, 사이버 문제에 대한 미국 정부와 민간 부문 간의 정보 공유 개선, 사건 발생시 대응 능력 강화를 통한 사이버 보안 방어 현대화를 목적으로 국가 사이버 보안 개선을 위한 행정명령 발표
Executive Order 14028 of May 12, 2021
데이터필드
추적해야 하는 각 구성 요소에 대한 기준 정보를 문서화한다. 공급자, 구성 요소 이름, 구성 요소 버전, 기타 고유 식별자, 종속 관계, SBOM 데이터 작성자 및 타임스탬프
자동화지원
자동 생성 및 기계 가독성을 통해 자동화를 지원하여 소프트웨어 ~~ 전반에 걸쳐 확장할 수 있도록 한다.
SBOM을 생성하고 사용하는데 사용되는 데이터 형식 : SPDX, ~~~~ 및 SWID 태그
관행 및 프로세스
빈도, 깊이, 알려지지 않은 취약점 인지, 배포 및 전달, 액세스 제어, ~~ 을 포함한 SBOM 요청, 생성 및 사용 작업을 정의한다.
2022년 TTA SBOM 한국 단체 표준 제정(15가지 속성)
구분 (Baseline)
SBOM 검증 도구 / 공급자 / 저작권자 / 콤포넌트 / 버전 / 고유식별자 / 콤포넌트 해쉬 / 라이선스 명 / 라이선스 결합형태 / 보안취약점 / 관계성 / 릴리즈 날짜 / CWE / CVE ID / CVSS Base Score / CVSS Severity
듀얼 라이선스
라이선스 양립성(호환성)
- 라이선스 양립성(호환성, license compatibility)은 복수의 저작물에 적용된 상이한 라이선스가 새로운 저작물을 만들기 위하여 해당 저작물들의 소스 코드나 내용물을 결합시키는 것을 불가능하게 만드는 조건을 포함할 때 발생하는 문제이다.
- "적어도 두 패키지 중의 하나의 저작자의 직접적인 허가가 없이는 두 패키지의 결합을 합법적으로 배포할 수 없는 경우" 두개의 라이선스는 호환되지 않는다 or 양립할 수 없다고 말한다.
듀얼 라이선스
- 다중 라이선스 (영어 : multi-licensing)는 컴퓨터 소프트웨어를 둘 이상의 각기 다른 조항과 조건으로 배포하는 행위이다.
- 이는 여러 개의 각기 다른 사용권이나 사용권 집합을 의미할 수 있다.
- 이중 라이선스(dual license)는 소프트웨어가 두 개의 각기 다른 사용권에서 배포되는 것을 의미한다.
라이선스 양립성 사례
- 서로 다른 라이선스의 조합일 경우
-> 각각의 오픈소스 라이선스 의무사항이 서로 상충하여 양립할 수 없다면, 배포가 불가능 함.
MLP 1.1(Mozilla public License)
다른 소스 코드와 결합하여 사용할 경우 수정된 MPL 파일을 반드시 MPL과 동일한 조건으로 공개
+
GPL 2.0(General public License)
다른 소스 코드와 결합하여 사용할 경우 결합하는 모든 소스 코드를 GPL과 동일한 조건으로 공개
= x (소스코드 공개의무는 맞는데 범위가 많이 다르다.)
MPL 2.0의 경우 secondary License를 GPL, AGPL 등으로 정의하여 다른 라이선스로 확대가능
라이선스 양립성 적용 시나리오
- 서로 다른 오픈소스 라이선스가 적용되는 둘 이상의 소스코드를 하나의 소프트웨어 내에서 함께 사용하는 경우, 각각의 오픈소스 라이선스의 요구사항이 상충되는 양립성 문제가 발생할 수 있음.
- 양립성 문제가 발생하는 경우 전면적인 수정 / 재개발이 필요하게 될 수도 있으므로, 반드시 사전에 검토 필요.
- 각각의 라이선스가 적용되는 범위를 판단하고, 서로 다른 라이선스의 적용 범위가 중첩되는 경우, 해당 라이선스 간의 요구사항 상충 여부 판단 필요.
GPL 2.0 (Work based on the Program)은 MPL 1.1 / Apache 2.0 / EPL 1.0이 안된다.
LGPL 2.0 (Work that uses the Library)는 MPL 1.1 / Apache 2.0 / EPL 1.0이 서로 된다. -> GPL 2.0 (Separate Work)
-> Default License : LGPL 2.0 MPL 1.1, EPL 1.0은 혼합 방식("hybrid : approach) 고지를 통한 배포
Commercial & Strong CopyLeft
GhostScript
1) 개요 : PDF의 포스트스크립트 언어에 대한 인터프리터
2) 주요기능
1. PostScript ™ 및 PDF 파일 용 인터프리로서 기본 렌더링 및 모든 주요 페이지 설명 언어를 래스터 및 벡터 파일과 ASCII 텍스트로 변환시킴
2. 20년 넘게 활발하게 개발되어 왔으며 다양한 시스템에서 사용됨
3. Ghostscript 그래픽 라이브러리를 혼동스럽게도 단순히 Ghostscript라고 부르기도 하고, 실제로 GhostPDL을 의미할 때 Ghostscript를 지칭하기도 함
3) 저작권 및 제조사
1. Artifex Software, Inc(미국), 1988년 설립
2. PDF의 포스트스크립트 전문기업
4) 적용 라이선스 : Commercial License or AGPL 3.0
1. 상용라이선스의 범위 : 사용범위에 따라 라이선스가 결정(https:// ghostscript.com/license.html). 상용 프로그램 내 사용될 경우 상용으로 구매하고 그렇지 않으면 AGPL 3.0 라이선스 적용을 통해 소스코드 공개 의무사항을 준수
Weak CopyLeft & Strong CopyLeft
FFMPEG
1) 개요 : FFMPEG는 인간과 기계가 제작한 대부분의 콘텐츠를 디코딩, 인코딩, 트랜스 코딩, mux, demux, 스트리밍, 필터링 및 재생할 수 있는 선도적인 밀티미디어 프레임워크(코덱)
2) 주요기능
1. C와 어셈블리로 제작되어있으며, 디지털 음성 스트림과 영상 스트림에 대해서 다양한 종류의 형태로 기록하고 변환
2. FFmpeg는 명령어를 직접 입력하는 방식으로 동작하며 여러가지 오픈소스와 오픈 소스 라이브러리로 구성
3. 리눅스 기반으로 개발되었으나, 현재는 대부분의 운영체제에서 컴파일이 가능
3) 저작권 및 제조사 : 파브리스 벨라드, 순수 오픈소스로 개발되었으며 2000년 최종 릴리즈
4) 적용 라이선스 : LGPL 2.1 or GPL 2.0
1. 라이선스 적용 기준 : 컴파일 옵션에 따라 GPL 또는 LGPL로 사용가능(LGPL 컴플라이선스 체크리스트 : https://ffmpeg.org/legal.html
Permisive & Strong CopyLeft
1) 개요 : 네트워크에 있는 다수의 컴퓨터를 디스크 ,테이프 체인저 / 드라이브 또는 클라우드 스토리지로 백업하고 보관호도록 설계된 백업 시스템
2) 주요기능
1. 세계에서 가장 인기 있는 오픈 소스 백업 및 아카이브 소프트웨어
2. Amanda를 사용하면 시스템 관리자가 단일 백업 서버를 설정하여 여러 호스트를 테이프 또는 디스크 또는 클라우드 기반 스토리지 시스템에 백업가능
3. 네이티브 아카이브 도구를 사용하며 다양한 버전의 Linux, Unix (OpenSolaris 포함), Mac OS X 또는 Microsoft Windows 운영 체제(기본 Windows 클라이언트 및 Samba)를 실행하는 많은 워크 스테이션 및 서버 백업 가능
3) 저작권 및 제조사 : Copyright (c) 1991-1998 University of Maryland at Colleage Park Copyright (c) 2007-2012 Zmanda, Inc.
4) 적용라이선스 : BSD style and GPL 2.0
1. 라이선스 적용 기준 : freely distributable source and executable. University of Maryland (BSD style) license and GPL
Permissive & Weak CopyLeft
Jetty
1) 개요 : 아파치 기반의 웹 어플리케이션 서버로서 독립형 또는 임베디드 인스턴스화에서 정적 및 동적 컨텐츠를 제공 할 수 있는 HTTP 서버 및 Servlet 컨테이너를 제공하며 HTTP / 2, WebSocket, OSGi, JMX, JNDI, JAAS 및 기타 여러 통합을 지원
2) 주요기능
1. 비동기 HTTP 서버
2. 표준 기반 서블릿 컨테이너
3. 웹 소켓 서버
4. http / 2 서버
5. 비동기 클라이언트 (http / 1.1, http / 2, websocket)
6. OSGI, JNDI, JMX, JASPI, AJP 지원
3) 저작권 및 제조사 : 이클립스 재단
4) 적용 라이선스 : Apache 2.0 and EPL 1.0
Permissive & Permissive
Dojo
1) 개요 : 크로스 플랫폼, 자바스크립트/Ajax 기반 애플리케이션, 웹사이트들의 신속한 개발의 편의성을 위해 만들어진 오픈소스 모듈러 자바스크립트 라이브러리
2) 주요기능
1. Dojo.io : ajax 요청 프로그램을 간단하게 제작할 수 있도록 지원
2. Dojo.event : 브라우저간의 호환성을 지니게 해주는 이벤트 시스템
3. Dojo.lang : 개체확장 지원
4. Dojo.graphics : 그래픽스적이고 현란한 자바스크립트를 아주 쉽게 사용할 수 있도록 지원
5. Dojo.dnd : 일반 어플리케이션처럼 drag & drop을 사용할 수 있도록 지원
6. Dojo.animation : 애니메이션 관련 효과 지원
7. Dojo.hostenv : 자바스크립트 패키지를 쉽게 사용할 수 있도록 지원
3) 저작권 및 제조사 : JS 재단, 2005년 최초 릴리즈
4) 적용 라이선스 : Academic Free License v2.1 or BSD
Commercial & Muti Strong CopyLeft
Qt
1) 개요 : The Qt Company에서 개발한 오픈 소스 C++ 개발 프레임워크. '큐트' 라고 읽는다. C++와 QML이라는 자체 스크립트 언어를 기반으로 한다. 2020년 9월 기준 현재 최신 버전은 Qt 5.15와 Qt Creator 4.11.1이다. https://download.qt.io/archive/qt/
2) 주요기능
1. "Write once, compile anywhere"를 표방하는 크로스 플랫폼 프레임워크
2. 현존하는 주요 플랫폼(Windows, Linux, OSX, Android, iOS 등)을 거의 대부분 지원
3. 초기에는 크로스플랫폼 GUI 라이브러리로 시작하였으나, 점점 기능이 확대되어 각종 UI 개발 도구, 번역 작업을 위한 도구와 C++개발에 필요한 온갖 기능(UI, XML, 네트워크, SVG, Animation, Container Class 등등)을 제공하는 종합 프레임워크
3) 저작권 및 제조사 : The Qt Company
4) 적용 라이선스 : Commercial, LGPL v3.0, GPL v.2.0/v3.0, Marketplace LA
오픈소스 예외적용(MySQL)
오라클에서 저작권을 인수한 이후에 오픈소스 버전은 GPL 2.0이 적용되어 있음.
라이선스 양립성 비교표
- Linking : 다른 라이선스로 배포된 라이선스와의 링킹(e.g. 라이브러리로 제공된 코드인 경우)
- Distribution : 제3자에게 코드 배포
- Modification : 코드 수정
- Patent grant : 특허청구 보호
- Private use : 코드 수정이 커뮤니티와 공유되어져야 하는지 사적으로 사용가능한지(e.g. 회사 내부사용)
- Sublicensing : 수정된 코드가 다른 라이선스로 배포가 가능한지 혹은 제공된 동일한 라이선스로 배포되어야 하는지
- Trademark grant : 상표사용
시사점을 주는 분쟁사례
- Eduroam : 비영리 목적의 배포행위도 저작권 위반이라는 법정사례
- 엘림넷 v. 하이온넷 : 최초의 국내 오픈소스 라이선스 관련 법정사례
- Jacobsen v. Katzer : OSS라이선스 위반이 저작권 위반이라는 미국 최초의 판결
- Welte v. Skype : 유통업체 책임 및 고지의 무 준수에 독일 판결
- FSF v. Braken : 합의문 조건을 인지할 수 있는 합의 사례
- Welte v. D-Link : 독일 및 대륙법 하에서 오픈소스 저작권을 인정한 판결
- FSF v. Cisco : 공급망 관리 필요성을 인지시켜준 합의 사례
- SFC v. 14개 기업 : 최초의 한국기업 관련 법정사례
최근 분쟁사례
- 삼성전자 exFAT (2013 유럽)
- Versata Software v. Ameriprise (2014 미국)
- Patrick McHardy v. 다수의 유럽 제조 및 유통사 (2013 독일)
- Christoph Hellwig v. Vmware (2015 독일)
- Google v. Oracle (2012 - 2018 미국)
- Xiaomi (2015 중국)
- 한글과컴퓨터 v. Artifex (2017 한국)
- Stockfish v. ChessBase (2021 독일)
- SFC v. Vizio (2021 미국)
- VirtualApp v. Dim Sum Desktop (2019 중국)
- GitHub 개발자들 v. Microsoft (2022, Open AI, GitHub)
문제1. 오픈소스 라이선스 분쟁사례에 대한 내용으로 옳지 않은 것은?
1. SFC v. 14개 기업 : 최초의 한국 기업 관련 법정 사례이다.
2. FSF v. Cisco : 공급망 관리 필요성을 인지시켜준 합의 사례이다.
3. Eduroam : 비영리 목적의 배포행위도 저작권 위반이라는 법정 사례이다.
4. Welte v. Skype : OSS 라이선스 위반이 저작권 위반이라는 미국 최초의 판결 사례이다.
문제 2. 오픈소스 이니셔티브에서 발표한 오픈소스의 10가지 기준으로 해당하지 않는 것은?
1. 2차적 저작물 허용
2. 자유로운 배포 및 소스코드 공개
3. 다른 라이선스의 포괄적 수용
4. 특정 분야에서의 사용 제한
문제 3. GPL 2.0과 GPL 3.0의 차이점으로 옳지 않은 것은?
1. GPL 2.0과 달리 GPL 3.0은 밀접한 데이터 통신 등을 통해 저작물이 특별히 필요로 하는 동적 링크된 하위 프로그램과 공유 라이브러리의 소스코드 전체로 공개 범위를 확대시켰다.
2. GPL 2.0과 달리 GPL 3.0은 복제, 수정, 배포 행위를 통합하여 복사(copy)로 확대 적용하였다.
3. GPL 2.0과 달리 GPL 3.0은 '배포(distribution)'라는 용어를 '컨베이(convey)'라는 용어로 대체하였다.
4. GPL 2.0과 달리 GPL 3.0은 추가적 허용사항 또는 제약사항을 부가하는 것을 가능하도록 하였다.
문제 4. 오픈소스 라이선스 분류와 그에 해당하는 라이선스로 옳지 않은 것은?
1. 약한 카피레프트 라이선스 (Weak CopyLeft) : MPL, LGPL
2. 강력한 카피레프트 라이선스 (Strong CopyLeft) : GPL, AGPL
3. 강력한 카피레프트 라이선스 (Strong CopyLeft) : GPL, Apache
4. 허용적 라이선스(permissive license) : MIT, BSD
문제 5. 오픈소스 라이선스 양립성과 듀얼 라이선스에 대한 내용으로 적절한 것은?
1. 듀얼 라이선스는 소프트웨어가 두개의 각기 다른 사용권에서 배포되는 것을 의미하며, 모든 소스코드를 두번씩 배포하면 문제 없다.
2. 두가지의 라이선스가 충돌하여 라이선스 양립할 수 없다면, 배포자가 원하는 라이선스로 배포할 수 있다.
3. 라이선스 양립성 사례로 제시된 MPL 1.1와 GPL 2.0은 다른 라이선스지만 공개 의무사항이 동일하여 각각의 라이선스로 두 번 배포하면 문제 없다.
4. 라이선스 양립성은 복수의 저작물에 적용된 상이한 라이선스가 새로운 저작물을 만들기 위하여 소스코드 등을 결합시키는 것을 불가능하게 만드는 조건을 포함할 때 발생한다.
44234