GPLv2와 GPLv3 왜 호환되지 않는가?

지리즈의 이미지

일단, GPL과 같은 오픈소스 라이센스를 접할 때, 중요한 것은
이러한 라이센스를 법률이나 규칙같은 것으로 이해해서는 안된다는 점입니다.
이는 동의(同議)를 전제로 하는 계약입니다.
실제로 이러한 오픈소스 관련 라이센스 위반은 국내법상 일반적으로 형사처벌 대상에 준하지 않습니다.(논란의 여지가 있지만)
대부분은 계약위반에 따른 민사 문제일 가능성이 높으며 형사문제로 갈 가능성은 거의 없다고 한답니다.

또한, 법은 일정한 절차를 걸쳐서 개정이 되면 전반적으로 영향을 미치지만,
계약은 계약 당시의 내용을 변경하기 위해선, 계약 당사자 모두의 합의가 반드시 필요합니다.
법처럼 다수 혹은 일부의 의견으로 반영된 내용을 일방적으로 적용할 수 없다는 뜻입니다.

따라서, GPLv3가 나왔다고, GPLv2를 가진 프로젝트들에 대해서 라이센스 업그레이드를 강요할 수 없습니다.
물론, 권장하고 있지만, GPLv3로 업그레이드를 하는 것은 오직 그 코드를 소유하고 있는 사람의 선택의 몫으로 남아 있을 겁니다.

일부는 GPLv2와 GPLv3가 호환성을 가질 수 없는 것에 의문을 가지시는 분들도 계실 겁니다.
RMS가 GPLv3로 업그레이드를 유도하기 위한 음모가 있지 않을까 하는 등으로요.

실제로 GPLv2와 GPLv3 두 라이센스 모두 자기 자신과 동일한 라이센스 조건하에만 사용할 수 있는 copyleft 라이센스입니다.
GPLv3에 GPLv2와의 결합을 수용하는 내용을 포함시켰다고 하던들,
GPLv2 자체가 이를 허용하지 않으면 아무런 효력을 가질 수 없습니다.
그럼 GPLv2도 수정하면 되지 않을까? 생각보다 쉽지 않습니다.
앞에서 말했듯이 GPLv2는 코드 제공자들은 물론 사용자들을 포함한 다자간의 계약입니다.
GPLv2를 수정하기 위해서는 코드 제공자들의 모든 합의가 있어야 합니다.
달리 말하면 GPLv3로 이전하는 것 만큼 험난한 길이라는 뜻이고, 실질적으로 실효성이 매우 적습니다.

어차피, copyleft 라이센스의 특성상 이러한 비호환성은 이미 예견된 일입니다.

일단, 중요한 것은 GPLv2하에 릴리즈 되었던 소스들은 여전히 GPLv2라는 남아 있을 것이란 점입니다.
이 또한 코드제공자와 사용자들간의 계약 상의 문제로 인한 어쩔 수 없는 선택입니다.

gtk, gnome 같은 거대한 프로젝트들은 한동한 GPLv3로 가기 위해서,
일부 코드를 다시 작성하는 것과 같은 많은 홍역을 겪을 것으로 보입니다.
코드의 소유권을 FSF나 다른 오픈소스 재단에 기부할 것을 FSF가 누차 권장했던 것은
이러한 라이센스의 변동이 있을 때, 발생하는 혼란을 최소화 할 수 있기 때문입니다.
이번을 교훈 삼아 오픈소스 커뮤니티에 활동하시는 분들은
이러한 라이센스에 대해서 다시 한번 잘 고려해 보시고,
자신의 가지고 있는 코드 소유권을 이러한 재단에 기부하는 것을 심각히 염두해 두시길 바랍니다.

이번 GPLv3가 나오면서, GPL의 배타성에서 실망하시는 분들이 생각보다 많은 것 같은데,
이는 모두 GPL 혹은 라이센스에 대한 이해 부족에서 기인한다고 보입니다.

가장 성공한 라이센스라고 불리우는 GPL이 이렇게 까지 널리 퍼지고 많이 애용되는 이유는
바로 그 배타성에서 기인한다는 것은 매우 자명한 일이니까요.

댓글

cwryu의 이미지

GPLv2에서 "how to apply..." 부분에서 안내하는 방법에 따라, 코드에 "or (at your option) any later version"이라고 쓰여 있다면 문제 없습니다. gtk/gnome도 그렇게 되어 있구요.

오히려 GPL S/W중에서는 리눅스 커널이 특이한 경우입니다. later version이라고 안 붙인 부분이 꽤 많습니다.

MySQL은 GPLv2로 남아 있겠다고 최근에 later version이라는 말을 빼 버렸죠.

----
익명이나 오래전 글에 리플은 무조건 -1

지리즈의 이미지

Luis Villa씨의 인터뷰 내용을 차용한 부분인데, 다시 확인해 보니 gnome만을 언급했네요.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

지리즈의 이미지

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

cdpark의 이미지

Quote:
GPLv2에서 "how to apply..." 부분에서 안내하는 방법에 따라, 코드에 "or (at your option) any later version"이라고 쓰여 있다면 문제 없습니다. gtk/gnome도 그렇게 되어 있구요.

GPLv2와 GPLv3가 호환되지 않는다면 순수한 GPLv2와 GPLv2+(or any later version 표현이 있는 GPLv2) 간의 호환성 문제가 생길 수 있습니다.

GPLv2 소스를 GPLv2+로 이식한 후에, 이 부분을 다시 GPLv3로 옮긴다면 cyryu 님 견해에 따르면 유효한 경로가 됩니다. (사실 아니죠??)

결국 GPLv2+는 GPLv2와 GPLv3의 dual license를 의미하게 되므로, GPLv2, GPLv2+, GPLv3는 서로 호환불가능한 라이선스입니다. (GPLv2+에서 GPLv2로, GPLv2+에서 GPLv3로의 이식은 조금 더 따져봐야겠죠? GPLv2+가 dual license인지 아닌지도 해석이 필요하고요.)

곧 chaos가 도래하는걸까요?

cwryu의 이미지

서로 호환은 아니고 한 방향으로만 호환이죠. 말씀하신 사례에선 애초에 GPLv2 소스를 GPLv2+로 이식한다는 게 불가죠.

GPLv2+가 GPLv3가 안 된다면 FSF가 그렇게 열심히 광고를 할 리가..

http://www.gnu.org/licenses/gpl-faq.html#VersionThreeOrLater

----
익명이나 오래전 글에 리플은 무조건 -1

dg의 이미지

Quote:

실제로 라이센스 위반은 일반적으로 형사처벌 대상이 아닙니다.

라이센스 위반은 형사처벌 대상 맞습니다.
프로그램의 창작자는 자신이 창작한 프로그램에 대해 저작권을 갖게 되고
다른 사람은 저작권자의 허가 없이 해당 프로그램을 복제, 개작, 전송, 배포 등을 할 수 없습니다.
따라서 이러한 것들을 허가해 주는것이 라이센스(사용허가서)이고
라이센스 위반이라 함은 저작권자가 허가하지 않은 복제, 개작, 전송, 배포 등을 행한 경우이므로
이는 저작권 침해이고 형사처벌 대상입니다.
우리나라의 컴퓨터프로그램보호법에서는 이러한 경우 5년 이하의 징역이나 5천만원 이하에 벌금형에 처할수 있다고 명시하고 있습니다.
지리즈의 이미지

수식어를 붙인 것은 국내법상 사실 모호하기 때문입니다.

전의 GPL 관련 소송 : 엘림넷 대 하이온넷 사건관련되어서,
개인적으로 아는 변호사에게 자문을 구한바,
국내에서는 GPL 위반시 저작권 침해로 고소는 가능할 수 있지만 승소하기 어려울 것으로 판단되고,
실질적으로 계약위반으로 민사만이 가능한 것으로 소견을 들었습니다.

독일에서 GPL 위반에 대한 소송사례가 있었는데, 그 때도 형사까지는 가지 않고,
계약 위반으로 인한 민사소송만으로 진행되었다고 합니다.

실질적으로 국내에 제대로된 GPL 위반에 대한 판례가 없는 관계로 어떻게 될지는 미지수라고 해야 겠지만,
법률적으로는 그렇다고 하네요.

본문은 오해의 소지가 있을 수 있겠네요.
수정해야 겠습니다.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

queryman의 이미지

그래도 해당 코너를 사용한.. 제품은 판매 금지가 되겠죠??

-------------------------------------------------------------------------------------------
생각은 지나가던 개새끼도 하지.. 실천하는건?? 나도 할수있지...


-------------------------------------------------------------------------------------------
이놈의 IT 생활... 실증나고 짜증나고...
근데 왜 맨날 it관련 소식만 보고 ;;; 님휘

지리즈의 이미지

민사소송이라도, 가압류나 판매금지가처분신청이 가능한 것으로 알고 있습니다.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

권순선의 이미지

gpl, lgpl, mpl과 같은 라이센스들은 그 결과물도 동일한 라이센스로 배포되는 것을 강제한다는 특징이 있습니다. 이러한 라이센스들을 reciprocal(호혜적) 라이센스라고 하는데 gplv3가 그다지 환영받지 못하고 있는 것은 그 제약 사항이 더욱 모호해지고 광범위해졌기 때문입니다. 그러나 한편으로는 그러한 제약사항들과 배타성으로 인해서 gpl로 릴리즈된 코드가 커뮤니티 안에서 계속해서 보호를 받을 수 있었다는 점에서 그 가치와 역할은 결코 작지 않습니다.

익명 사용자의 이미지

LGPL은 동적 링크 형태로 남겨 두면 결과물은 동일한 라이센스로 배포되는 것을 강제성이 없지 않나요? 제가 잘못알고 있는것인가요. 소스를 수정하지 않고 동적 라이브러리 형태라면 그것을 링크한 응용프로그램의 라이센스는 제작자의 맘인것으로 아는데.. 정적 링크의 결과물이라면 라이센스를 따라가겠지만.

freecatz의 이미지


너무 어렵습니다. 아직 한글로 번역된것도 없고...

그렇다고 번역 해서 보려니..영어 실력의 압박...

그냥 이렇게...GPL v2처럼 대충 알고 넘어 가야 할듯..

아직 개발자가 아니기에...그닥 쓸모 있는건 아닌듯...^^:

엔드 유저에겐 한없이 필요 없는 것 중에 하나???

---------------------------------------------------
1t의 생각보다 1g의 실천이 낫다.

홍원범의 이미지

늦어져서 죄송합니다^^;;
http://wiki.kldp.org/wiki.php/GNU/GPLV3Translation 입니다.

Open-Source Anthropology

Open-Source Anthropology

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.