본문 바로가기
코딩취미/프로그램 지식

오픈소스 라이센스 결합 기본 원칙 및 호환성 이슈

by 브링블링 2024. 2. 29.
728x90

오픈소스 라이센스 결합 기본 원칙 및 호환성 이슈

오픈 소스 라이센스들 간의 결합은 각 라이센스의 조건과 호환성에 따라 달라집니다. 특히, Copyleft 라이센스(예: GPL)는 소스 코드의 공개를 요구하는 반면, Permissive 라이센스(예: MIT, BSD, Apache)는 더 유연하여 소스 코드 공개를 요구하지 않습니다. Ms-PL 같은 경우는 특정 조건 하에서 다른 코드와 결합할 때 주의가 필요합니다.

라이센스 결합의 기본 원칙

  • Copyleft ↔ Copyleft: 일반적으로 같은 유형의 Copyleft 라이센스끼리는 호환될 수 있지만, 서로 다른 Copyleft 라이센스 간에는 호환되지 않는 경우가 많습니다. 예를 들어, GPL 코드는 AGPL 라이센스 하에 배포할 수 없습니다.
  • Copyleft ↔ Permissive: Copyleft 라이센스 하의 코드를 Permissive 라이센스 하의 코드와 결합하는 것은 가능하지만, 전체 결합된 작업은 Copyleft 라이센스를 따라야 합니다.
  • Permissive ↔ Permissive: Permissive 라이센스 간에는 대체로 호환성이 좋아 서로 결합이 가능합니다.
  • 라이센스 유형 :
    - Permissive 라이센스
    : MIT, BSD, Apache와 같은 라이센스는 수정된 소스 코드의 공개를 요구하지 않으며, 상업적 사용이 가능합니다.
    - Copyleft 라이센스: GPL, AGPL, LGPL과 같은 라이센스는 수정된 소스 코드의 공개를 요구하며, 파생된 작업물도 동일한 라이센스를 적용해야 합니다.
  • 라이센스 요구사항 :
    - 소스 코드 공개
    : Copyleft 라이센스 하에 배포된 소프트웨어를 수정하거나 확장한 경우, 변경된 소스 코드를 공개해야 합니다.
    - 라이센스 문서 포함: 오픈 소스 소프트웨어를 배포할 때는 반드시 해당 소프트웨어의 라이센스 문서를 포함해야 합니다.

 

1) 결합 가능한 라이센스 조합

결합 유형 호환성 예시 주요 고려사항
GPL ↔ LGPL 호환 가능 GPL 라이선스 프로젝트에 LGPL 라이브러리 사용 전체 프로젝트는 GPL을 따라야 함
GPL ↔ AGPL 일반적으로 호환 불가 - AGPL의 네트워크 사용 공개 요구 때문에 문제 발생
GPL/LGPL/AGPL ↔ MIT/BSD/Apache 부분적으로 호환 가능 MIT 라이선스 코드를 GPL 프로젝트에 포함 포함된 코드는 GPL 조건을 따라야 함
MIT ↔ BSD/Apache 호환 가능 MIT 라이선스 코드를 BSD 프로젝트에 포함 각각의 라이센스 조건을 존중해야 함
Ms-PL ↔ GPL/LGPL/AGPL 일반적으로 호환 불가 - Ms-PL은 GPL 계열 라이선스와 명시적으로 호환되지 않음
Ms-PL ↔ MIT/BSD/Apache 부분적으로 호환 가능 Ms-PL 코드를 MIT 프로젝트에 포함 결과물은 Ms-PL 조건을 따라야 함

 

2) 라이센스 결합 주의사항

라이센스 결합 시 가장 중요한 것은 각 라이센스의 요구사항을 정확히 이해하고 준수하는 것입니다. 특히, Copyleft 라이센스는 포함된 모든 코드가 해당 라이센스를 따르도록 요구하기 때문에 주의가 필요합니다. 라이센스 호환성은 복잡할 수 있으므로, 불확실한 경우 법률 전문가의 조언을 구하는 것이 좋습니다.

결합 호환성 주요 고려사항
GPL ↔ LGPL 전체 프로젝트 GPL 준수
GPL ↔ AGPL 네트워크 사용 공개 요구
GPL ↔ MIT/BSD/Apache ✔ (조건부) 포함된 코드는 GPL 조건을 따름
MIT/BSD/Apache ↔ MIT/BSD/Apache 라이센스 조건 존중
Ms-PL ↔ GPL/LGPL/AGPL 호환되지 않음
Ms-PL ↔ MIT/BSD/Apache ✔ (조건부) 결과물은 Ms-PL 조건을 따름

 

728x90

오픈 소스 라이센스 호환성 이슈 사례

오픈 소스 라이센스 결합 호환성은 여러 기업과 프로젝트에서 중요한 이슈가 되었습니다. 특정 사건이나 이벤트가 법적 조치나 공개적인 논란으로 이어지기도 했습니다.

1) 오픈 소스 라이선스 관련 일반적인 문제 유형

  1. 소스 코드 공개 의무 미이행
  2. 라이선스 호환성 문제
  3. 특허 권리 침해 주장
  4. 상표권 침해 및 브랜드 혼동
  5. 기여자와의 분쟁
  6. 라이선스 조건 변경에 따른 문제
  7. 제3자 의존성으로 인한 라이선스 위반
  8. 듀얼 라이선싱 정책의 복잡성
  9. 커뮤니티 기반 프로젝트와 상업적 이용 간의 충돌
  10. 오픈 소스 소프트웨어를 내장한 하드웨어 제품의 라이선스 이슈

[가상의 사례 예시]

사건 이름 발생 가상 날짜 관련 회사/조직 이슈 요약
OpenTech vs. DevGear 2016년 OpenTech, DevGear OpenTech는 DevGear가 GPL 라이선스 하의 코드를 상업 제품에 사용하면서 소스 코드 공개 의무를 이행하지 않았다고 주장함.
SecureRoute 소스 코드 유출 2019년 SecureRoute SecureRoute의 네트워크 보안 소프트웨어에서 LGPL 라이선스된 라이브러리를 사용했으나, 소프트웨어의 일부가 유출되어 LGPL 조건을 위반했다는 주장이 제기됨.
XYZ Corporation 특허 소송 2017년 XYZ Corporation, GPL Devs XYZ Corporation이 GPL 라이선스 하의 소프트웨어를 사용했음에도 불구하고, 관련 기술에 대한 특허를 주장하며 개발자들을 상대로 소송을 제기함.
BrandConfuse 상표권 분쟁 2018년 BrandConfuse, OpenBrand BrandConfuse가 오픈 소스 프로젝트 OpenBrand의 이름과 유사한 상품을 출시하여 상표권 침해 및 브랜드 혼동을 일으킴.
Contributor Clash 2020년 OpenSourceNet OpenSourceNet의 주요 기여자가 프로젝트의 방향성에 대해 이견을 보이며, 자신의 기여한 코드에 대한 권리 주장으로 분쟁 발생.

 

2) 오픈 소스 라이선스 관련 실제 사례

사건 이름 날짜 관련 회사/조직 이슈 요약
VMware vs. Hellwig 2015년 VMware, Christoph Hellwig VMware가 리눅스 커널 코드(GPL 라이선스)를 자사의 ESXi 제품에 사용했다고 주장되어 GPL 위반 소송이 제기됨.
Cisco vs. FSF 2008년 Cisco, FSF (자유 소프트웨어 재단) Cisco가 Linksys 라우터에 GPL 라이선스 소프트웨어를 사용하면서 소스 코드 공개 의무를 준수하지 않아 FSF가 소송을 제기함.
BusyBox 소송 2007-2010년 여러 회사 (베스트바이, 삼성, 웨스턴 디지털 등) BusyBox 개발자들이 GPL 라이선스 하의 소프트웨어를 포함한 제품을 판매하는 여러 회사들에 대해 소스 코드 공개 의무를 위반했다고 소송을 제기함.

VMware vs. Hellwig

  • 발생 시기: 2015년
  • 관련된 회사/조직: VMware, Christoph Hellwig (리눅스 개발자)
  • 이슈 요약: Christoph Hellwig는 VMware가 리눅스 커널의 GPL 라이선스된 코드를 자사의 ESXi 제품에 불법적으로 통합했다고 주장하며 소송을 제기했습니다. 이 사건은 오픈 소스 라이선스의 법적 구속력과 GPL 라이선스 하에 배포된 코드의 사용에 대한 중요한 사례로 주목받았습니다.

Cisco vs. FSF

  • 발생 시기: 2008년
  • 관련된 회사/조직: Cisco, 자유 소프트웨어 재단(FSF)
  • 이슈 요약: FSF는 Cisco가 자사의 Linksys 브랜드 라우터에 GPL 라이선스된 소프트웨어를 사용하면서 해당 소프트웨어의 소스 코드를 공개하지 않았다고 주장하며 소송을 제기했습니다. 이 사건은 GPL 라이선스 조건의 이행과 관련된 중요한 법적 판례 중 하나입니다.

BusyBox 소송

  • 발생 시기: 2007-2010년
  • 관련된 회사/조직: 여러 회사 (베스트바이, 삼성, 웨스턴 디지털 등)
  • 이슈 요약: BusyBox 개발자들은 자신들의 GPL 라이선스 하의 소프트웨어를 포함한 제품을 판매하는 여러 회사들에 대해 소스 코드 공개 의무를 위반했다고 주장하며 여러 차례 소송을 제기했습니다. 이 소송들은 여러 회사가 GPL 라이선스 조건을 준수하도록 이끌었고, 오픈 소스 소프트웨어 라이선스의 법적 효력을 강화하는 데 기여했습니다.
728x90