기고자로부터 BSD 라이센스 프로젝트로 저작권 통지를 관리하는 방법


9

LICENSE파일 에 다음 BSD 라이센스가 있습니다.

Copyright (c) 2006-2016 SymPy Development Team

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

우리는 git ( https://github.com/sympy/sympy )로 소스 리포지토리를 관리 하므로 각 작성자는 자신이 만든 패치를 소유합니다. 그런 다음 AUTHORS패치를 제공 한 모든 사람들 (현재 ~ 450 정도 정도)을 나열 하는 파일이 있습니다. 일반적으로 작성자는 github에서 저장소를 분기하고 패치를 git commit으로 추가합니다.

한 저자가 저장소를 포크했지만 LICENSE다음과 같이 저작권 표시로 파일 자체에 이름을 추가했습니다 (이름을 변경 함).

Copyright (c) 2006-2015 SymPy Development Team,
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

저자는 버그를 수정하는 패치를 개발했습니다. 수정은 한 파일 만 터치하고 한 줄에서 19자를 제거하고 같은 파일의 다른 줄에 18자를 추가하는 것으로 구성됩니다. 또한이 버그에 대한 5 줄 테스트를 테스트 파일에 추가합니다. 그게 다야.

어떤 조건에서 우리는 합법적으로 그의 패치를 적용 할 수 있습니까 (예 : git 메타 데이터에 날짜와 저자 이름 + 이메일을 보존하는 것과 같이 커밋을 체리 선택)?

a) LICENSE저작권 고지를 추가하려면 파일을 수정해야 합니까?

b) 또는 최신 AUTHORS파일을 유지하고 어떤 커밋이 어떤 커밋이 어떤 작성자에 의해 기여했는지를 추적하는 git 저장소를 유지하면 BSD 라이센스를 계속 준수 하고 있습니까?

옵션 a)에 대해 마음에 들지 않는 점은 450 명 이상의 기고자들이 이것을 요구했다면 AUTHORS파일 의 내용을 단어와 연도와 LICENSE함께 파일에 본질적으로 보관해야한다는 것 Copyright입니다. Git은 몇 년 (몇 일, 몇 분) 및 각 저자가 수정 한 라인과 방법을 유지하는 데 훨씬 좋습니다. 그런 다음 LICENSE변경되지 않는 간단한 파일을 만들고 저자 목록을 유지합니다 AUTHORS(그리고 git의 저자 목록과 동기화하는 스크립트가 있습니다).


4
프로그래머가 알 수있는 것 이상의 법적 조언을 요구하기 때문에이 질문을 주제 외의 주제로 마무리하려고합니다. 레이어를 요청해야합니다.
Bart van Ingen Schenau

1
또는 변호사 ...;)
Erik Eidt

7
프로그래머는이 사실을 알 필요는 없지만 예상 할 수 있습니다. 기본적으로 "변호사와 상담해야합니다"라는 주석을 제거하는 것이 좋습니다. 프로그래머는 아마도 소프트웨어 라이센스에 대해 잘 알고있을 것입니다. 아마도 세계의 모든 변호사보다 더 많은 사람 일 것입니다. 나의 투표는 이것을 여기에 두는 것입니다.
moorepants

2
내 이해는 누군가 누군가 SymPy에 풀 요청을 할 때 SymPy 라이센스에 따라 암시 적으로 라이센스를 부여한다는 것입니다.
asmeurer

2
@asmeurer 맞습니다. 내 질문은 저자가 풀 요청을 작성하지 않는 경우입니다. 즉, 어떤 조건에서 저장소의 포크에 게시되어 동일한 라이센스로 라이센스가 부여되었지만 저작권 표시가 수정 된 패치를 선택할 수 있습니다.
Ondřej Čertík

답변:


3

호환되는 라이센스가있는 코드를 통합 할 수 있습니다.

즉, 코드베이스에 변경 사항을 가져와야하는 경우 새 코드가 호환 라이센스로 라이센스가 부여되지 않으면 약간의 어려움이 생길 수 있습니다.

특히, 코드에 기고서가 호환 라이센스하에 있다고 명시되어 있지 않으면 기본 "모든 권리 보유"라이센스가 적용됩니다. 코드를 당기면 저작권을 침해하게됩니다.

새 코드가 귀하와 호환되는 (및 해당 코드에 대해 해당 라이센스를 유지해야하는) 라이센스로 라이센스가 부여되었지만 많은 사용자와 호환되지 않을 수도 있습니다. 예를 들어, BSD 2 조항을 사용하고 누군가가 BSD 3 조항에 따라 포크의 기여를 라이센스하는 경우, 너무 어렵지 않게 코드로 가져올 수 있습니다. 그러나 BSD 3 절이 GPL과 호환되지 않기 때문에 프로젝트 GPL이 호환되지 않습니다.

예를 들어 나중에 BSD에서 GPL로 변경을 결정하고 풀 요청이 컨트 리뷰 터 라이센스 계약의 일부로 라이센스를 변경하는 데 필요한 권한을 할당하는 경우, 동의하지 않은 다른 프로젝트에서 코드를 가져옵니다 CLA는 두통을 유발할 수 있습니다.

그게 일반적인 경우입니다 ...

라이센스 파일이 변경된 특정 사례에 대해서는 모르겠습니다. 라이센스 파일을 간단히 읽음으로써 :

Copyright (c) 2006-2015 SymPy Development Team,  
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

ㅏ. 소스 코드의 재배포는 위의 저작권 공지를 유지해야한다 ,
   이 조건 목록과 다음 면책 조항.

그 비트는 당신이 변경 사항을 끌어하려는 경우, 당신은 것을 표시하는 것 또한 라이센스 파일을 변경해야합니다.

현재로서는 잘 정의 된 CLA가 없습니다. 다행히 현재 450 명만 물어볼 수 있습니다.


따라서 읽기 지점 "a"에서 원본 SymPy 코드에 대한 "위의 저작권 고지"는 John Doe가 보유하고 있으며 John Doe는 동일한 라이센스에 따라 포크에 대한 새로운 기여를 라이센스하고 있지만 새 추가 사항은 John Doe에게 저작권이있는 것으로 보입니다.
moorepants

2
이 인스턴스의 @moorepants는 그럴 것 같습니다. 따라서 SymPy가 라이센스를 코드로 다시 라이센스하려면 라이센스에서 해당 진술을 따르고 John Doe의 저작권 표시를 유지해야합니다.

답변 주셔서 감사합니다 @MichaelT. 450 명에게 무엇을 요청해야합니까? 내가해야 할 일은 포크 (John Doe 저작권 진술 포함)에서 라이센스를 복사하고 NOTICES파일에 첨부하기 만하면 됩니다. 모든 타사 라이센스를 저장합니다.
Ondřej Čertík

1
@ OndřejČertík SymPy 의 라이센스 를 변경 하려면 (풀 요청을 제출 한 모든 사람이 BSD에서 라이센스를 부여한 것으로 확인되었다는 가정하에 작업 중임) GPL, 모든 사람의 허가가 필요합니다. 다른 라이센스에 따라 라이센스를 다시 결정할 수 있기 때문에 기여했습니다. 아파치는 다소 CLA가 관련되어있다 . 많은 큰 프로젝트는이 CLA 확인 프로젝트가 제출 된 코드를 배포 할 권리 내에 만들기 위해 어떤 종류 또는 다른의를

1
나는 첫 번째 글 머리에서 찾고 좋을 것 담론 CLA :You grant to "The Company" (Civilized Discourse Construction Kit, Inc.) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distribute and publicly perform and display "The Contributions" on any licensing terms, including without limitation: (a) open source licenses like the GNU General Public (v2.0) license; ...

2

BSD 라이센스 소스 코드가 있고 누군가 추가 패치를 추가 할 경우, 새로운 리포지토리에있는이 새로운 소스 코드는 원래 리포지토리의 정확한 BSD 라이센스 파일을 포함해야하며 새로운 패치는 새로운 라이센스 (또는 동일한 라이센스). 따라서 포크는 저장소에 하나 또는 두 개의 라이센스가 있어야합니다. BSD 라이센스 조항을 위반하므로 원래 라이센스를 편집하는 것은 허용되지 않습니다.

이제 원래 리포지토리가 포크에서 패치를 체리 선택하려면 포크의 새 라이센스 사본을 원래 리포지토리에 추가해야합니다. 궁극적으로 두 리포지토리에는 각 패치 세트를 포함하는 라이센스가 하나씩 있습니다.

SymPy는 또한 기여자가 SymPy 프로젝트에 대한 저작권을 포기하도록 요구해야합니다. 기고자들이 제출시 개별 패치에 대한 저작권을 보유하게하는 것은 잠재적으로 매우 문제가됩니다. 무슨 일이 일어나고 있는지 분명히하기 위해이 내용을 설명하는 기고자 계약이 필요합니다.


물론, 포크에 추가 라이센스 가 없는 경우, 기본 모든 권리 보유 라이센스 이외의 다른 용도로 컨트 리뷰 션이 라이센스되지 않습니다.

1
나는 그것이 반드시 사실이라고 믿지 않습니다. 포크의 새 패치에 라이센스가 지정되어 있지 않으면 모호성이있을 수 있습니다. 기본적으로 미국 법에 따르면, 콘텐츠 제작자는 아무런 언급이없는 경우 저작권을 소유합니다. 따라서 추가 라이센스가 표시되지 않으면 포크에있는 패치 작성자가 새 패치에 대한 저작권을 소유 할 수 있습니다. 그러나 제작자가 포크에 원래 라이센스를 남겨 두어야했기 때문에 모호합니다. 따라서 모든 패치에 적용될 수 있습니다. 파일 당 라이센스 설명은 이러한 모호성을 일부 제거하는 데 도움이되지만 "패치 당"설명은 거의 없습니다.
moorepants
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.