상업적이용O, 동일 라이선스 강제, 소스코드 공개 필요

GNU라고도 불리는 이 라이선스는 리눅스 커널에 기본 라이선스로 채택되면서 개발자 사이에선 공산주의 라이선스다. 이 라이선스는 오픈소스의 철학에 기초해서 만들어진 것이기 때문에 '자유를 누린 만큼 너의 코드도 공개해!' 원칙을 가지고 있다.

이 라이선스를 이용해서 만든 소프트웨어는 동일한 GPL 라이선스를 사용해야하고 모두 코드를 공개해야 한다. 리눅스 커널 기반 안드로이드 폰 제조사들이 다른 코드는 몰라도 리눅스 커널 소스코드는 공개할 수 밖에 없는 것은 GPL 라이선스 덕분이다.

주요 조항

다음은 GPL의 주요 특징이다. (GPL은 한마디로 오픈 소스 프로그램 개발자 또는 판매자를 위한 라이선스이다.)

  1. GPL 라이선스 프로그램을 어떠한 목적으로든지 사용할 수 있다.
  2. GPL 라이선스 프로그램의 소스 코드를 용도에 따라 변경 할 수 있다. (개작 가능)
  3. GPL 라이선스 프로그램을 판매/배포시 소스 코드도 요청하면 제공하여야 한다. (원본 배포 의무)
  4. 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 요청시 제공해야 한다. (파생물 배포 의무)
  5. 변경된 컴퓨터 프로그램 역시 반드시 똑같은 GPL 라이선스를 취해야 한다. (파생물 라이선스 의무)

GPL은 배포/유통된(distributed) 소프트웨어에만 적용된다. 소프트웨어를 배포하지 않은 경우 GPL 라이선스를 채택하지 않아도 된다.즉, GPL 소스코드를 사용한 프로그램을 판매/배포시에 상기 GPL 라이선스를 따라야 한다.

배포시 의무사항

GPL 소스코드 제공

GPL 소스 코드는 판매/배포시 요청에 의해 배포된다. 인터넷 등의 매체로 GPL 소프트웨어의 바이너리를 배포하는 경우 GPL 라이선스 계약서, 소스 코드가 제공하여야 하며 사용자가 다시 제3자에게 해당 소프트웨어를 재배포하는 것이 허용된다.

이 때 소스 코드는 어떻게든 소프트웨어의 사용자에게 전달만 할 수 있으면 된다. GPL 버전 2의 3조에 따르면 3가지 방법이 있다.

  1. 소프트웨어와 함께 배포한다
  2. 3년 이내에 사용자로부터 요청이 들어오면 인터넷으로 내려받게 하거나 일정 비용을 받고 CD나 USB 메모리 등의 물리적 매체에 소스 코드를 담아서 제공한다.
  3. b항의 방법으로 수령한 소스 코드를 제3자에게 전달할 때 b항의 내용을 전달한다.

보통 인터넷에서 무료로 배포되는 GPL 소프트웨어는 a항의 방법으로 다운로드 페이지나 FTP에서 소스 코드도 함께 내려받을 수 있는 방식으로 배포되고 있고, 가장 권장되는 방식이기도 하다. 또한 하드웨어에 임베디드되는 GPL 소프트웨어라면 b항의 방법으로 소스 코드를 꼭 동봉하지 않아도 된다.