본문 바로가기

Programming

오픈소스 라이센스 정리 (GPL, LGPL, BSD, MPL, QPL)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

(정리가 너무 잘 되어 있어서.. 퍼왔씁니다.) http://blog.naver.com/jinofstar/130026514651


GPL : GNU General Public License

 

1. GPL을 따르는 소프트웨어 소스 코드 일부를 사용해 만든 소프트웨어는 GPL을 따라야 한다.

2. GPL을 따르는 소프트웨어 소스 코드를 개인적으로 사용할 수 없다. 반드시 소프트웨어를

    개발한 원작자나 공동체에 환원해야 한다.

 

배경

→ 1980년대 초 PC의 보급 등으로 소프트웨어의 상업성 강조

      - 소프트웨어의 자유로운 사용 통제

      - AT&T의 UNIX의 대한 권리 주장

→ Richard Stallman이 GNU 프로젝트 시작, FSF(Free Software Foundation) 설립

      - 소프트웨어의 자유로운 사용, 공유, 수정을 강조

      - 이를 담보하기 위한 장치로 GPL 고안

      - GCC등 주요 개발 툴을 GPL로 배포

→ 전세계 자유 소프트웨어 개발자들의 GPL 채택

      - 1990년대 초 Linux Kernel이 GPL로 배포

 

의무사항

 

 소스코드 배포 시

실행파일 배포 시 

수정코드 배포 시 

   - 저작권 표시

   - No Warranty

   - GPL로 배포

   - 저작권 표시

   - No Warranty

   - GPL로 배포

   - 소스코드 제공 

   - 저작권 표시

   - No Warranty

   - GPL로 배포

   - 소스코드 제공

   - 수정 사실 및 일자

 

 

공개

→ Original GPL Program

→ "Work based on the Program"

      - 수정된 프로그램 (수정된 Linux Kernel 자체)

      - (Static or Dynamic) Linking

 

비공개

→ "Independent and Separate Works"

→ "Mere Aggregation"

      - 동일한 매체(CD-ROM 등)에 저장되어 배포되는 독립된 프로그램

저작권자의 예외규정

      - User Programs that use (Linux) Kernel services by Normal System Calls

      - Classpath exception (JavaSE, javaEE 사용 Applications)

Loadable Kernel Module (?)

      - Device Driver etc

 

소스 코드 공개 방식

→ Object 또는 Executable Form 배포시 소스 코드를 함께 제공

→ 최소 3년 동안, 이용자가 요청할 경우 최소의 비용을 받고 소스코드를 제공하겠다는 문서

    (Written offer)를 제공

→ 기타 웹상에서 다운 받을 수 있도록 하는 것도 인정

 

 

 

LGPL : Lesser GPL

 

1. GPL의 1번 조항을 완화한 라이센스 모델

2. LGPL 대상 라이브러리와 링크만 해서 사용한 경우 실행 프로그램에 대한 공개 의무가 없다.

 

배경

→ GNU 'Lesser' General Public License

→ GPL보다 다소 완화된 라이센스 정책 적용하여 상용 라이브러리와 비슷한 기능을 가진

    GNU 라이브러리의 사용을 장려하고, 사실상의 표준으로 유도하기 위함.

 

의무사항

 

 소스코드 배포 시

실행파일 배포 시 

수정코드 배포 시 

   - 저작권 표시

   - No Warranty

   - LGPL로 배포

   - 저작권 표시

   - No Warranty

   - LGPL로 배포

   - 소스코드 제공 

   - 저작권 표시

   - No Warranty

   - LGPL로 배포

   - 소스코드 제공

   - 수정 사실 및 일자

 

공개

→ Original LGPL Library

→ "Work based on the Library"

→ 수정된 library 전체를 LGPL로 공개 파일을 수정했다는 사실과 수정일자 명시

 

비공개

→ "Independent and Separate Works"

→ "Mere Aggregation"

      - 동일한 매체(CD-ROM 등)에 저장되어 배포되는 독립된 프로그램

→ "Work that uses the Library"

      - LGPL Library를 이용한 응용프로그램

 

소스 코드 공개 방식

→ LGPL Library의 일부를 수정하는 경우 수정한 Library를 LGPL에 의해 소스 코드 공개

→ LGPL Library에 응용 프로그램을 링크시킬 경우 해당 응용 프로그램의 소스를 공개할 필요 없음

→ 다만 사용자가 Library 수정 후 동일한 실행 파일을 생성할 수 있도록 Static Linking 시에는

    응용 프로그램의 Object Code를 제공 해야 함

 

 

GPL & LGPL 요약

 

 

 

BSD

 

기본원칙

→ 프로그램의 자유로운 사용, 복제, 배포, 수정을 허용

→ 수정 프로그램에 대한 소스 ㅗ드 공개를 요구하지 않기 때문에 상용 소프트웨어에 무제한 사용가능

 

의무사항

 

 프로그램 배포 시

   - 저작권 표시

   - No Warranty

 

 

 

MPL

 

배경

→ Netscape의 소스공개 결정

      - MS explorer의 시장점유율 상승

      - 비지니스 전략의 수정

→ 라이센스 선택의 문제

      - GPL의 경우

            - Netscape Communicator 제품내 제3자 Component 공개문제

            - 암호코드 등은 관련 법률에 의해 규제를 받고 있음 (소스제공제한)

            - 코드 일부분은 다른 제품(서버)등에 사용되고 있음

      - BSD 라이센스의 경우

            - 경쟁기업이 코드를 약탈할 가능성

      - 새로운 라이센스의 개발

 

기본원칙

→ 프로그램의 자유로운 사용, 복제, 배포, 수정을 허용

 

의무사항

  

 프로그램 배포 시

   - 저작권 표시

   - No Warranty

   - Exhibit A의 공지사항 표시

         - Original Code

         - 최초 개발자

         - Contributors

   - 소스코드 제공

         - GPL과 BSD의 중간 범위

 

공개

→ "Covered Code"

      - Original code

      - Modifications

      - Combination of the Original Code and Modification

→ 수정일자, 수정사항, 최초개발자 등을 표시할 것

 

비공개

→ 추가된 새로운 file

→ "Larger Code"

      - MPL Code(Covered Code)와 기타 Code의 결합은 MPL외의 다른 라이센스로 배포 가능

      - LGPL과 유사하나 덜 제한적임

 

GPL과의 Compatibility

→ MPL 코드와 GPL 코드의 결합을 불가능하게 만듬

      - 예를 들어, MPL은 별도의 파일로 Function을 추가할 경우 기존 Code의 수정부분에만

         MPL이 적용되며, 추가된 Function에는 적용되지 않음

→ LGPL Code와는 API를 통해 결합 가능

→ Mozilla.org의 'triple license' 정책 (MPL/GPL/LGPL) 하는 것도 인정

  

 

QPL

 

배경

→ Troll Tech의 QT Library에 대한 라이센스

      - 자유로운 이용 및 배포 허용, 수정도 어느 정도 허용(->OSI 인증)

→ 2001년 QT에 대해 GPL 배포

      - QPL의 특정 내용이 제한적이기 때문에 GPL과 호환될 수 없다는 FSF의 비판을 수용

→ 현재 QT는 QPL, GPL, 상용 라이센스에 의해 배포(Triple License Policy)

      - 소스코드를 공개하지 않는 상용 응용프로그램을 만들기 위해서는 상용 라이센스를 취득해야 함

 

기본원칙

→ 프로그램의 자유로운 사용, 복제, 배포, 수정을 허용

 

의무사항

  

 프로그램 배포 시

   - 저작권 및 상표권 표시,  보증 책임이 없다는 표시

   - 프로그램을 수정한 경우

         - 패치와 같이 분리된 형태로 배포 가능

         - 최초 개발자에게 Royalty-free 라이센스 부여

   - 응용프로그램을 작성한 경우

         - 응용프로그램 배포 시 소스코드 제공

         - 프로그램의 자유로운 재배포를 허용할 것

  

 

 

주요 오픈 소스 라이센스 최종 비교

 

 

GPL

LGPL

BSD

MPL

QPL/상용QT

코드의 무료 이용

O

O

O

O

O/X

코드의 자유 배포

O

O

O

O

O/X

소스 코드의 공개

O

O

O

O

O/X

소스 코드의 수정

O

O

O

O

O/O

수정 코드의 소스 공개

O

O

X

O

O/X

상용 소프트웨어와의 링크

X

O

O

O

X/O

'Programming' 카테고리의 다른 글

WebDEV  (0) 2009.04.23
Settings in OpenXML  (0) 2009.03.12
What’s up with all those “rsids”?  (0) 2009.03.12