Theus of Shipus가 GPL에 적용됨-모든 파생 부품을 교체 할 경우 프로그램을 재 라이센스 할 수 있습니까? 남아 있는지의 문제를 발생시킵니다.” 그대로

나는 GPLv2 프로그램을로 번역 했지만, 설계대로 확장하고 그 상당 부분을 다시 쓰는 것이 어렵다는 것을 알았다. 이 프로그램은 이제 구조적으로 완전히 다르지만 사용되는 몇 가지 언어로 번역 된 기능이 있습니다.CPython

테세우스 역설의 선박 (위키 백과에서 언급 한 바와 같이) “모든 구성 요소를 교체했다 물체가 근본적으로 동일한 개체 남아 있는지의 문제를 발생시킵니다.”

그대로 사용하는 기능을 대체 할 수 있다면 선호하는 라이센스로 라이센스를 다시 부여 할 수 있습니까?

관련된 진화 된 아키텍처를 다른 라이센스로 재사용 할 수 있습니까? 나는 그것이 그 자체로 매우 유용 할 것이라고 생각하지만, 그것이 그것이 GPL 라이센스로 “오염”되었다는 생각을 좋아하지 않는다.

후속 조치 : 저작권 소유자에게 연락 하기로하고 라이센스 허가를 받았습니다 . 때로는 가장 좋은 방법은 프로그래밍 방식이 아닌 사회적으로 상호 작용하는 것입니다!



답변

첫째, 답변은 아니요 (번역의 경우)입니다. 법적으로 라이센스를 재 허가하거나 원래 라이센스 합법성을 벗어난 어떠한 것도 할 수 없습니다. 원래 저자의 작업보다 10 배나 많은 작업을 수행했을 수도 있지만 중요하지 않습니다. GPL 때문이 아니라 깔끔한 디자인이나 재 작성이 아니기 때문입니다.

나는 1992 년에 오래된 MUD 코드베이스를 대대적으로 다시 작성했을 때이 문제를 간단히 해결했습니다. 우리는 성공적인 게임을했지만 우리 자신의 일을하고 싶었고 사람들은 기꺼이 돈을 지불하려고했지만 DikuMUD 라이센스는 우리가 돈을 벌 수 없도록 엄격히 금지했습니다. 당시 경쟁 업체도 동일한 코드베이스를 기반으로하여 저작권을 무시하고 저작권의 모든 흔적을 제거하며 기본적으로 자신을 포함한 모든 사람에게 거짓말을하기로 결정했습니다. 그들의 논리는 “원래 코드가 존재하지 않음”과 “우리는 대규모 재 작성 및 개선 작업을 수행했으며”일반적으로 그들이 20,000 줄의 코드로 시작했다는 사실을 무시했습니다. 그들은 게임에서 아이템에 대한 비용을 청구하고 너무 많은 돈을 벌기 위해 멈췄습니다.

나는 부러워했다. 그러나 나는 저작권법을 연구하고 양심을 상담했으며, 솔직히 게임 서버를 처음부터 설계하지 않았기 때문에 내가 작성한 코드를 사용할 수 없다고 결정했습니다.

그래서 나는 항상 W. Richard Steven의 유닉스 네트워크 프로그래밍 사본을 가지고 입에 돈을 넣고 처음부터 글을 쓰기로 결정 했습니다. 처음부터 글을 쓰면 DikuMUD를 다시 쓸 때보 다 훨씬 더 많은 것을 가르쳐 주었고 다른 사람의 어깨에서는 것이 무엇인지 실제로 이해하지 못했다고 가르쳤습니다. 6 개월 안에 전화 할 수있는 50,000 줄의 운영 코드가있었습니다. 나는 그것을 MUD ++로 명명하고 BSD에서 발표했다. 초기 스타일 C ++로 잘못 작성되었지만, 내가 아는 첫 번째 무료 오픈 소스 C ++ MUD였습니다. 오늘날까지 아무도 나를 빼앗아 갈 수 없습니다. 나는 당시 최고의 TCP 서버를 가지고 있었고 아무도 다른 플레이어를 떨어 뜨리지 않고 “핫 재부팅”을 할 수 없었고 곧 모든 사람들이 그 기능을 훔쳤습니다.그리고 많은 GPL MUD에는 BSD 코드 조각이 있습니다 .GPL이 어떻게 BSD-웨어를 하이재킹 할 수 있지만 그 반대는 아닙니다 ). 결국, 나는 계속 움직여서 결정이 내 운명에 대한 결정 또는 휴식과 같지 않았지만 다른 사람들은 한동안 많은 돈을 벌었지만 마지막에는 그래픽 게임 세계에서 줄어드는 것처럼 보였습니다. 더 이상 텍스트에 대한 대량 수요가 없습니다.

이야기는 끝나지 않습니다 … 몇 년 후, 나는 IBM에서 일하고 있었고 Disney는 Epcot 센터를 위해 실시간 3D 멀티 플레이어 게임을 작성하도록 우리를 고용했으며 MUD ++의 TCP 코어를 기반으로 사용할 수있었습니다. 게임 서버! 내 자신의 코드를 소유하지 않았다면, 그 코드를 사용할 수 없었기 때문에 몇 주 동안 코딩 시간을 절약 할 수있었습니다. 결국, 나는 내가 선택한 것을 자랑스럽게 생각하며 아이들에게 이야기 할 이야기가 있습니다.

사람들은 다른 사람의 프레임 워크로 시작하여 얻을 수있는 이점을 과소 평가하고 과소 평가합니다.

“소유”한다고 생각되면 스스로 테스트하십시오. 당신 옆에 파이썬 책을 가지고 시작하십시오. 기분이 어떤지보십시오. 속이지 말고 이전 코드베이스를 보지 마십시오. 출력을보십시오. 정직한 연구를 수행하면서 모든 측면을 스스로 생각하도록 강요하십시오. 더 좋을 것이고 더 나은 제품을 가질 것입니다.

그러기 전에 원본 저자에게 문의하십시오. 그들이 기꺼이 재 허가 할 것인지 물어보십시오. 바이너리를 판매하려는 경우 로열티를 제공하십시오. 90 년대와 2000 년대에 GPL을 발표 한 많은 작가들은 현재 30 대, 40 대, 50 대에 있으며 소프트웨어에서 생계를 유지하는 것이 무엇을 의미하는지 이해합니다. GPL에서 MIT, Apache, Boost 또는 BSD에 대한 라이센스를 두 번 이상 보았습니다.

마지막으로 라이센스는 보유한 코드에 대한 이전 권한을 무시하지 않습니다. 예를 들어 단일 플레이어 Tetris 게임에 대한 애드온으로 TCP 엔진을 작성한 경우 단독으로 (특히 이전에 다른 라이센스로 배포 한 경우) 깨끗하게 독립형 일 수 있습니다. 다른 프로젝트에서 코드를 재사용 할 수 있습니다. 귀하에게는 또한 저작권이 있습니다.

내 믿음은 무료입니다. 문자열을 첨부해야한다면 무료로 호출하지 마십시오. 누군가가 몇 년 후 나에게 메일을 보내서 상용 엔진, 주로 TCP와 바이트 코드 인터프리터에서 내 게임을 사용했다고 말했다. 그들은 돈을 벌고있었습니다. 나는 조금 신경 쓰지 않았다. 나는 지금도 자랑스런 아버지로서 행복했습니다.


답변

이 시나리오는 GPL FAQ 에서 다룹니다 .

GPL은 일부 코드를 다른 프로그래밍 언어로 번역하는 것에 대해 무엇을 말합니까?

저작권법에 따라 저작물의 번역은 일종의 수정으로 간주됩니다. 따라서 GPL이 수정 된 버전에 대해 말한 내용은 번역 된 버전에도 적용됩니다.


답변

전체 라이브러리를 처음부터 다시 작성하더라도 법적 조사를 통과해야한다는 것은 의심의 여지가 있습니다. GPL 라이센스 라이브러리에서 코드를 보았으므로 코드가 “오염 된”것으로 간주됩니다.

이 문제에 대한 표준 접근법을 “클린 룸 구현”이라고합니다. 요구 사항 문서를 작성하고 다른 사람이 구현해야합니다 (GPL 코드를 보지 못한 사람).

또한이 질문을 참조하십시오 : 라이센스를 변경하기 위해 GPL 코드를 다시 작성

누군가가 적절하게 거기에 넣을 때, 모든 정보가 대체되었지만 해리 포터의 중국어 번역은 여전히 ​​파생물입니다.

물론, GPL 라이센스 라이브러리를 다시 작성하여 고소 당할 확률과 그 낮은 확률에 의존하는 도덕성은 완전히 다른 토론입니다.

원본 코드에 기능을 추가하는 한, 이것은 파생 저작물의 정의의 일부입니다 . 원본 저작물에 추가 하십시오. 얼마나 추가했는지 또는 초기 작업이 얼마나 작은지는 중요하지 않습니다. 여전히 파생물입니다.


답변

관찰 : GPL은 작업을 릴리스 한 경우에만 관련이 있습니다. 아직 공개하지 않았습니까?

관찰 : 이것은 법률 상담 웹 사이트가 아니므로 모든 법적 FUD를 버리고 상식을 적용하십시오.

의견 : GPL 또는 라이센스 는 저작권 아이디어가 아니며 소스 코드의 크기에 관계없이 소스 코드를 주장합니다. 따라서 “파생적”저작물이 원본에서 파생 된 것으로 식별 될 수없는 경우에만 코드 구조를 변경하고 모든 기능을 다시 구현 했기 때문에 더 이상 파생되지 않는 모든 실제적인 목적을위한 것입니다. 클린 룸 구현과 구별 할 수 있어야합니다.

기존 코드베이스가있을 때 처음부터 시작하지 않고 수정하더라도 달성하기가 매우 어렵습니다 (불가능합니까?).


답변

귀하는 작성한 코드에 대한 저작권을 보유합니다. GPL의 의무 : GPL 코드와 함께 제공하거나 배포하는 코드는 유사한 라이센스로 배포해야합니다. 그러나 저작권은 여전히 ​​귀하의 것입니다.

따라서 소프트웨어를 다시 작성하는 도중에 소프트웨어를 릴리스하면 (코드와 이전 코드가 혼합되어 있음) 코드의 해당 부분을 GPL로 해제해야하며이를 취소 할 수 없습니다. 그러나 저작권 보유자는 라이센스 조건을 결정하는 사람이므로 코드의 일부를 사용자가 직접 작성한 다른 코드와 결합하여 판매 / 라이센스를 부여하는 등 본질적으로 “이중 라이센스”를받을 권리가 있습니다.

주의 사항 :

  • 귀하가 작성한 코드에 대한 저작권은 기본적으로 귀하의 것이지만, 다른 계약 / 계약 (예 : 저작권 이전을 지정하는 CLA) 또는 “그들의 시간”에 대해 귀하가하는 모든 작업을 소유 한 고용주와의 계약에 의해 변경 될 수 있습니다.
  • 귀하의 재 작성이 원작자와 저작권을 공유하게하는 “파생 저작물”로 충분한 지의 여부는 문제입니다. 코드를 한 줄씩 다른 언어로 번역하면 ( 질문과 같이 ) 해당 부분이 파생으로 간주 될 수 있습니다. 세부 사항을 보지 않고 API 호환 대체를 구현하면 아마 그렇지 않을 것입니다.

(출처 : 몇 주 전에 회사에서 조직 한 “저작권 및 공개 소스”세션)


답변

예.

다른 답변은 당신이 해야하는지 아닌지에 대한 의견을 설명하는 너무 많은 텍스트를 사용하지만 이러한 의견은 질문과 관련이 없습니다.

사실 마지막 부품을 교체하면 GPL의 작업을 살펴보면서 구성한 새 작업을 갖게됩니다. 저작권법의 주요 관심사는 아닙니다 (특허는 또 다른 문제입니다). 당신이 배포하는 모든 것이 당신의 창조물이 될 것입니다.

소프트웨어 프로그램의 저작권은 부분 저작권의 합이라는 이론을 뒷받침하는 많은 자료가 있습니다. 예를 들어 MPL은이 모델을 명시 적으로 승인합니다. Google / Oracle 소송은 라인 수준의 저작권으로 내려졌습니다.


답변

짧은 대답은 당신이 알 수 없다는 것입니다.

당신이 Richard와 이야기 할 때, 그는 그의 많은 구현에서 “여우처럼 미쳤다”는 것을 알게됩니다. GPL은 모호성과 불명확 한 표현을 위해 특별히 작성되었습니다. 이것들은 일반적으로 라이센스 작성자의 이익에 대해 표현되지만 IP 변호사에게 우려를줍니다. 현명하게도 회사의 규모가 커질수록 IP 변호사에게 우려가 커집니다. GPL의 “합리적인 해석”을 수행하는 소규모 상업 기업은 수용 가능한 위험 일 수 있지만 대규모 소프트웨어 회사는 GPL의 오염을 겪은 전체 팀을 태우는 것이 더 현명 할 수 있습니다.

답이 없습니다. 답변이 없습니다. 그게 답입니다.