1 개요
GNU 일반 공중 사용 허가서(GNU General Public License). 줄임말은 GNU GPL 또는 GPL.
GNU 일반 공중 사용 허가서는 자유 소프트웨어 재단(FSF #)에서 만든 오픈소스 소프트웨어를 위한 라이선스다. 자매품으론 GNU 약소 일반 공중 사용 허가서(GNU Lesser General Public License, LGPL. 예전엔 GNU Library General Public License라는 이름이었다.)와 더불어 문서에 써먹을 수 있는 GNU 자유 문서 사용 허가서(GNU Free Documentation License, GNU FDL, GFDL)가 있다. GFDL은 문서에 대한 GPL로 볼 수 있으며, 위키백과의 라이선스이기도 하였다. 리처드 스톨먼이 변호사들과 협의를 통해서 만들었다고 한다. 현재 GPL 버전은 3.0이며, 이와 비슷한 것은 CC BY-SA(크리에이티브 커먼즈 저작자표시-동일조건변경허락) 라이선스가 있다.[1] 단, 사용에 대한 전염성 조항 때문에 CC BY-SA보다 제약이 크다. GPL과 GFDL, CC BY-SA는 서로 전혀 호환되지 않는다.
GPL의 주요 원칙은 다음과 같다. 특히 굵게 표시한 것은 GPL의 주요 특징인 '전염성'에 관한 부분이다.
- 컴퓨터 프로그램을 어떠한 목적으로든지 사용할 수 있다. 다만 법으로 제한하는 행위는 할 수 없다.
- 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경할 수 있다.(개작 가능)
- 컴퓨터 프로그램의 실행 복사본은 언제나 프로그램의 소스 코드와 함께 판매하거나 소스코드를 무료로 배포해야 한다.(원본 배포 전염성)
- 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 반드시 공개 배포해야 한다.(파생물 배포 전염성)
- 변경된 컴퓨터 프로그램 역시 반드시 똑같은 라이선스를 취해야 한다. 즉 GPL 라이선스를 적용해야 한다.(파생물 라이선스 전염성)
특히 저 전염성 조항이 문제가 되는데, GPL을 가져다 쓰거나 기능을 연결할 경우에는 무조건 자기 스스로도 GPL을 따라야 하는 무시무시한 조항이다. 마이크로소프트에서는 이건 바이러스나 다름없다면서 맹비난한 바 있고, GPL 3에 와서는 하드웨어에까지 강제력을 주장[2][3]하여 리눅스 진영의 리누스 토르발스에게 격한 반발을 사는 등 충돌이 있었다. MIT 허가서나 아파치 라이선스 같은 기타 많은 오픈 소스 라이선스들은 이런 전염성 조항을 제거하였으며, 현재는 이러한 형태의 라이선스의 비중이 GPL계열보다 많아지고 있다. 하지만 오래되고 강력한 소프트웨어들이 처음 개발될 당시 GPL로 개발된 것이 많아 아직 그 영향력은 막강하다.
참고해야 할 점이, GPL도 엄연히 법적 효력이 있는 저작물 라이선스다! 라이선스를 어기는 경우엔 저작권자로부터 고소당하고, 프로그램을 사용하지 못하게 될 수 있다.[4] 하지만 프로그램(의 원본)을 사용해서 만들었거나 프로그램과는 무관하게 만들 수 있는 2차 창작물에는 (프로그램의 일부가 포함되지 않는 한) 전염되지 않는다. 투하트 2가 대표적인 경우로, 핵심 부분인 XviD의 코드는 공개됐지만 이미지 등의 리소스는 공개할 의무가 없었다. 또한 공표되지 않은 저작물은 법의 적용을 받지 않으니 당연히 GPL 적용 대상이 아니며, 따라서 시험 목적으로만 개발하는 것도 제한이 없다. 물론 공개되는 순간 GPL이 전염되는 건 마찬가지라서, 원하지 않는다면 공개 이전에 모두 끊어야 한다. 이 전염에는 유출도 포함되는지라, 저작물 유출로 인해 GPL이 전염되는 사건이 일어나기도 했다.
LGPL(GNU Lesser General Public License)은 GPL과는 달리 사용에 대한 전염성 강제조항은 없으므로 GPL보다 CC BY-SA에 더 가깝다 할 수 있다. 해당 프로그램을 사용해도 소스를 재배포할 의무는 없지만 소스를 수정하는 경우에는 재배포 의무가 전염된다는 뜻. 때문에 LGPL은 원형 그대로 사용할 수 있는 라이브러리에서 많이 사용한다.[5] 라이브러리를 염두에 두고 만들어진 라이선스라서, 초기 LGPL 라이선스의 명칭은 GNU Library General Public License였다.
이용허락 시에 몇 판 및 그 이후 버전으로 배포하는 식으로는 이용허락이 가능하지만, "최신판으로만 배포"는 허용되지 않는다. 이는 GPL이 이용허락 철회를 금지하고 있기 때문인데, 최신판으로만 배포하게 해버리면 최신판이 공표되는 순간 이전 판이 자동적으로 철회되기 때문이다.
2 관련 문서
3 바깥 고리
- GNU General Public License v3.0 - GPL 3.0 영어 원문
- GNU 일반 공중 사용 허가서 v2.0 - GPL 2.0 한국어 번역본
- ↑ 단, CC에서도 프로그램 소스에는 GPL이나 MIT 허가서/BSD 라이선스 등 다른 오픈소스 라이선스를 쓰도록 권한다. 법적인 해석이 명확하지 않은 CC보다는 법적 해석이 더 명확하기 때문.
- ↑ 개발한 기기의 SW가 GPL의 조항을 모두 따르더라도 만일 이용자가 하드웨어에 개조된 별도 SW를 올려 구동시켰을 때 하드웨어가 실행을 거부(DRM)한다면 위반이라는 조항.
- ↑ 이처럼 수정된 SW가 하드웨어에서 구동되는걸 막는것을 Tivoization이라 한다
- ↑ 물론 제아무리 날고 기는 자유소프트에어 재단이라고 하더라도, 북한의 경우처럼 폐쇄국가의 정부가 작정하고 GPL을 능욕해버리면 손 쓸 방법이 없다.
- ↑ 원본 그대로 사용하면 원본에 대해 링크를 제공하는 것 만으로도 라이선스를 지킬 수 있으나, 수정이나 파생 작업이 이루어지면 수정한 소스까지 모두 배포해야 하므로 GPL과 다를 바가 없어진다. 때문에 파생 프로그램은 보통 GPL로 배포한다. 또한 일부 라이브러리는 GPL로만 배포하기도 하며, 가이드라인 준수 조건하에 이중 라이선스를 적용하기도 한다.