Redirected from page "GFDL"

E,AHRSS

GPL

last modified: 2015-03-27 13:16:07 Contributors

General Public License, GNU 일반 공중 사용 허가서.

자유 소프트웨어 재단(FSF)에서 만든 오픈소스 소프트웨어를 위한 라이선스다. 자매품으론 약소 일반 공중 사용허가서(LGPL)와 더불어 문서에 써먹을수 있는 GFDL(GNU 자유문서 허가서)가 있다. GFDL는 문서에 대한 GPL로 볼 수 있으며, 위키백과의 라이선스이기도 하였다. 리처드 스톨만이 변호사들과 합의를 통해서 만들었다고 한다. 현재 GPL 버전은 3이며, 이와 비슷한 것은 CC BY-SA(크리에이티브 커먼즈 이용자 표기 - 동일조건 변경 허락) 라이선스가 있다.[1]

GPL의 주요 원칙은 다음과 같다. 특히 굵게 표시한 것은 GPL의 주요 특징인 '전염성'에 관한 부분이다.

  1. 컴퓨터 프로그램을 어떠한 목적으로든지 사용할 수 있다. 다만 법으로 제한하는 행위는 할 수 없다.
  2. 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경할 수 있다.(개작 가능)
  3. 컴퓨터 프로그램의 실행 복사본은 언제나 프로그램의 소스 코드와 함께 판매하거나 소스코드를 무료로 배포해야 한다.(원본 배포 전염성)
  4. 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 반드시 공개 배포해야 한다.(파생물 배포 전염성)
  5. 변경된 컴퓨터 프로그램 역시 반드시 똑같은 라이선스를 취해야 한다. 즉 GPL 라이선스를 적용해야 한다.(파생물 라이선스 전염성)

특히 저 전염성 조항이 문제가 되는데, GPL을 가져다 쓰거나 기능을 연결할 경우에는 무조건 자기 스스로도 GPL을 따라야 하는 무시무시한 조항이다. 마이크로소프트에서는 이건 바이러스나 다름없다면서 맹비난한 바 있고, GPL 3에 와서는 하드웨어에까지 강제력을 주장[2]하여 리눅스 진영의 리누스 토발즈에게 격한 반발을 사는 등 충돌이 있었다. MIT 라이선스나 아파치 라이선스 같은 기타 많은 오픈소스 라이선스들은 이런 전염성 조항을 제거하였으며, 현재는 이러한 형태의 라이선스의 비중이 GPL계열보다 많아지고 있다. 하지만 오래되고 강력한 소프트웨어들이 처음 개발될 당시 GPL로 개발된 것이 많아 아직 그 영향력은 막강하다.

참고해야 할 점이, GPL도 엄연한 라이선스다! 라이선스를 어기는 경우엔 자유 소프트웨어 재단으로부터 고소당하고, 최악의 경우 소스가 강제적으로 공개될 수 있다. 하지만 프로그램(의 원본)을 사용해서 만들었거나 프로그램과는 무관하게 만들 수 있는 2차 창작물에는 (프로그램의 일부가 포함되지 않는 한) 전염되지 않는다. 투하트 2가 대표적인 경우로, 핵심 부분인 XviD의 코드는 공개됐지만 이미지 등의 리소스는 공개할 의무가 없었다.

LGPL(GNU Lesser General Public License)은 GPL과는 달리 사용에 대한 전염성 강제조항은 없으므로 CC로 호환성을 따지면 CC BY가 된다.[3] 해당 프로그램을 사용해도 소스를 재배포할 의무는 없지만 소스를 수정하는 경우에는 재배포 의무가 전염된다는 뜻. 때문에 LGPL은 원형 그대로 사용할 수 있는 라이브러리에서 많이 사용한다.[4]
----
  • [1] 단, CC에서도 프로그램 소스에는 GPL이나 MIT/BSD 등 다른 오픈소스 라이센스를 쓰도록 권한다. 법적인 효력이 없는 CC보다는 법적 해석이 더 명확하기 때문.
  • [2] 개발한 기기의 SW가 GPL의 조항을 모두 따르더라도 만일 이용자가 하드웨어에 개조된 별도 SW를 올려 구동시켰을 때 하드웨어가 실행을 거부(DRM)한다면 위반이라는 조항.
  • [3] 수정에 대해서는 강제 조항이 남아있다. 이 부분만 CC BY-SA인 셈.
  • [4] 원본 그대로 사용하면 원본에 대해 링크를 제공하는 것 만으로도 라이선스를 지킬 수 있으나, 수정이나 파생 작업이 이루어지면 수정한 소스까지 모두 배포해야 하므로 GPL과 다를 바가 없어진다. 때문에 파생 프로그램은 보통 GPL로 배포한다. 또한 일부 라이브러리는 GPL로만 배포하기도 하며, 가이드라인 준수 조건하에 이중 라이선스를 적용하기도 한다.