상업적이용O, 동일 라이선스 강제, 소스코드 공개 필요
GNU라고도 불리는 이 라이선스는 리눅스 커널에 기본 라이선스로 채택되면서 개발자 사이에선 공산주의 라이선스다. 이 라이선스는 오픈소스의 철학에 기초해서 만들어진 것이기 때문에 '자유를 누린 만큼 너의 코드도 공개해!' 원칙을 가지고 있다.
이 라이선스를 이용해서 만든 소프트웨어는 동일한 GPL 라이선스를 사용해야하고 모두 코드를 공개해야 한다. 리눅스 커널 기반 안드로이드 폰 제조사들이 다른 코드는 몰라도 리눅스 커널 소스코드는 공개할 수 밖에 없는 것은 GPL 라이선스 덕분이다.
다음은 GPL의 주요 특징이다. (GPL은 한마디로 오픈 소스 프로그램 개발자 또는 판매자를 위한 라이선스이다.)
GPL은 배포/유통된(distributed) 소프트웨어에만 적용된다. 소프트웨어를 배포하지 않은 경우 GPL 라이선스를 채택하지 않아도 된다.즉, GPL 소스코드를 사용한 프로그램을 판매/배포시에 상기 GPL 라이선스를 따라야 한다.
GPL 소스 코드는 판매/배포시 요청에 의해 배포된다. 인터넷 등의 매체로 GPL 소프트웨어의 바이너리를 배포하는 경우 GPL 라이선스 계약서, 소스 코드가 제공하여야 하며 사용자가 다시 제3자에게 해당 소프트웨어를 재배포하는 것이 허용된다.
이 때 소스 코드는 어떻게든 소프트웨어의 사용자에게 전달만 할 수 있으면 된다. GPL 버전 2의 3조에 따르면 3가지 방법이 있다.
보통 인터넷에서 무료로 배포되는 GPL 소프트웨어는 a항의 방법으로 다운로드 페이지나 FTP에서 소스 코드도 함께 내려받을 수 있는 방식으로 배포되고 있고, 가장 권장되는 방식이기도 하다. 또한 하드웨어에 임베디드되는 GPL 소프트웨어라면 b항의 방법으로 소스 코드를 꼭 동봉하지 않아도 된다.