2008년 4월 26일 토요일

KMPlayer - 정말 GPL 위반 맞을까?

먼저 하고 싶은 말은, IANAL (I Am Not A Lawyer). 지금 하는 말은 내 지식, 경험, 공개된 문서에 기반한 판단일 뿐 것일 뿐 법률적인 전문적 판단은 아니다. 하지만 사실에 기반해서 말하는 건 자신할 수 있다.

GPL 위반 논란이 있을 때마다 사람들은 쉽게 초점을 벗어나곤 한다. GPL을 위반했느냐 아니냐는 사실 여부를 판단하는 문제이다. 이 문제는 GPL이 허용하는 것과 허용하지 않는 것이 무엇인데, 당사자와 해당 소프트웨어가 어떻게 했는지 사실 관계를 확인하면 되는 것이다. 이 소프트웨어를 좋아하든 싫어하든, 실수로 그랬든 악의적으로 그랬든, GPL을 좋아하든 싫어하든, 개발자들이 어떤 노력을 했든, 결과적으로 공익에 좋은 영향을 미쳤든 악영향을 미쳤든 간에 라이센스 위반 여부와는 상관이 없다. 라이센스라고 해도 애매한 부분은 항상 있지만, 애매한 부분 역시 라이센스의 내용과 사실 관계에 의해서 판단할 문제이지 좋아하느냐 싫어하느냐 등 외적인 문제로 판단할 문제가 아니다.

1. MPC 코드 사용: 모르겠다

KMPlayer의 GPL 위반에 대해 가장 많이 논란이 된 부분은 MPC의 코드를 베껴오지 않았냐는 논란이었다.

이 논란에서는 좀 재미있는 점이, KMPlayer 개발자가 몹시 위험한 사실을 시인했다. "코드를 참고해서 델파이 코드를 작성했다"라고 말한 것이다. C++ 코드를 보고 델파이 코드를 작성했다면 그게 개작일까, 아닐까? 답은 그럴 수도 있고 아닐 수도 있다. 그때그때 다르고 뭐라고 말할 수 없다. 사용하는 프로그래밍 언어가 무엇인지는 중요하지 않다. 프로그래밍 언어가 다르다는 주장은, 소스 코드를 그대로 복사/붙여넣기하지는 않았다는 정도 이상의 근거가 되지 못한다.

논란의 구실을 제공하기 때문에 보통 소프트웨어를 개발할 때는 애초에 이런 애매한 상황을 만들지 않으려고 노력한다. 라이센스 논란이 있는 소프트웨어를 다시 작성할 경우에는, 라이센스 문제가 있는 어떤 코드를 한번 읽었다면 그 사람은 같은 기능을 하는 코드를 작성하지 못하게 한다. 리버스 엔지니어링이 필요한 소프트웨어의 경우 리버스 엔지니어링을 하면 그 결과를 말로 설명하는 문서로 만들고 그 문서만 보고 다른 사람이 구현한다.


2. GPL/LGPL 바이너리의 포함: 위반

이건 너무 명백하다. 위반이다.

kmp.zip에 GPL 및 LGPL 소프트웨어를 함께 배포하고 있으며 이들 소프트웨어에 대한 저작권 고지가 빠져 있다. (앞의 MPC 코드 논란 이후 GPL 전문은 포함하고 있다.) 그리고 소스코드 배포방법중 하나도 지키지 않고 있다.

맨 위 디렉토리에 눈에 보이는 것만 열거해도 GNU iconv - LGPL, xvid - GPL, liba52 - GPL, libdts - GPL, libfaac - GPL, libfaad - GPL, libmad - GPL, libmpeg2 - GPL이다. BSD-like 라이센스로 배포되는 theora/vorbis 라이브러리 역시 copyright notice는 유지해야 하는데 빠져 있다.

KMPlayer가 GPL 위반이 아니라고 말했던 어떤 글에서는, "KMP에 사용되는 외부 라이브러리는 소스 코드에 수정을 가하거나 변경하지 않았고, CVS 버전의 소스를 컴파일하거나 바이너리 버전을 가져다 사용했다"라고 했지만, GPL 소프트웨어를 수정했든 그대로 가져다가 사용했든 GPL version 2의 section 3에 제시된 방법으로 소스코드를 제공해야 한다는 사실은 변함이 없다.


3. 링크 호환성 문제: 아마도 위반

위의 라이브러리들이 GPL이라면 이것들과 링크한 건 괜찮을까? GPL 버전 2 section 2에 보면,

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  ...

KMPlayer는 이들 DLL이 없이도 독립적으로 동작하므로 "separate and independent"라고 주장할 수도 있지 않을까? 역시 앞의 글을 보면 "KMP는 외부 라이브러리에 종속성을 가지지 않는다"라면서,  DLL 없이 실행 파일인 KMPlayer.exe 파일만을 떼어놓고 실행해도 동작한다고 말한다. DLL은 부가 기능일 뿐이다.

하지만 이 DLL이 어느정도 종속되느냐, 부가기능이냐 핵심기능이냐의 문제도 링크가 호환되느냐의 여부와는 별로 관계가 없다. 이 KMPlayer.exe 파일은 이들 GPL 라이브러리의 DLL과 링크가 되어 있고 DLL의 함수들을 레퍼런스하고 있다. KMPlayer가 이 라이브러리들을 사용하는 정확한 메커니즘은 알 수 없지만 FSF의 GPL FAQ에 따르면, 단순히 플러그인이라도 링크한 그 라이센스가 GPL이면 문제가 된다. 논란의 여지는 있지만. 적어도 지금까지의 사례를 보면 (NextStep의 Objective C 사건 등) 링크한 소프트웨어는 개작으로 생각하고 GPL을 따르는 쪽으로 진행되어 왔다. 그래서 위반이라고 보인다.


결론: 위반 맞다

부디 GPL 소프트웨어를 개발에 사용하는 사람들은 라이센스 전문과 GPL FAQ를 읽어 보고 사용했으면 좋겠다.

애매한 부분을 빼면 위반이 악의적이거나 고의적이라고 보이지는 않는다. 하지만 앞의 2번째 사안인 GPL/LGPL 바이너리의 포함처럼 명백한 위반이 몇년간 방치된 일은 이해하기 힘들다. KMPlayer가 판도라에 매각된 후에 개발자의 글에는, "...우리나라에서는 아직 오픈 소스에 대해서 사람들의 의식이 장착되지 않았습니다"라는 말이 있다. 의식이 장착되지 않다니, 대체 누구부터 의식이 장착되지 않은 것인가?

이제 KMPlayer도 기업이 만들게 되었으니 문제점을 명백하게 짚고 넘어가길 바란다.

댓글 31개:

  1. 그런데... GPL 이라는거 말이죠... 그냥 강제사항이 아니라 권고사항 아닌가요? 사용한 사람이 안그러겠다고 하면 어쩔 수 없는게 아닌가 해서요... 그냥 관례적으로 이렇게 하는게 좋으니까 이렇게 하는게 좋을 것 같아... 라고 해놓고 안지켰다고 다굴치는거 같아서 좀 안습이에요......

    답글삭제
  2. @깨비 - 2008/04/28 17:38
    강제 맞아요. 게다가 이런 얘기도 제가 위에서 말했듯이 위반 여부와는 관계없는 초점을 벗어나는 얘기지요.

    답글삭제
  3. @cwryu - 2008/04/28 20:31
    안녕하세요? 댓글이 좀 무례했던 것 같네요... 그냥 GPL이라는게 법적으로 무슨 효력이 있는건지 잘 몰랐거든요. 그리고 GPL로 공개된 소스를 보고 공부해서 이해한 것을 가지고 무언갈 해도 GPL 에 위반이 될 수 있다는게 잘 납득이 안가기도하구요... 단지 GPL 소스를 그대로 복사해서 붙여넣기 한게 위배가 되는건지... 아니면 GPL 소스를 참조했다는 것 자체만으로 위배가 되는 건지 이런 게 조금 불분명하다보니 강제사항이라고 할 수 있는건지 그런게 많이 혼란스러운 것 같아요.. 순전히 사용한 사람의 양심에 따라 달라질 수 있어보이기도 하구... 누가봐도 비슷한데 아니라고 하면 이런 경우는 어떻게 증명이 되는건지도 잘 모르겠구요... 이런데도 강제로 지켜야 하는 라이센스라니... 어렵네요;;;

    답글삭제
  4. @깨비 - 2008/04/28 17:38
    말씀하신 MPC 코드 논란은 모르겠다라고 말했구요. 그거 말고도 위반했다는 건 명백합니다.



    그것과 강제 여부는 관계가 없고 강제 맞아요.

    답글삭제
  5. 글을 읽다보니 애매한 부분이 있어서 반론을 제기합니다.



    2,3번의 경우 http://www.gnu.org/licenses/gpl-faq.ko.html#GPLInProprietarySystem 항목을 보면



    "그러나 많은 경우에 있어서, GPL 소프트웨어를 독점 시스템과 함께 배포할 수 있습니다. 이것이 가능하기 위해서는 GPL 프로그램과 그렇지 않은 프로그램들이 서로 결합되어 하나의 프로그램으로 작동하는 형태가 아니라 서로 독립적으로 실행되거나 통신하는 형태가 되어야만 합니다"



    라고 되어 있습니다. kmp.exe 와 많은 dll 들의 관계

    를 이 조항에 적용이 가능하리라 봅니다.



    이때 과연 COM 인터페이스가

    "서로 독립적으로 실행되거나 통신하는 형태가 되어야만 합니다"

    의 조항에 적용이 가능한가 여부가 관건이 될수는 있겠지만, 사용하고 있는 DLL이 없어도 정상(?)적으로 작동된다는것은 런타임에 특정 기능이 필요시에 사용한다는 의미이므로 위 조항의 적용이 가능하지 않을까 추측해 봅니다.

    답글삭제
  6. @지나가다 - 2008/05/10 21:26
    2번은 논란의 여지가 없는 명백한 위반입니다. 함께 배포할 수 있건 없건 상관없이, 함께 배포하면서 라이센스 고지와 소스코드 배포 조건을 안 지키고 있는 건 명백한 위반입니다.



    3번의 경우 어디까지가 "독립적인" 경계선이냐고 따지고 들어가면 애매해지기 시작하지만, FSF가 말하는 분명한 선이 링크 유무입니다. 확인해 보면 exe 파일이 DLL과 링크되어 있습니다. DLL이 없어도 동작한다는 것과는 별로 상관이 없습니다.

    답글삭제
  7. 물론 KMP가 2번의 GPL copyright 고지의무 위반을 한것은 명백합니다만, 좀더 문제가 큰 kmp.exe 에 대한 "소스 공개의 의무" 도 있는가에 대해서 토론해 보고 싶습니다.



    일단 ffdshow 와 같은 direct show 필터는 GPL이 아닌 실행파일과의 결합이 가능하도록 설계가 되어 있습니다. (미디어 플레이어와 같은..)



    즉 ffdshow 는 http://www.gnu.org/licenses/gpl-faq.ko.html#GPLPluginsInNF 에서 말하는 "이것은 GPL이 적용된 플러그인을 메인 프로그래과 함께 사용하는 것이 GPL 위반이 된다는 것을 의미합니다. 그러나 이러한 법률적 문제는 여러분이 만든 플러그인의 라이선스에 자유 소프트웨어가 아닌 프로그램과 링크하는 것을 허용하다는 예외 규정을 추가하는 것으로 해결할 수 있습니다. " 라는 조항이 만족되지 않으면



    1) ffdshow 자체가 GPL을 어긴것이 되던가,

    2) http://www.gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins 에서 말하는 "단순 호출" 형태이기 때문에

    GPL 적용에 문제가 되지 않던가 둘중의 하나가 될껍니다.

    답글삭제
  8. 다시한번 http://www.gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins 의 문구를 살펴보면 아직도 미스테리는 여전히 남습니다.



    If the program dynamically links plug-ins,

    -> KMP 는 플러그인과 다이나믹하게 연결되므로 이 조건은 만족합니다. (만일 static 하게 연결된다면 아래 조건도 필요없이 GPL 조건에 부합합니다.)



    and they make function calls to each other

    -> 만일 플러그인이 콜백등으로 상호간에 호출이 되지 않고, 단순히 EXE가 플러그인을 단방향으로 호출한다면 이 조건은 만족하지 않습니다.



    and share data structures,

    -> 함수 호출시 structure 를 파라메터로 넘길테니 이 조건은 만족할껍니다.



    we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins.





    위의 모든 조건은 "and" 로 연결되어 있으므로 하나라도 조건에 맞지 않는다면 위 조건은 무효가 됩니다...



    과연 KMP 는 위 조건에 부합하는 GPL 라이선스의 대상일까요 아닐까요..

    답글삭제
  9. @지나가다 - 2008/05/13 16:00
    KMPlayer에 포함된 문제 DLL은 direct show 필터가 아닙니다. 개발자가 밝힌 KMPlayer의 특징중의 하나이지만, KMPlayer는 direct show 없이 필터와 연결합니다. 그래서 exe 파일을 들여다 봤는데 직접 링크되어 있고 그 DLL의 함수를 레퍼런스하고 있습니다.

    답글삭제
  10. @지나가다 - 2008/05/13 16:07
    exe 파일을 들여다 본 바로는 그냥 일반 라이브러리처럼 링크되어 있습니다. 직접 함수를 레퍼런스하도록 링크되어 있는데, 로딩이 실패했을 경우에도 동작한다고 해서 링크된 걸 플러그인이라고 주장할 수는 없구요.



    콜백하는 라이브러리는 별로 없지만 (FAQ에도 써 있지만) 일반적으로 GPL 라이브러리와 링크하면 GPL이죠.

    답글삭제
  11. 네 맞습니다. 일반적으로 프로그램이 "static" 하게 GPL 라이브러리와 링크하면 GPL이 맞습니다.

    하지만, dynamic 하게 링크되면 이는 플러그인의 개념이 되며, 이 경우에 한해서 GPL 은 몇가지 조건만 만족하면 부분적으로 독점소프트웨어와의 링크를 허용하고 있습니다.



    따라서, KMP가 GPL인 파일을 사용하였다고 해서 무조건 GPL 위반이라고 하기 보다는, 좀더 명확한 증거가 필요할듯 합니다.

    (극단적으로 예를 들자면, WINDOWS OS 에서 GPL 소프트웨어가 돌아간다고 해서 WINDOWS 가 GPL을 위반한거는 아니지 않습니다. - 예가 이상하다면, 미디어 플레이어와 FFDSHOW 의 관계로 생각하셔도 좋습니다.)

    답글삭제
  12. @지나가다 - 2008/05/14 14:47
    GPL 위반 케이스를 많이 접해보지 못하신 것 같은데요. FSF가 말하는 바에 따르면 다이나믹 링크라도 적용됩니다. GPL 관련해서 가장 많이 얘기되고 있는 케이스입니다. 많이 얘기되는 만큼 논란이 있지만 본문에서 썼듯이 지금까지의 사례를 보면 FSF의 손을 들어줬습니다. 실제 오픈소스 소프트웨어들 GPL이 아니면 GPL 라이브러리와 절대로 링크 안 합니다.



    그리고 이상한 게 아니라 잘못된 예를 드셨는데요. GPL section 3에는 명시적으로 허용하는 링크가 하나 있는데 GPL 프로그램이 "OS major component"인 라이브러리와 링크하는 경우입니다. Windows에서 동작하는 GPL 소프트웨어는 명시적으로 이 조항이 있어서 허용되는 거지 링크가 허용되서 허용되는 게 아닙니다.

    답글삭제
  13. 제가 쓴 마지막 글이 지워진듯 하군요 ... (아니라면 알려주세요)

    저도 이걸로 뒤에서 숨어서 한 논쟁은 끝내도록 하겠습니다.



    정말로 kmp가 GPL을 어겼다고 생각하시고 이를 문제화 하고 싶으시다면, KMP 홈페이지를 통해서 판도라TV의 개발자와 이야기 해보시는것이 어떨까 의견 드립니다.

    답글삭제
  14. @지나가다 - 2008/05/15 10:33
    지운 적이 없는데요. 다시 써 주세요.

    답글삭제
  15. @지나가다 - 2008/05/15 10:33
    그리고 KMPlayer 홈페이지가 포럼을 말씀하시는 거라면, 게시판같은 데 올려봤자 사실과는 관계없는 KMPlayer 팬들의 초점을 벗어난 이야기만 오갈 게 뻔하니 사양하겠습니다. GPL 위반 논란에 대해 FAQ에 올라와 있는 글조차 GPL을 이해하지 못하고 쓴 글이니 말 다했지요.

    답글삭제
  16. 거 참.. 이거 조정할 수 있습니다.



    KMP에서 호출하는 방식을 완전히 플러그인 방식으로 전환하면 됩니다. 말하자면 kmp에서 플러그인을 호출하는 고유 api를 만들고 그 api에 맞춰 gpl라이브러리를 살짝 리폼하면 됩니다. 실제적인 의미에서 플러그인이라고 볼 수 있겠죠.



    이 라이브러리들 호출 방식이 문제가 되는 것이지 궁극적으로 이 라이브러리들에 KMP가 종속되어 있는 게 아니므로 솔직히 제가 볼 때 이런 식으로 바꾼다고 해도 모양새만 살짝 다르지 똑같습니다.



    그리고 이걸 가지고 위반여부에 왈가왈부하는 건 KMP흠집내기밖에 안되는 것 같군요. 이렇게 따지면 곰플레이어는 더욱 심각하죠. 목적이 있는 글이어서 그렇다면 뭐...

    답글삭제
  17. 아.. 이거 fsf쪽에 문의해 보신 분은 없나보죠? 좀 답답허네요.

    답글삭제
  18. http://forum.doom9.org/showthread.php?p=693442#post693442

    여기 보면 위에 제가 쓴 거랑 똑같은 얘기군요.

    답글삭제
  19. @음. - 2008/05/19 07:11
    연결한 방법이 문제이지 앞에서 말했듯이 라이브러리에 종속되어 있냐 아니냐와는 링크 호환성과는 상관이 없습니다. 잘 바꾸면 위반을 벗어날 수 있겠죠. 어쨌든 현재 함수를 직접 레퍼런스하는 링크는 위반으로 보인다는 겁니다. 게다가 2번처럼 논란의 여지가 없는 명백한 위반도 있구요.



    곰플레이어는 여기서 얘기를 안 했지만 그것도 GPL 위반 맞습니다. 곰플레이어는 이미 ffmpeg의 위반자 블랙리스트에 올라가 있을 정도입니다. 곰플레이어가 위반이건 아니건 KMPlayer의 위반과는 아무 상관이 없지요. 전 아예 윈도우를 사용하지 않으므로 특정 플레이어의 흠집내기같은 건 관심이 없습니다. 제가 처음에 말한 초점을 벗어나는 리플입니다.

    답글삭제
  20. "곰플레이어는 이미 ffmpeg의 위반자 블랙리스트에 올라가 있을 정도입니다."

    이거 해지된 것 같습니다. 가서 확인해 보시길 바랍니다.



    GPL바이너리 포함만으로 위반이 된다는 거야 그거 빼면 될일이니 조정이 가능한 부분이라 생각합니다.



    그리고 실제로 논란이 되는 부분은 여기서 말하고 있는 부분과는 별로 상관이 없는 것 같군요. 제 생각에는 그 부분이 더 중요한 것 같네요. 여기서 논하는 것은 주로 간접침해에 해당하는 것으로 위에서 언급한 것처럼 충분히 조정가능한 부분으로 보입니다.



    특히 함수호출 부분은 엎어치나 매치나 차이일 뿐입니다. 실제로는 depentent하느냐 그렇지 않느냐가 더 중요하게 여겨집니다. ffmpeg자체도 깨끗한 거 아닙니다. mplayer는 더욱 그렇고요. 털어보면 복잡하죠. 문자적으로 해석하면 그렇다는 겁니다.



    ffmpeg에서 많이 하는게 코덱 리버싱하는 겁니다. 그렇지 않고서야 어찌 proprietary 코덱을 사용하거나 만들 수 있겠습니까? mplayer에서 배포하는 코덱 팩도 들여다보면 그다지 깨끗한 물건이 아닙니다.



    위 doom9 링크에 doom9운영자가 적었지만 이 부분은 fsf쪽에서도 자기들도 실제로 해석할 때 혼란스러워할 정도로 명쾌하게 판단하기가 어렵고 문자적으로 엄격하게 해석해서 적용하기 어려운 부분이 있습니다. 실제적인 부분에 들어가보면 그렇다는 거죠.



    libavcodec의 함수를 호출하는 게 문제가 된다는 건 솔직히 과한 판단입니다. 이것은 mediainfo라이브러리의 경우와 같은 경우를 보면 쉽게 이해할 수 있습니다. 만약 libavcodec의 바이너리를 빌드해서 배포하는 사람이 있고 이 라이브러리에 외부에서 호출가능한 함수목록을 설명서로 포함한다고 한다면 아무런 문제될 것이 없습니다. 그걸 안해주기 때문에 들여다봐서 그 함수를 불러다 쓰는 것일 뿐이죠. 뒤집어서 말하면 libavcodec쪽에서 안해주면 kmp쪽에서 반대로 해줘도 됩니다(위에서 언급한 대로).



    참고로 mediainfo 라이브러리는 gpl/lgpl을 따르는데 이 경우 GPL이라고 할 수 있을 겁니다. 그런데 이 라이브러리는 GPL임에도 불구하고 바이너리 형태로도 배포가 되며 c나 델파이 등 각 언어로 라이브러리를 호출할 수 있도록 되어 있고 또 라이브러리를 개인의 프로그램과 함께 배포할 수 있도록 되어 있습니다. 그럼 이것은 라이브러리 자체가 GPL을 위반하고 있다고 해석해야 하는 걸까요?



    문자적으로 엄격하게 해석하면 문제가 있지만 실제적인 필드에서 따지고 보면 정말 하잘것없는 논쟁이라는 겁니다. 그래서 이 라이브러리가 kmp실행에 필수 불가결한 라이브러리가 아니기 때문에 이런 형태로 사용된 라이브러리가 문제가 있다고 실제로 하기는 어렵습니다.



    구조적으로 반쯤 오픈되어 있고 조금 신경쓰면 완전히 api를 분리할 수도 있지만 솔직히 그게 시간 낭비 아닙니까? 플러그인 방식으로 api를 나눈다고 해도 실제로 플러그인을 만들 사람이 없다는 게 그 이유입니다. 이것이 문자적해석이 아닌 실제적 위반사유가 된다는 것은 상식적으로 과민반응이라고 생각합니다.



    그 밖에 실례로 단지 종속성 없는 플러그인 형식(완벽한 구조는 아니지만)의 GPL 라이브러리가 배포패키지에 포함되어 GPL 위반 사례가 된 케이스가 있는지 확인해 보셨습니까? 특히 해외의 경우에 말입니다. 만약 해당 사례가 있다면 소개를 해주시면 감사하겠습니다.



    doom9 링크의 논쟁에도 나타나 있다시피 세번째 케이스에 대한 해석은 과도하며 첫번째의 경우 메모리 덤프등을 통한 명백한 증거 없이 말하는 것은 단순한 slander에 불과할 것입니다. 첫번째의 경우 이걸 어떤 이는 mpc를 델파이로 translation한 것이 kmp라는 가당찮은 소리를 하는 사람도 있는데 이 부분에 대해서는 kmp영문 홈에 mpc개발자가 지적한 부분에 대해서 델파이 대응코드를 보여주면서 kmp개발자가 직접 지적한 바가 있습니다.



    프로그래밍을 실제로 하시는 분인지 모르겠는데 동종 언어간의 소스도 남이 작성한 것은 이해하기가 매우 어렵습니다. 실제로 kmp포럼에서 mpc개발자가 지적한 부분을 유심히 읽어보면 그 개발자는 코드번역에 대해서 이야기하고 있는 것이 아니라 kmp가 mpc와 동종 언어로 짜여진 것으로 가정하고 코드복사를 의심하고 있음을 알 수 있습니다. 물론 메모리덤프를 해도 나오지 않으니까 확신할 수 없다고 하면서 인터페이스가 유사한 부분의 코드복사를 의심한 것입니다. 델파이를 하는 사람의 입장으로서 답변은 당연히 상식적인 수준이었습니다. 재생기 돌아가는 원리야 다 비슷하다. 인터페이스는 델파이 폼으로 그렸다는 겁니다. -_-



    그리고 마지막으로 여기 적으신 글을 유심히 읽어보면 KMP에서 GPL때문에 직접적인 마찰이 있는 부분(소스코드 도용? 모르겠다, 종속성? 그거를 말하는 게 아니다)에 문제가 없어도 KMP는 GPL위반이다라고 말하면서 두가지 이유(GPL 라이브러리 포함, 함수호출문제)를 들고 있는데... 원래 KMP의 GPL논쟁은 소스코드 도용과 종속성이 먼저였습니다. 그러니 당연히 이를 배제한 부분을 들고 가서 위반이라고 하면 KMP홈에서는 웬 뜬금없는 소리냐고 할 수 밖에요.



    솔직히 뒤의 두가지 사유는 앞에 것에 비하면 트집잡기에 불과한 것 같습니다.

    답글삭제
  21. @지나다 - 2008/05/23 00:19
    어지럽지만 하나하나 들어 보지요.



    1. ffmpeg 위반자 목록 (Hall of Shame): http://ffmpeg.mplayerhq.hu/shame.html



    곰플레이어가 맨 처음 이 목록에 올라갔고 지금도 올라가 있습니다.



    2. 다른 소프트웨어 예를 드셨는데 오해하는 부분을 설명해 드리면,



    ffmpeg이 특허 문제나 리버스를 금지하는 코덱의 리버스 등 때문에 논란이 있는 건 맞습니다. 하지만 리버스엔지니어링 자체는 대부분 국가에서 합법입니다. 리버스한 코드를 보고 그대로 베꼈다면 그건 리버스 엔지니어링이 아니라 저작권 침해지요.



    바이너리만 배포하면 라이센스 위반입니다. GPL은 바이너리로 배포할 수 있지만 소스도 배포해야 하는 겁니다. mediainfo 라이브러리는 위반이 아닙니다. mediainfo는 바이너리도 배포하고 동시에 소스코드를 배포합니다. 확인해 보세요.



    3. 비슷한 GPL 위반 사례는 수없이 많습니다만, 최근의 극적인 예를 하나 들면..



    플레이스테이션2용 게임인 "ICO"가 얼마전에 GPL 라이브러리인 libarc를 사용하는 게 밝혀졌습니다. 이 라이브러리는 압축 파일을 읽는 보조 라이브러리입니다. 어떻게 됐을 것 같습니까? 게임 전체 소스코드가 오픈됐습니다.



    4. MPC 코드 논란은 모르겠다고 말했습니다. 다른 위반이 마치 덜 중요한 것처럼 말씀하시는 데는 동의하지 못하겠군요. 어느 부분을 위반하든 GPL을 위반하는 형태로 배포하면 GPL section 4에 따라 전체 소프트웨어의 사용 권한이 박탈됩니다.



    게다가 KMPlayer 개발자와 그 FAQ 글을 보면 2/3에 대해서도 아무런 문제가 없는 것처럼 말하고 있었죠.

    답글삭제
  22. trackback from: KMPlayer 공식 블로그를 오픈 합니다!
    KMPlayer 공식 블로그는 kmplayer.com의 Forum를 이용하지 않는 대부분의 사용자를 위해 KMPlayer의 정보 제공을 목적으로 개설된 블로그 입니다. 따라서 KMPlayer에 대한 제안하기와 버그리포트는 되도록이면 kmplayer.com을 이용해 주시기 바랍니다. 감사합니다. KMPlayer 공식 사이트: http://www.kmplayer.com

    답글삭제
  23. KMP나 기타 플레이어가 GPL을 위반하지 않게 하는 방법은 간단히

    KMP 플레이어와 GPL 파일 설치파일 등 2가지 파일을 설치 하게끔 하는게 제일일것 같습니다.



    즉 kmp 플레이어 설치 파일(설령 동작 하지 않더라도)은 클로즈 소스



    라이센스 문제가 있는 GPL코드 부분은 Add-on 형식의 설치 파일로 제공하는거죠



    이경우의 문제는 어떨지 모르겟습니다만 최선의 선택은 GPL 공개이겟지만



    차선의 선택으로 될수도 있지 않을까 합니다

    답글삭제
  24. @자우랑 - 2008/06/22 22:23
    아마 링크 위반을 갖고 말씀하시는 것 같은데요.. KMP.exe와 GPL 라이브러리와의 링크 방법이 문제가 있다면, 그런 식으로 따로 배포한다고 해서 문제가 없어지지는 않습니다.

    답글삭제
  25. trackback from: 죠커의 생각
    KMPlayer와 곰플레이어의 GPL 위반에 대한 명쾌한 글. 우리가 쓰는 상당 수 영상 프로그램은 법적, 도덕적 양심을 버린 프로그램.

    답글삭제
  26. trackback from: KMPlayer FFMPEG의 Hall of Shame에 등록
    FFMPEG 프로젝트에서는 Hall of Shame이라는 이름으로 GPL/LGPL 위반자 목록을 정리해 놓는데.. GOM플레이어에 이어 KMPlayer도 새로 등록되었다. FFMPEG에서 문제 삼는 이유는, 전에도 내가 썼던 글 (KMPlayer - 정말 GPL 위반 맞을까?) 중에서 명백하게 위반한 부분, 배포할 때 GPL/LGPL 바이너리 코덱을 소스 없이 배포한 사실 때문이다. 해결하자고 마음 먹는다면 (그리고 다른 의심스러운 부분이 위반이 아..

    답글삭제
  27. @지나다 - 2008/05/23 00:19
    본글 내용과 상관없는 내용이라서 죄송합니다만..

    창우옹이 댓글중에 다신 소니 ICO의 소스 공개 여부에 대해 궁금해서 그러는데요.

    소니의 ICO가 정말로 소스를 공개 했나요? 했다면 어디서 정보를 얻을 수 있나요?

    실제로 위반했다는 얘기는 많이 보이지만 소스 공개에 대한 얘기는 아무대서도 찾을 수가 없어서요...

    답글삭제
  28. @지나다 - 2008/05/23 00:19
    법은 엄격합니다. 법적인 문제를 따질 때에는 "문자적으로" 해석해서 엄밀하게 따져야 하는 게 맞습니다. 민형사를 막론하고 소송이 걸려서 정식 재판으로 가면 괜히 수 개월에서 수 년이 걸리는 게 아닙니다.

    답글삭제

뜬금없이 문법 따위를 지적하거나, 오래된 글에 링크가 깨진 걸 지적하는 등의 의미 없는 댓글은 자제해 주시기 바랍니다. 그러한 경우 답 없이 삭제합니다. 또한 이해 당사자이신 경우 숨어서 옹호하지 마시고 당사자임을 밝히시길 바랍니다.

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.