GPL이던 코드를 재작성 하면 GPL이 아니다?

klara의 이미지

오래전부터 GPL로 공개되어 있던 어떤 프로젝트가 있습니다.
그런데, 이 프로젝트가 앱스토어에 등록되어 있는 것을 알게되었습니다.
저도 GPL로 프로젝트를 공개하고 있기 때문에, 앱스토어에 GPL프로젝트를 올릴 수 있는지 알아 본 적이 있었고, 결론은 GPL로는 불가능하다는 것이었습니다.
그래서 자연스레 어떻게 GPL이었던 프로젝트가 앱스토어에 등록할 수 있었던 관심을 가지고 찾아보니 간단하더군요.
라이센스를 변경하여 클로즈드 소스 프로젝트로 전환한 것이었습니다.
물론 본인이 작성한 코드의 라이센스를 변경하여 새롭게 릴리즈하는 것은 자유입니다.
그리고 다른 사람이 기여한 부분에 대해서는 기여자의 동의를 모두 얻어야 합니다.
그런데, 해당 프로젝트의 개발자는 '다른 개발자로부터 기부받은 코드들은 완전히 새로 작성했다'고 설명하더군요.
설사 모든 것을 다 지우고 아무것도 없는 상태에서 소스코드를 전부 다 새로 작성했다고 하더라도, 이미 머리속에는 이전에 본 다른 사람의 GPL소스코드가 들어 있는데, 이걸로 GPL을 벗어날 수가 있을까요?
단 한번이라도 GPL의 소스코드를 본 사람이라면, 제 아무리 다시 쓴다고 해도 같은 기능을 구현했다면 그것은 GPL로 공개해야 하는 걸까요?
아니면, 같은 기능의 구현이라고 해도 충분히 다르게 구현했거나, 아니면 누가 보더라도 (너무 간단해서 혹은 너무 복잡해서) 그 구현이외에는 합리적인 구현이 나올 수 없는 기능이라면 '재작성'만으로도 GPL을 피할 수 있는걸까요?
여러분은 어떻게 생각하시나요?

추신: 이글은 프로젝트가 다른 앱스토어와 호환가능한 오픈소스 프로젝트가 아닌 클로즈드 소스 프로젝트로 전환한 것을 문제삼으려는 글이 아님을 분명히 합니다.
여기서 논하고자 하는 것은 해당 프로젝트가 코드를 재작성하여 GPL에서 non-GPL로 전환한 방법이 GPL 위반인가 아닌가하는 것입니다.

Prentice의 이미지

그런 재작성을 막을 수 있다면 자유 소프트웨어가 아닙니다. :)

unipro의 이미지

GPL은 저작권의 한 종류입니다.
저작권은 아이디어가 아니라 표현입니다. (*)
다른 사람의 코드에서 아이디어를 얻었다고 하더라도 완전히 새로 작성했으면 저작권 위반이 아닙니다.
저작권은 심지어 똑같은 소스라 나왔다해도 의도성이 없으면, 즉 우연히 같은 소스가 나왔다면 문제가 없습니다. (**)

(* 독창적인 또는 진보한 아이디어를 문제삼으려면 특허를 사용해야합니다.)
(** 이 부분이 특허와 다릅니다. 특허는 의도성이 없어도 아이디어를 사용했으면 걸립니다.)

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

klara의 이미지

제가 뭔가 오해를 했나보네요.
GPL 코드를 기업에서 클로즈드 소스인 제품에 가져다 쓰고 싶을 때는, 소스코드를 분석하고 루틴이나 알고리즘을 설명해줄 사람과, 설명을 듣고 소스코드를 작성할 사람을 나눠서 구현하는 사람이 원본소스코드를 보지 않게 한다라는 글을 본적이 있어서요.

GPL부분은 다 재작성했다고 하면서 소스를 비공개로 전환해버리면, 소스코드를 비교해 볼 수도 없고, GPL위반인지 아닌지 확인하는 길은 천상 코드 기여자가 재판으로 끌고가서 소스코드 공개 명령을 받아내는 수밖에 없겠군요.
그다지 승산은 없어보이지만요...

Prentice의 이미지

GPL 위반을 하지 않고 재작성을 할 수는 있지만, 베꼈다고 트집을 잡을 때를 대비해서, taint라고 부르며 그런 방식을 취하는 게 아닐까 생각합니다.

monovision의 이미지

위반이 아닌 것으로 알고 있습니다.

1개의 함수로 구성된 간단한 GPL 소스가 있다면, 해당 함수의 input, output 만을 만족하는 코드를 기존 소스를 보지 않고 구현을 하고 이 구현된 코드가 기존 코드와 다르다면 이는 GPL 을 위반한게 아닌 것으로 알고 있습니다.