소프트웨어를 실행·연구·수정·재배포할 자유를 보장하고, 그 자유가 다음 사용자에게도 이어지도록 설계한 카피레프트 라이선스 계열. GNU 프로젝트와 자유 소프트웨어 재단(FSF)을 중심으로 리처드 스톨먼이 개발했으며, 1989년 2월 버전 1, 1991년 6월 버전 2, 2007년 6월 버전 3을 발표.
핵심은 저작권을 없애는 것이 아니라 저작권을 이용해 공유의 조건을 지키는 방식. 저작권자가 복제·수정·배포를 허락하는 대신 GPL 프로그램을 배포하는 사람이 받는 사람에게도 해당 라이선스의 권리와 소스 코드 접근을 제공하도록 요구하는 구조. 누구든 코드를 볼 수 있다는 사실만으로 GPL이 되는 것은 아니며, 실제 적용되는 라이선스와 버전은 저작권자의 표시로 결정.
여기서 자유는 가격이 아니라 사용자의 권리라는 뜻. GPL 소프트웨어도 판매하거나 유료 지원을 제공할 수 있으며, 구매자는 조건에 따라 다시 배포할 수 있음. 개인적으로 수정해 사용하는 행위와 수정본을 다른 사람에게 배포하는 행위는 구분되는 대상. GPL은 일반적으로 사적인 수정본을 전 세계에 공개하라고 요구하는 제도가 아니며, 배포 방식에 따라 소스 코드를 제공할 대상과 방법이 정해짐.
GPL의 카피레프트는 단순히 같은 컴퓨터에 놓인 모든 프로그램에 번지는 규칙이 아님. 별개의 프로그램을 함께 묶어 배포하는 경우와 하나의 파생·결합 저작물을 배포하는 경우가 구별되며, 결합 형태와 라이선스의 예외 조항이 중요한 판단 요소. 자바의 클래스패스 예외나 GCC 실행시간 라이브러리 예외는 특정 결합에 추가 허락을 부여한 사례.
GPL 버전 2는 리눅스 커널과 여러 주요 자유 소프트웨어에 채택되며 산업적 영향력을 확대. 리눅스는 GPLv2-only를 유지하고 있으므로 GPL 버전 3 발표가 모든 기존 GPL 프로그램의 자동 전환을 뜻하지는 않음. ‘버전 2만’과 ‘버전 2 또는 이후 버전’은 다른 이용허락이며, 서로 다른 라이선스의 코드를 결합할 때에는 호환성 확인이 필요한 구조.
버전 3은 18개월의 공개 의견 수렴을 거쳐 특허, 국제적 적용, 라이선스 위반의 시정, 사용자가 수정한 소프트웨어를 제품에 설치하지 못하게 하는 제한 등에 대응. GPLv3의 사용자 제품 조항은 해당 조건에 해당하는 제품에 수정본 설치에 필요한 정보를 제공하도록 요구하며, 모든 암호화나 모든 디지털 권리 관리를 일괄 금지하는 규정은 아님.
LGPL과 AGPL은 GPL을 대신하는 하나의 후속 버전이 아니라 목적이 다른 관련 라이선스. LGPL은 일정 조건 아래 비자유 프로그램과 라이브러리의 결합을 허용하는 약한 카피레프트이고, GNU AGPLv3는 수정된 프로그램과 네트워크로 상호작용하는 이용자에게도 소스 코드 제공 기회를 보장하도록 확장한 별도 라이선스.
임베디드 장치와 기업 소프트웨어로 사용 범위가 넓어지면서 소스 코드 미제공을 둘러싼 집행도 중요한 역사로 부상. 독일의 netfilter 사건, 미국의 BusyBox 분쟁, FSF와 시스코의 소송·합의는 코드 공개 조건의 실효성을 시험한 사례. 이후 공동체 중심 집행 원칙과 시정 기회 제공 약속을 통해 사용자 권리 회복과 협력적 준수를 강조하는 흐름으로 발전.