필요한 것을 정확하게 수행하는 GPL 라이브러리 (이중 라이센스 없음)를 발견했습니다. 불행히도 라이브러리의 GPL 라이센스는 내가 사용하는 다른 라이브러리의 라이센스와 호환되지 않습니다. 따라서 라이센스를 변경할 수 있도록 GPL 라이브러리를 다시 작성하기로 결정했습니다.
내 질문은 : 라이센스를 변경하려면 변경 사항이 라이브러리에 얼마나 광범위해야합니까? 즉, 가장 저렴한 방법은 무엇입니까?
필요한 것을 정확하게 수행하는 GPL 라이브러리 (이중 라이센스 없음)를 발견했습니다. 불행히도 라이브러리의 GPL 라이센스는 내가 사용하는 다른 라이브러리의 라이센스와 호환되지 않습니다. 따라서 라이센스를 변경할 수 있도록 GPL 라이브러리를 다시 작성하기로 결정했습니다.
내 질문은 : 라이센스를 변경하려면 변경 사항이 라이브러리에 얼마나 광범위해야합니까? 즉, 가장 저렴한 방법은 무엇입니까?
답변:
저는 변호사는 아니지만 AFAIK GPL 라이브러리 라이브러리 코드를 본 경우 작성한 에뮬레이션 라이브러리가 더러워지고 판사에 의해 평가가 너무 유사하면 파생 작품으로 선언 될 수 있습니다.
따라서 프로세스는 기능 사양을 작성하고 GPL 코드를 보지 못한 사람이 라이브러리를 작성하도록하는 것입니다.
편집 : "라이센스를 변경하려면 라이브러리에 대한 변경이 얼마나 광범위해야합니까?"라는 질문을 공식화하는 방법에 유의하십시오. 정답은 AFAIK입니다. 라이브러리를 수정하기 만하면 라이선싱 기간을 준수하여 라이센스를 처음부터 수정할 수 있어야합니다.
이 문제를 해결하는 일반적인 방법은 먼저 라이브러리 소유자에게 연락하여 다른 라이센스하에 라이브러리를 공개 할 것인지 묻습니다.
GPL이 호환되지 않는 오픈 소스 프로젝트에서 작업하는 경우, 그렇게 할 가능성이 높으며, 일부 프로젝트는 최상의 선택 인 것처럼 보이기 때문에 GPL 라이센스로 끝납니다.
물론 이것은 두 라이브러리 모두에 적용됩니다. 덜 허가 된 라이센스로 허가 된 라이센스 이중 라이센스를 얻는 것은 문제가되지 않습니다.
상용 제품을 사용하는 경우 많은 라이브러리 작성자가 적절하게 보상 할 경우 다른 라이센스로 릴리스를 제공합니다.
내 이해는 당신이 작품으로 시작하여 수정하더라도 수정의 폭이 넓어도 최종 결과는 원본의 파생물이라는 것입니다. 라이브러리를 처음부터 작성해야합니다. 라이브러리를 처음부터 작성했지만 코드를 본 경우 코드가 너무 유사하면 다시 저작권 침해를 당할 수 있습니다.
이 규칙은 소프트웨어에만 국한된 것이 아니라 모든 종류의 저작권이있는 것들에 적용됩니다.
나는 변호사가 아니며, 이것은 법률 자문이 아닙니다. 나는 또한 귀하의 관할권에 있지 않을 수도 있으며, 귀하는 항상 인터넷에서 제공되는 법률 자문을 의심해야합니다. 신뢰할 수있는 법률 자문을 받으려면 변호사에게 비용을 지불해야합니다.
IANAL, 그러나 나는 미국에서 어느 정도의 수정도 비유도적인 작업을 만들지 않을 것임을 알고 있습니다. 이전 라이브러리에서 복사 한 코드가 있거나 대학 수업에서 표절에 어려움을 겪을 정도로 내부 유사성이 충분한 경우 새로운 작업에 가까이 갈 수 없습니다. 함수 또는 변수의 일부 이름을 변경해도 아무런 영향을 미치지 않으며 소스에서 코드 덩어리를 움직일 수 없습니다. 기회를 잡기 위해 독립적으로 다시 만들어야합니다. IOW는 제공하는 인터페이스 만보고 해당 기능을 제공하는 방법을 결정하고 기회를 유지할 수있는 방식으로 다시 작성해야합니다. 그럼에도 불구하고 누군가가 정말로 관심을 갖고 화가 나면 여전히 숲에서 벗어날 수 있습니다.
결국, 가장 좋은 방법은 도서관의 저자에게 연락하여 도서관의보다 허가 된 라이센싱을 찾을 수 있기를 희망하는 것입니다.
여기에서 제안 된 모든 것 (이중 라이센스 요구, 재 작성 요구)이 허용되지 않는 경우, 독점 프로그램 / 라이브러리와의 동적 링크가 파생 작업으로 간주되는지 여부는 아직 분명하지 않습니다. FSF는 그것이 사실이지만 많은 변호사들 (Lawrence Rosen 포함)이 이것에 의문을 제기했다.
따라서 소프트웨어를 GPLed 라이브러리와 연결 한 다음 소프트웨어의 모든 사본과 함께 소스 코드를 배포 할 수 있습니다. 누군가가 당신을 고소한다면, 그들은 까다 롭고 어두운 GPL 측면에 대한 그들의 이해가 정확하다는 것을 증명해야합니다. 그것이 나타나는 것처럼 (예 : Galoob vs Nintendo) 파생물이 작동하는 것과 작동하지 않는 것을 절대적으로 확신 할 수 없습니다.
그것이 파생되지 않은 유일한 방법은 원래 코드를 사용하지 않고 전체 코드를 직접 작성하는 것입니다. 아마도 불가능할 것입니다.
GPL에는 훨씬 쉬운 방법이 있습니다.
또한 GPL은 배포 라이센스이므로 바이너리를 타사에 배포 할 경우 작업 라이센스 만 있으면됩니다. 바이너리를 일반 대중에게 공개하지 않는 한 소스를 일반 대중에게 공개 할 의무는 없으며 소스를 공개 할 의무가 있습니다. 예를 들어 서버에서만 코드를 사용하는 경우 코드를 해제 할 의무가 없습니다. 예를 들어 구글이 조정 한 리눅스 커널로이를 수행하는 방법이다.
IANAL과 어쨌든 이것은 법적으로 아무 의미가 없지만 Steven Levy의 책 "Hackers"에서 그는 RMS가 낮 동안 밤에 돈을 위해 * nix 코드를 어떻게 썼는지 설명합니다. GNU?의 일부가 될 수 있도록 집에있는 것들 .. 이것은 리눅스 이전에 .. 무료 유닉스 타입 시스템이다. 나는 그가 홈 코드를 데이 코드와 다르게 만들어야한다고 생각하지만 기본적으로 당신이 제안하는 것을 정확하게하고있었습니다.
이것은 아마도 법적으로 중요하지 않지만 ... Apple 및 / 또는 Microsoft가 허가 / 라이센스 또는 기타를 얻었는지 확실하지 않지만 실험실에서는 Mac에 사용 된 데스크탑 / 아이콘 / 마우스 인터페이스를 발명하지 않았습니다. (또는 Lisa?) 그런 다음 Microsoft에서 사용했습니다.
귀하의 특정 관할권에서 판사 이전의 재판을 제외하고는 이에 대한 답변이 없습니다. 하지만 위험을 감수하고 싶습니까? 또는 GPL 라이브러리, 테스트 등을 다시 작성하려는 노력으로 가십시오. 다른 라이브러리가 GPL과 호환되지 않습니까? 비 GPL 라이브러리 용어로 두 라이브러리를 모두 배포하지 않는 한 실제로 이것은 매우 드문 경우입니다.
라이센스를 변경하려면 라이브러리에 대한 변경이 얼마나 광범위해야합니까?
세계 대부분의 지역에서는 처음부터 시작해야하며 잘라내거나 지나치지 않아야합니다. 함수 / 클래스 / 변수 등에 새로운 이름이 필요하며 구조가 달라야합니다. 그럼 당신은 안전합니다.
반면에 diff-tool이 어떤 유사점도 찾을 수 없다면 ...