GPL....

yglee의 이미지

현재 GPL 이 적용된 프로그램의 소스를 참조하여 새로운 프로그래밍 언어로 그와 유사한 프로그램을 만들 경우에도 똑같이 GPL을 적용해야 하는 것인지 알고 싶습니다.

(질문 올릴 곳을 마땅히 찾지 못해서 자유 게시판에 올립니다.)

redbaron의 이미지

gnoyel wrote:
현재 GPL 이 적용된 프로그램의 소스를 참조하여 새로운 프로그래밍 언어로 그와 유사한 프로그램을 만들 경우에도 똑같이 GPL을 적용해야 하는 것인지 알고 싶습니다.

(질문 올릴 곳을 마땅히 찾지 못해서 자유 게시판에 올립니다.)


참조..의 의미가 모호하군요.

GPL이 적용된 프로그램(이거나 프로그램의 소스)을 기반으로 새로운 프로그램을 만들 경우에 똑같이 GPL이 적용되는 것으로 알고 있습니다.

소스를 "참조"만 하시고 전혀 다른 언어로 자기만의 구현을 하신다면..다른 문제가 되겠지요.

(아는 범위내에서는 그렇습니다.)

yglee의 이미지

제가 생각하고 있는 것은...

A라는 프로그래밍 언어로 작성된 프로그램을 B라는 프로그래밍언어로 동일하게 구현하는 것입니다.(100%는 아니고 상당부분...)

그리고 프로그램의 기능 중 제가 필요없다고 생각하는 것은 제외시키고 추가적으로 필요하다고 생각하는 부분은 새로 만들어서 추가시키는 것입니다.

logout의 이미지

쉽게 생각해서 소스코드를 cut & paste 하면 GPL이 적용된다고 보시면 됩니다.

"I conduct to live,
I live to compose."
--- Gustav Mahler

codebank의 이미지

Quote:

GNU가 배포되는 방식

GNU는 사용상의 어떠한 제한도 존재하지 않는 공용 소프트웨어(public domain)가 아니다. 누구든지 GNU를 개작하고 배포할 수는 있지만 어떤 이도 GNU가 보다 널리 배포되는 것을 제한할 수 없다. 즉, 개작한 내용을 독점할 수 없다는 것이다. 나는 모든 버전의 GNU가 자유롭게 남아 있기를 보장받고 싶은 것이다.


GNU전문에 보면 위와 같은 말이 있습니다. 여기서 중요한것은 개작이라는
단어입니다.
원문을 살펴보니 개작modifications로 되어있더군요.
즉, 수정의 범위에 대해서 찾아봐야하는데 제가 FAQ에서 찾아봐지만 비슷한 경우에
대해서 나열한 문구가 없더군요.
하지만 위 내용을 읽어보면 그 창작물에대한 권리가 GPL에 보호받는다면 그것을
수정(여기서는 타언어도 포함된다고 나름대로 추측합니다.) 하였을 경우라면 그것도
결국은 GPL에 포함된다라고 해석이 되더군요.
만일 소스를 참조하지 않고 그것과 똑같은 동작을하는 기능을 다른 언어 또는 같은 언어로
만들었다면 GPL을 따르지 않아도 된다고 생각합니다.

반대되는 것으로 이것을 추측할 수 있는데 (물론 전적으로 소스를 참조하지 않았을때
만을 말합니다.) SAMBA는 MS-Windows의 네트워크 드라이브를 흉내 냅니다.
하지만 이것을 가지고 MS에서 소송을 걸지 않습니다. 이유는 소스가 유출되어서
그것을 이용해서 만들어진 결과물이 아니기 때문입니다. 만일 소스가 유출되어서
결과물이 만들어졌다면 MS에서는 당장에라도 소송을 걸고 법적보호를 받으려고
했을것이라고 생각이 드네요.
반대의 경우라면 즉, 소스를 참조하지 않고 GPL하에 있는 소프트웨어를 분석하여
만들었다면 그것은 GPL에 따르지 않아도 된다는 소리가 되지 않을까 싶네요.
하지만 소스를 참조하면 그건 창조물이 아니라 수정물이 되고 그렇게 되었을때에는
GPL에 따라야한다는 것을 의미한다고 생각합니다.

즉, 제생각에 개작은 다른 언어로의 포팅까지 포함한다는 의견을 내고 싶네요.

------------------------------
좋은 하루 되세요.

unipro의 이미지

제가 알기로는 아래의 내용과 같습니다. 틀린 부분도 있을 것으로 생각됩니다(지적해 주시면 감사하겠습니다.).

GPL인 A라는 프로그램의 소스를 참조를 했든, 하지 않았든, 새롭게 작성하는 프로그램에 A의 소스가 들어가지 않는 다면 A로부터의 GPL 라이센스는 적용되지 않습니다. 소스의 삽입이라는 것은 A라는 소스를 변경없이 복사하는 것만을 의미하지 않습니다. 그 프로그램에 변경을 가한 내용도 역시 GPL을 적용받습니다.

글을 쓰는 현재의 GPL 버젼은 적용 시기는(*) 배포가 일어나는 때로 알고 있습니다. 따라서 배포를 하지 않는다면, 얼마든지 GPL인 소스가 복사된 프로그램을 작성하더라도 GPL의 제한을 받지 않습니다.

따라서 GPL의 적용을 받지 않는 방법의 하나는 GPL 소스를 참고해서 그 원리를 아는 것으로만 한정하고, 프로그램은 처음부터 작성하셔야 합니다. 물론 GPL이 아닌 다른 소스를 집어 넣을 수도 있겠죠.(해당 라이센스로의 제약을 받겠지만) 어쨌든 GPL이 아닙니다. GPL의 적용을 받지 않는 또다른 방법은 프로그램을 배포하지 않는 것입니다.

단순하게 정리를 하였지만, 좀더 명확히 알기 위해서는 해당 용어들, 즉 '배포'니 '수정'...등의 정확한 정의를 찾아 보셔야 하고, 세세한 것에 있어서 미묘한 차이가 있는 부분도 알아보셔야 할 것입니다.

(*) GPL이 첨가된 소스를 가지고 만든 서버 프로그램을 통해 이익을 얻는 기업이 있다고 하더라도 이 프로그램을 배포하진 않았다면 GPL이 적용되지 않습니다. 이는 공공의 이익에 반하는 행위로 생각되어지기 때문에, 새로운 버젼에서는 이와 같은 문제에 대해서도 논의되었다고 알고 있습니다.

내 블로그: http://unipro.tistory.com