오픈 소스 프로젝트에서 코드를 포크 / 재사용하는 올바른 방법은 무엇입니까?


22

오픈 소스 프로젝트를 진행 중이고 다른 오픈 소스 프로젝트의 사소한 유틸리티 기능 (예 : 파일 검색 / 바꾸기 기능)을 재사용하려고한다고 가정 해 봅시다. 함수를 복사하고 파일 위에 작은 저작권 표시를 작성하는 것이 합법적입니까? 라이센스에 전체 프로젝트의 저작권 보유자로 이름을 포함시켜야합니까?

마찬가지로 오픈 소스 프로젝트를 포크했다고 가정 해 봅시다. 원본 저작권 보유자와 본인이 저작권을 공유하도록 지정하는 장소와 방법은 무엇입니까?

오픈 소스 라이센스에 따라 답변이 다소 달라야하지만 가능한 한 일반적인 답변을 원합니다.

추신 : 저는 대부분 법적인 측면에 관심이 있지만, 윤리적 인 관점을 자유롭게 포함 시키십시오.


1
해당 프로젝트의 라이센스는 무엇이며 릴리스중인 프로젝트는 무엇입니까? 예, 코드를 사용할 수 있지만 사용중인 라이센스에 따라 요구 사항을보다 잘 알 수 있도록보다 구체적으로 작성하십시오.
Tim Post

1
@Tim Post : 주로 이론적 인 질문이지만 도움이 될 수 있다면 두 프로젝트 모두 매우 일반적이기 때문에 GPL 라이센스가 있다고 가정 해 봅시다.
Olivier Lalonde

답변:


25

이 답변을 가능한 한 '메타'로 적용하려고합니다.

다른 프로젝트의 스 니펫 / 비트 사용

원본 작성자의 저작권으로 코드를 명확하게 표시하십시오. 선택한 라이센스가 사용중인 코드의 라이센스와 완전히 호환되는지 확인하십시오. 코드를 다른 라이센스로 옮길 수있는 작성자의 권한이 필요합니다 (예 : "GPL 2 이상 버전").

프로그램에는 AUTHORS 파일 (또는 이와 유사한 파일)이 있어야합니다. 여기에는 다른 프로젝트에서 사용한 모든 기고자와 항목이 나열됩니다.

프로젝트를 포크

크게 변경 한 각 모듈 에 대해 원본 작성자의 저작권을 추가하십시오. 라이센스도 마찬가지입니다. 라이센스를 분기 할 때 유효한 라이센스 조건에 구속됩니다. 프로젝트에 "GPL2 만"이라고 표시되면이를 존중해야합니다. GPL3의 허가 없이는 갈 수 없습니다.

사용중인 라이센스에 따라 크게 다릅니다. QPL은 예를 들어 변경 사항을 패치 형식으로 만 배포 할 수 있으므로 수정 된 버전의 소프트웨어를 배포 할 수있는 용어를 이해해야합니다.

그 외에도 항상 저작권을 유지하십시오. 존재하는 것에 자신의 저작권을 추가하는 경우, 자신이 주장하는 것을 정확하게 표시해야합니다.


때로는 라이센스를 추가 할 수 있습니다. GPL 프로젝트에서 BSD 함수를 사용하려고한다고 가정합니다. BSD 라이센스를 제거 할 수는 없지만 GPL과 호환되므로 GPL 하에서 전체 프로젝트를 발행 할 수 있으며 해당 함수는 BSD 아래에 있음을 알 수 있습니다 특허. BSD 라이센스 코드에서 변경 한 사항을 BSD 하에서 공개하는 것은 정중합니다.
David Thornley

@David-OP는 일반적인 답변을 원했습니다 (따라서 라이센스 연구를 촉구합니다). 당신은 꽤 정확합니다. 그러나 BSD 코드에 대한 변경 사항을 이중 라이센스를 부여하는 것은 '좋은'방법이므로 원작자는 원하는 경우 실제로 사용할 수 있습니다.
Tim Post

1
주 라이센스 파일은 언제 원본 ​​저자보다 저작권 표시를 받아야합니까? SLOC가 원래 프로젝트 SLOC의 200 %를 초과 할 때? 300 %? 포크 한 프로젝트가 프로젝트 내의 많은 천칭 또는 모듈 중 하나가되면?
hobs

@hobs imo, 저작권 고지의 순서는 기여의 정도를 나타내는 것이 아니라 시간순으로 기원에 대한 세부 사항을 나타냅니다.

@TechnikEmpire 연대순은 합리적이지만 저작권 공지가 아닌 기고자 목록에 적합합니까? 적용되는 코드 섹션과 패키지에 포함 된 섹션의 가치 / 수량에 따라 저작권 표시가 더 잘 정리 될 수 있다고 생각했습니다. 라이센스에 대해 변경하려는 경우 우선 순위에 따라 연락해야하는 사람들의 목록을 갖는 것이 유용합니다. 따라서 처음 몇 개는 아니지만 마지막 몇 개는 허가를 받으면 변경하기로 결정한 경우 다시 만들 코드가 더 적습니다. Linus가 무엇을하는지 궁금합니다.
호브 :
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.