기본 콘텐츠로 건너뛰기

주요 오픈 소스 라이센스(GPL, LGPL, BSD, MPL, QPL)에 대한 설명

게시글 주소 : http://www.igotit.co.kr/zbxe/386

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

 

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



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)를 제공

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

 

1.jpg

 

 

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를 제공 해야 함

 

2.jpg

 

GPL & LGPL 요약

 

3.jpg

 

BSD

 

기본원칙

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

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

 

의무사항

 

 프로그램 배포 시

   - 저작권 표시

   - No Warranty

 

4.jpg

 

 

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) 하는 것도 인정

  

5.jpg

 

QPL

 

배경

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

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

→ 2001년 QT에 대해 GPL 배포

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

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

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

 

기본원칙

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

 

의무사항

  

 프로그램 배포 시

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

   - 프로그램을 수정한 경우

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

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

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

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

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

  

6.jpg

 

댓글

익명님의 메시지…
This may be the ratio of keywords to the rest
in the words for the page. The page the spider sees is "cloaked" because it is
invisible to regular traffic, and deliberately set-as much as raise
the site's search results ranking. After all of the Page - Ranks are calculated they can be added in without affecting things significantly.
My web site > review of ultimate demon

이 블로그의 인기 게시물

Ubuntu (Kubuntu) 에 desktop 파일 만들기

Package 관리자등을 통해 직접 Repository 에 있는 Application 을 설치하는 경우에는 필요한 경로와 파일, Category 로 분류된 Icon 등록 등이 자동적으로 이루어지나 firefox, eclipse 등 새로운 버전을 새로 설치할 경우, 다음과 같은 절차를 통해 시작메뉴에 등록시킬 수 있다. 다음은 eclipse-SDK-3.6-linuxx-gtk.tar.gz 을 받아 설치 등록하는 것을 예로 든다. 1. 다운받은 파일을 /usr/lib에 압축해제한다. (물론, super user 계정으로 실행해야 한다.) 2. 보통의 경우, /usr/bin Directory 는 PATH 에 물려 있으므로 다음과 같은 실행 파일을 만들어 놓는다. # cd /usr/lib # chmod +x eclipse # cd /usr/bin # sudo nano eclipse eclipse 파일에는 아래의 내용을 입력하여 넣는다. export ECLIPSE_HOME="/usr/lib/eclipse" $ECLIPSE_HOME/eclipse $ * # sudo chmod 755 eclipse 3. Desktop Menu 에 추가하려면 # cd /usr/share/applications # sudo nano eclipse.desktop [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=eclipse Icon=/usr/lib/eclipse/icon.xpm Terminal=false Type=Application Categories=GNOME;Application;Development' StartupNotify=true 이렇게 입력한 파일을 저장하면, 시작메뉴 > 개발 > Eclipse 아이콘이 생성되어 메뉴에서 직접 실행할 수 있게된다.

VC++(MFC)에서 ADO와 ADOX를 이용한 MDB 파일 생성 / 연동 / 압축에 관한 모든 것

VC++(MFC)에서 MDB 생성 / 압축 / 연동 □ 개 요 ○ Access로 생성하는 DB 파일인 MDB 파일의 생성과 압축 및 기본 DB연동(데이터의 추가, 삭제, 검색, 수정)에 대한 내용 ○ 다이얼로그 기반의 MFC 프로젝트 상에서 위의 작업들을 수행하는 CDataBase라는 사용자 정의 클래스를 만들고 구현 □ 준비 작업 ○ stdafx.h에 다음을 import 한다. /* DB 사용을 위한 설정*/ #import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename("EOF", "EndOfFile") /* DB 파일 압축을 위한 설정*/ #import "C:\Program Files\Common Files\System\ado\msjro.dll" no_namespace /* DB 파일 생성을 위한 설정*/ #import "c:\Program Files\Common Files\system\ado\msadox.dll" using namespace ADODB; using namespace ADOX; ※ ADO(msado15.dll) 자체에서는 DB 파일 생성과 압축에 대한 라이브러리가 없기 때문에 각각에 필요한 DLL 파일을 Import 해야 한다. 하지만 ADOX(msadox.dll)와 단순히 같이 Import하면 충돌하기 때문에 서로 namespace를 지정해 준다. 또한 인터넷에 돌아다니는 일부 코드는 msadox.dll를 Import할 때 rename 혹은 no_namespace 옵션을 주곤 하는데 이를 위와 같이 해제한다. ○ 초기화 작업을 수행한다. => 프로젝트의 메인파일 (TestDlg.cpp)의 BOOL CTestDlgAPP::InitInstance()에 다음 내용을 추가 /* Ole 컨트롤의 지원을 위한 작업을 가능하게 함*/ AfxEnableControlContainer(); if (!...

VIDEO_DXGKRNL_FATAL_ERROR on Windows 8.1

Windows 8.1 로 업데이트 이후, Booting 시 Blue Screen 이 뜨면서, VIDEO_DXGKRNL_FATAL_ERROR 또는 SYSTEM_SERVICE_EXCEPTION (atikmpag.sys)  가 발생하는 문제점이 있을 때, 아래와 같이 조치해 보십시오. 제어판 -> 전원 옵션 -> 설정 변경 덮개를 닫으면 수행되는 작업 선택 -> 현재 사용할 수 없는 설정 변경 -> 종료 설정 -> 빠른 시작 켜기(권장)의 Check Box 를 해제함.