라이센스를 변경하기 위해 GPL 코드 재 작성


23

필요한 것을 정확하게 수행하는 GPL 라이브러리 (이중 라이센스 없음)를 발견했습니다. 불행히도 라이브러리의 GPL 라이센스는 내가 사용하는 다른 라이브러리의 라이센스와 호환되지 않습니다. 따라서 라이센스를 변경할 수 있도록 GPL 라이브러리를 다시 작성하기로 결정했습니다.

내 질문은 : 라이센스를 변경하려면 변경 사항이 라이브러리에 얼마나 광범위해야합니까? 즉, 가장 저렴한 방법은 무엇입니까?


3
GPL 라이브러리 작성자에게 다른 라이센스로 배포 할 경우 비용을 지불하는 것이 더 저렴할 수 있습니다.
quant_dev

3
가장 안전한 방법을 묻지 말고 전체 이야기를 들려주고 "옳은 일이 무엇입니까?"라고 물어보십시오.
John R. Strohm 2016 년

4
다른 라이브러리가 GPL과 호환되지 않으면 변경해야 할 라이브러리 일 수 있습니다.
Paul Butcher

1
다른 라이브러리에는 어떤 라이센스가 있습니까?
Andres F.

답변:


34

저는 변호사는 아니지만 AFAIK GPL 라이브러리 라이브러리 코드를 본 경우 작성한 에뮬레이션 라이브러리가 더러워지고 판사에 의해 평가가 너무 유사하면 파생 작품으로 선언 될 수 있습니다.

따라서 프로세스는 기능 사양을 작성하고 GPL 코드를 보지 못한 사람이 라이브러리를 작성하도록하는 것입니다.

편집 : "라이센스를 변경하려면 라이브러리에 대한 변경이 얼마나 광범위해야합니까?"라는 질문을 공식화하는 방법에 유의하십시오. 정답은 AFAIK입니다. 라이브러리를 수정하기 만하면 라이선싱 기간을 준수하여 라이센스를 처음부터 수정할 수 있어야합니다.


3
오염 문제는 실제로 그리 심각한 문제는 아닙니다. 상업 기관의 코드를 리버스 엔지니어링하는 경우 (필수 불가피한) 침해 소송에 독자와 구현 자 간의 방화벽이 필요하므로 다른 버전의 코드를 복사 할 가능성이 없음을 보여줄 수 있습니다 . 대부분의 GPL 코드의 경우, 누군가가 당신을 고소 하지 않는 것을 맹목적으로 침해 하지 않는 한 , 그렇게하는 것은 그들의 관심사가 아니기 때문입니다.
Mark Bessey 2016 년

1
러시아 룰렛을 좋아할 수도 있습니다. 어떤 이유로 든-코드를 다른 방식으로 계승하는 경쟁 또는 소송 자금을 조달하기로 결정한 경쟁 – 귀하는 회사를 익사시킬 수있는 소송을 당하고 유죄 판결을받습니다. 고소를 당하지 않더라도 알려진 평판이 나쁜 경우 문제가 될 수 있습니다.
AProgrammer

2
"오염 된"문제는 대부분 NDA에 적용된다고 생각합니다. 저작권 문제의 경우에는 의미가 없습니다. 저작권은 책, 신문, 영화 등에 적용됩니다. George Lucas는 Star Wars를 만들기 전에 TV에서 Star Trek 시리즈를 보았을 것입니다. Star Wars를 파생적인 작품으로 만들었습니까? 신문 기자가 라디오에서 무언가를 듣는다면 같은 사건에 대해 글을 쓰지 못하게됩니까?
user281377

6
클린 룸 접근 방식은 저작권법을 침해하지 않았 음을 증명하는 방법입니다. 내가 이해 한대로 (그리고 다시는 변호사가 아님) 원본 저작물에 대한 지식없이 개발 된 것은 저작권을 침해하지 않을 수 있지만 특허권을 침해 할 수 있습니다. 그러한 지식으로 개발 된 것은 저작권을 침해하거나 침해하지 않을 수 있습니다. 유사성이 무작위 사건이나 접근 방식을 자연스럽게 만드는 문제의 성격으로 인한 것임을 증명하기는 더 어렵습니다.
AProgrammer

1
@ammoQ : 미국에서는 오래 전에 모든 코드 줄을 다시 작성 했는데도 회사가 침해를 저지른 사본 침해 소송 (통계 소프트웨어 패키지?)이있었습니다. Star Wars는 Star Trek과 특별히 유사하지 않으며 신문 기자는 라디오에서들은 이야기를 쓰지 않을 것입니다.
David Thornley

21

이 문제를 해결하는 일반적인 방법은 먼저 라이브러리 소유자에게 연락하여 다른 라이센스하에 라이브러리를 공개 할 것인지 묻습니다.

GPL이 호환되지 않는 오픈 소스 프로젝트에서 작업하는 경우, 그렇게 할 가능성이 높으며, 일부 프로젝트는 최상의 선택 인 것처럼 보이기 때문에 GPL 라이센스로 끝납니다.

물론 이것은 두 라이브러리 모두에 적용됩니다. 덜 허가 된 라이센스로 허가 된 라이센스 이중 라이센스를 얻는 것은 문제가되지 않습니다.

상용 제품을 사용하는 경우 많은 라이브러리 작성자가 적절하게 보상 할 경우 다른 라이센스로 릴리스를 제공합니다.


8
그것은 가치가 있지만, 도서관 소유자가 GPLed 기여를 수락하거나 사용하면 작동하지 않습니다. 이는 많은 도서관의 경우입니다.
Brian

^ "기여자"계약을 맺지 않는 한, 원래 저자에게 저작권을 다시 할당했습니다 : softwareengineering.stackexchange.com/a/225577/93511
Jonathan

17

내 이해는 당신이 작품으로 시작하여 수정하더라도 수정의 폭이 넓어도 최종 결과는 원본의 파생물이라는 것입니다. 라이브러리를 처음부터 작성해야합니다. 라이브러리를 처음부터 작성했지만 코드를 본 경우 코드가 너무 유사하면 다시 저작권 침해를 당할 수 있습니다.

이 규칙은 소프트웨어에만 국한된 것이 아니라 모든 종류의 저작권이있는 것들에 적용됩니다.

나는 변호사가 아니며, 이것은 법률 자문이 아닙니다. 나는 또한 귀하의 관할권에 있지 않을 수도 있으며, 귀하는 항상 인터넷에서 제공되는 법률 자문을 의심해야합니다. 신뢰할 수있는 법률 자문을 받으려면 변호사에게 비용을 지불해야합니다.


4

IANAL, 그러나 나는 미국에서 어느 정도의 수정도 비유도적인 작업을 만들지 않을 것임을 알고 있습니다. 이전 라이브러리에서 복사 한 코드가 있거나 대학 수업에서 표절에 어려움을 겪을 정도로 내부 유사성이 충분한 경우 새로운 작업에 가까이 갈 수 없습니다. 함수 또는 변수의 일부 이름을 변경해도 아무런 영향을 미치지 않으며 소스에서 코드 덩어리를 움직일 수 없습니다. 기회를 잡기 위해 독립적으로 다시 만들어야합니다. IOW는 제공하는 인터페이스 만보고 해당 기능을 제공하는 방법을 결정하고 기회를 유지할 수있는 방식으로 다시 작성해야합니다. 그럼에도 불구하고 누군가가 정말로 관심을 갖고 화가 나면 여전히 숲에서 벗어날 수 있습니다.

결국, 가장 좋은 방법은 도서관의 저자에게 연락하여 도서관의보다 허가 된 라이센싱을 찾을 수 있기를 희망하는 것입니다.


1

여기에서 제안 된 모든 것 (이중 라이센스 요구, 재 작성 요구)이 허용되지 않는 경우, 독점 프로그램 / 라이브러리와의 동적 링크가 파생 작업으로 간주되는지 여부는 아직 분명하지 않습니다. FSF는 그것이 사실이지만 많은 변호사들 (Lawrence Rosen 포함)이 이것에 의문을 제기했다.

따라서 소프트웨어를 GPLed 라이브러리와 연결 한 다음 소프트웨어의 모든 사본과 함께 소스 코드를 배포 할 수 있습니다. 누군가가 당신을 고소한다면, 그들은 까다 롭고 어두운 GPL 측면에 대한 그들의 이해가 정확하다는 것을 증명해야합니다. 그것이 나타나는 것처럼 (예 : Galoob vs Nintendo) 파생물이 작동하는 것과 작동하지 않는 것을 절대적으로 확신 할 수 없습니다.


적어도 lib가 LGPL이 될 수 있는지 물어보십시오.
Johan

2
동적 연결 문제는 어려운 문제이지만 판사에게 의지하지는 않습니다. Gnu 라이센스를 사용하는 경우 판사는 귀하가 Gnu 정의에 동의한다고 판결 할 수 있으며, 아직 발생하지 않은 법원 사건의 결과에 따라 소프트웨어 제품의 기초를 세우고 싶지 않을 수 있습니다.
David Thornley

1

그것이 파생되지 않은 유일한 방법은 원래 코드를 사용하지 않고 전체 코드를 직접 작성하는 것입니다. 아마도 불가능할 것입니다.

GPL에는 훨씬 쉬운 방법이 있습니다.

  • 명확하게 : 서비스를 시작하고 소켓을 통해 액세스하십시오. 소켓은 GPL 라이센스의 경계 입니다 (Affero 조항이있는 악명 높은 GPLv3이 아닌 한 ).
  • 회색 영역에서 : 동적으로 연결합니다. 동적 링크가 파생 된 작업에 대한 경계인지 아닌지에 대해서는 많은 논란이 있습니다. 여기에 몇 가지 관점이 있습니다 . 귀하가 속한 관할권에 따라 달라질 수도 있습니다.

또한 GPL은 배포 라이센스이므로 바이너리를 타사에 배포 할 경우 작업 라이센스 만 있으면됩니다. 바이너리를 일반 대중에게 공개하지 않는 한 소스를 일반 대중에게 공개 할 의무는 없으며 소스를 공개 할 의무가 있습니다. 예를 들어 서버에서만 코드를 사용하는 경우 코드를 해제 할 의무가 없습니다. 예를 들어 구글이 조정 한 리눅스 커널로이를 수행하는 방법이다.


나는 소켓이 장벽이라는 것을 확신하지 못한다. 우리 변호사들에 따르면, 엔지니어들은 기술적 조치에 너무 집중하는 반면, 글로벌 효과는 법률에 의해 확인되는 것입니다. 소켓 인터페이스를 게시하고 emacs lisp에서 예제를 사용하는 것은 괜찮습니다. 그러나 우리의 프로그램과 함께 자동으로 emacs를 설치할 가능성은 없었습니다. 배포 할 권리가 있습니다. 그러나 배포 한 사람이 더 이상 배포하지 못하도록 막을 수는 없습니다.
AProgrammer

@AProgrammer : 심지어 FSF는 별도의 프로세스라면 별도의 프로그램이므로 작업을 유도하지 않는다고 말합니다. 플러그인에 대한 FAQ이지만 논리는 여전히 적용됩니다 : gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins
vartec

문제는 플러그인과 플러그인이 본질적으로 없어서는 안될 것입니다. 나는 GPL 라이브러리를 사용했기 때문에 GPL 라이브러리를 사용했기 때문에 두 개의 프로세스로 프로그램을 구성하는 것이 내 회사가 아닌 것이라고 확신하지 않습니다. 특히 둘 다 함께 배포 될 때. 그러나 그것은 당신의 전화입니다.
AProgrammer

1
@A : 다른 프로그램과의 배포는 "집계"이며 GPL에 의해 명시 적으로 허용됩니다. 그리고 아니, 그건 내 전화가 아니야 개인적으로, 나는 10 피트 길이의 막대기로도 GPL 라이브러리를 만지지 않을 것입니다.
vartec

1

IANAL과 어쨌든 이것은 법적으로 아무 의미가 없지만 Steven Levy의 책 "Hackers"에서 그는 RMS가 낮 동안 밤에 돈을 위해 * nix 코드를 어떻게 썼는지 설명합니다. GNU?의 일부가 될 수 있도록 집에있는 것들 .. 이것은 리눅스 이전에 .. 무료 유닉스 타입 시스템이다. 나는 그가 홈 코드를 데이 코드와 다르게 만들어야한다고 생각하지만 기본적으로 당신이 제안하는 것을 정확하게하고있었습니다.

이것은 아마도 법적으로 중요하지 않지만 ... Apple 및 / 또는 Microsoft가 허가 / 라이센스 또는 기타를 얻었는지 확실하지 않지만 실험실에서는 Mac에 사용 된 데스크탑 / 아이콘 / 마우스 인터페이스를 발명하지 않았습니다. (또는 Lisa?) 그런 다음 Microsoft에서 사용했습니다.


그것은 Bell Labs가 아닌 Xerox PARC 일 것입니다.
Marnen Laibow-Koser

잡스는 애플이 팔로 알토의 실험실을 볼 수 있도록 제록스와 거래를했다. 당시 제록스는 아무도 그 기술에 관심이 없었습니다.
aledalgrande

0

귀하의 특정 관할권에서 판사 이전의 재판을 제외하고는 이에 대한 답변이 없습니다. 하지만 위험을 감수하고 싶습니까? 또는 GPL 라이브러리, 테스트 등을 다시 작성하려는 노력으로 가십시오. 다른 라이브러리가 GPL과 호환되지 않습니까? 비 GPL 라이브러리 용어로 두 라이브러리를 모두 배포하지 않는 한 실제로 이것은 매우 드문 경우입니다.


gnu.org/licenses/license-list.html 에서 Gnu 라이센스 목록을 얻을 수 있으며 무료 GPL 호환 라이센스, 무료 비 GPL 호환 라이센스 및 무료 라이센스로 구분되어 있습니다. GPL에는 다른 라이센스가 자주 따르지 않는 몇 가지 특정 요구 사항이 있으며 GPLv3의 목표 중 하나는 호환성을보다 쉽게 ​​만드는 것입니다.
David Thornley

0

라이센스를 변경하려면 라이브러리에 대한 변경이 얼마나 광범위해야합니까?

세계 대부분의 지역에서는 처음부터 시작해야하며 잘라내거나 지나치지 않아야합니다. 함수 / 클래스 / 변수 등에 새로운 이름이 필요하며 구조가 달라야합니다. 그럼 당신은 안전합니다.

반면에 diff-tool이 어떤 유사점도 찾을 수 없다면 ...


2
diff 도구가 유사점을 찾지 못하면 여전히 저작권을 침해 할 수 있습니다. 비 프로그래밍 관점에서 본다 : 나는 책을 쓰고, 당신은 그것을 스웨덴어로 번역하고, 미국과 스웨덴의 저작권법에 의해 파생물을 만들었다.
David Thornley

@David Thornley 네, 당신은 파생 작업에 대해 옳습니다.
Johan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.