MIT 라이센스로 배포 된 코드를 변경하고 GPL 라이센스로 다시 배포 할 수 있습니까? [닫은]


57

2008 년 7 월에 릴리스 된 Chili plugin 코드를 변경하고 MIT 라이센스에 따라 라이센스를받은 후 GPL에 따라 라이센스를 부여 할 수 있습니까?

지금까지 알 수 있듯이 동일한 코드에 따라 라이센스가 부여 된 새 코드에 대한 제한은 없습니다. 정말입니까, 아니면 최소한의 변경 사항이 있습니까?

필자의 경우 CMS에서 실행되는 일반 Javascript 코드에서 jQuery 플러그인을 변경합니다. 이것은 본질적으로 다음과 같은 것을 의미합니다.

  • 코드는 "ChiliBook"네임 스페이스를 사용하지 않습니다.
  • 이 함수는로 호출되지 않지만로 호출됩니다 $($element).chili(). GlobalObject.ChiliHighlighter.process($jquery_element)여기서 "GlobalObject"는 CMS에서 사용되는 JavaScript 객체입니다.
  • 이 코드는 다른 모듈이 GlobalObject.ChiliHighlighter객체 를 변경하여 GlobalObject.ChiliHighlighter.process()정의 될 때 선택적으로 호출되는 함수를 추가 할 수 있도록 합니다.

대안으로, 내가 사용하는 리포지토리에서 코드를 더 이상 유지 관리하지 않을 때 GPL 2 이상 라이센스로 라이센스되지 않은 코드를 포함시킬 수 있으므로 플러그인이 더 이상 유지되지 않는 것으로 간주 될 수 있습니다. 최종 버전은 3 년 전에 릴리스 되었습니까?


2
정식 답변을 원할 경우 변호사와 상담해야합니다 (예 : 관련 관할 구역의 경우 이탈리아에서는 답변이 미국과 다를 수 있음)
MarkJ

답변:


59

기술적으로 합법적입니다.

MIT (Expat) 라이센스는 귀하에게 몇 가지 제한을 둡니다. GPL 라이센스의 하위 세트입니다. 당신은 GPL 아래 코드를 라이선스 재설정, 경우에 따라서, 그리고 MIT의 통지를 유지, 당신은 MIT 라이센스의 조건을 만족 한 법적 코드를 재배포 할 수 있습니다.

저작권을 주장하지 않을 수도 있습니다. 원래 저작권을 인정해야합니다.

[편집] 어떤 사람들은 F / OSS가 저작권법과 라이센스 법에 따라 어떻게 작동하는지 이해하지 못하는 것 같습니다. 이것이 기본이기 때문에 모든 것이 저작권으로 시작됩니다. 저작권 교리에 따라 저자는 소스 코드를 복사 할 권리가 있습니다. MIT 라이센스에 따라, 그 권한은 나에게 부여되며 다른 사람에게 재귀 적으로 부여 할 권리도 부여됩니다. MIT 라이센스 에는 서브 라이센스에 대한 권리가 명시 적으로 포함되어 있습니다. 인용 :"the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

하위 라이센스 코드를 사용하면 원래 갖고 있지 않은 권한을 부여 할 수 없습니다. GPL의 경우 일부 권리 만 재 라이센스 할 수 없도록 명시 적으로 금지되어 있습니다. 그러나 법이나 MIT 라이센스에서는 모든 권리를 전체적으로 재 라이센스 할 의무가 없습니다.

따라서 MIT 라이센스는 서브 라이센스 권리에 대한 명시 적 권리를 부여하며, 법률 또는 MIT 라이센스는 일부 권리 만 서브 라이센스 할 수 없습니다 . 또한, 내가하는 양식을 제한하지 않습니다. 따라서 해당 코드에 대해 GPL 하위 라이센스를 부여 할 수있는 부인할 권한이 없습니다.


6
@vartec : 코드를받은 라이센스를 변경하지 않습니다. 귀하와 새로운 수신자간에 새 라이센스를 작성 중이며 원하는 조건을 가질 수 있습니다. (새 수신자에게는 원래 라이센스에 따라 추가 권한이 부여 될 수 있지만 새 라이센스에는 영향을 미치지 않습니다.) 표준은 하위 라이센스가 원래 라이센스에 대한 일부 권한을 부여하는 것입니다. 예를 들어, 서브 라이센스에는 서브 라이센스에 대한 권리가 거의 포함되지 않으며, 서브 라이센스가 있으려면 원래 라이센스에 포함되어 있어야합니다.
David Schwartz

3
@vartec : 본질적으로 서브 라이센스 권한을 부여하는 저작권 라이센스가 실제로는 서브 라이센스 권한을 부여하지 않는다고 주장합니다. 나는 당신 이이 논쟁을 어떤 근거로 삼고 있는지 확실하지 않습니다. 관련 법률 당국에 대한 인용이 있습니까? 저작권 소유자 다른 사람에게 자신의 저작물을 라이센스 할 권한을 부여 할 수 없다고 말하고 있습니까? 아니면 어떻게 든 MIT 라이센스가이를 수행하지 못하거나 의도하지 않았다고 생각하십니까?
David Schwartz

1
@David : "sublicensing"이 무엇을 의미하는지 이해하지 못하는 것 같습니다.
vartec

1
@ vartec : 소스가 무엇인지 이해하지 못한다고 생각하기 때문에 소스에 대한 링크가 훌륭합니다.
David Schwartz

7
MIT 라이센스에는 다음과 같은 내용이 포함되어 있습니다. "위의 저작권 표시 및이 권한 표시는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다." 즉, MIT 라이센스에 따라 모든 포크를 사용할 수 있어야합니다. 변경 사항은 GPL로 나열 될 수 있습니다. 포크는 GPL + MIT로 나열 될 수 있습니다. 그러나 포크는 GPL로만 나열 될 수 없으며 MIT 라이센스를 명백히 위반하는 것입니다.
Jonathan Vanasco

26

예. 그러나 그 효과는 당신이 생각하는 것과 다를 수 있습니다.

MIT 라이센스에는 GPL이 제공하는 모든 권리 등이 포함됩니다. 배포판을받은 사람들은 추가 한 요소에 대해서만 GPL 라이센스를받을 수 있지만, 해당 라이센스에 따라 저자가 제공 한 저작물에 포함 된 모든 요소에 대한 MIT 라이센스 (사용자가 아닌 원래 작성자로부터)를받습니다.

그들은 이것을 알지 못할 수도 있으며, 내가 아는 한, 법률로 말하지 않아도됩니다. 그러나 귀하가 작성하지 않은 저작물에 포함 된 GPL 라이센스에 대해 GPL 라이센스를 "위반"하는 경우 (또는 GPL 전용 릴리스에 다른 사람이 제공하지 않은) 라이센스 나 귀하의 저작권을 위반하지 않은 것입니다. (실제로, 그것은 분명합니다-당신은 당신이 작성한 표현에 대한 저작권 만 보유합니다.)

따라서 저작권이있는 요소를 MIT 라이센스에서 GPL 라이센스로 변환하지 않았습니다. GPL 라이센스로만 제공되는 새로운 것을 추가하고 혼합 / 결합 된 작업으로 요소를 릴리스했습니다.


실제로, 나는 이것을 할 것입니다 : MIT 프로젝트를 복사하고 모든 MIT를 GPL로 바꾸십시오 (따라서 MIT였던 프로젝트의 흔적이 남지 않음). 그리고 몇 가지 중요한 장소에서 원래 MIT 프로젝트에 추가로 연결하십시오 (모두가 아님) MIT에서 기본 프로젝트를 사용할 수 있다고 언급하면서 소스 파일). 괜찮거나 합법적입니까 (원래 저작권 소유자 진술을 유지하면)?
hoijui

1
@hoijui 모든 MIT 라이센스 헤더 및 권한 통지를 그대로 유지하고 새 프로젝트에 포함시켜야합니다. 그리고 당신의 의도가 속이지 않는 한, 왜 당신이“MIT”의 모든 언급을 대체 할 것인지 알 수 없습니다. 아무 것도 변경하지 않으며, 가져가는 부품은 여전히 ​​MIT 라이센스가 부여됩니다. 그 아래에 자신의 GPL 라이센스 헤더를 추가하기 만하면 소스 코드에서 변경 한 모든 이름 변경 가능 (예 : 변수 이름 변경)에 유효합니다. BTW 이것이 대부분의 프로젝트가 모든 파일에 저작권 헤더를 가지고있는 이유입니다.
jmiserez

@jmiserez 알았어. 내 프로젝트의 파일 하나를 살펴 보자. MIT 헤더를 남겨두고 변경하고 GPL 헤더를 추가하십시오 (GPL에서만 변경 사항을 사용할 수 있기를 바랍니다). 이제 내 파일에 관한 제 3자가 MIT와 GPL을 모두 존중해야합니까? 나는 두 개의 라이센스 헤더가있는 파일을 본 적이 없으며 대부분의 사람들은 합법적으로 올바른 방법을 모르기 때문에 원하는 라이센스를 선택할 것이라고 생각합니다. 또한 GPL을 준수하여 자동으로 MIT도 존중하는 경우 왜 MIT를 포함해야합니까?
hoijui

@hoijui MIT 라이센스에 따른 모든 권리에는 "위의 저작권 표시 및이 사용권 고지가 소프트웨어의 모든 사본 또는 상당 부분에 포함되어야합니다."라는 제한 사항이 있습니다. 통지, 또는 하나의 IANAL. 그러나 어딘가에 통지를 포함해야한다고 확신합니다. 그렇지 않으면 MIT 라이센스를 더 이상 준수하지 않으므로 프로젝트에서 코드를 사용할 수있는 모든 권한을 잃게됩니다. 참고로 Linux 커널에는 여러 라이센스가있는 파일이 있으며 SPDX 헤더를 사용합니다. lwn.net/Articles/739183
jmiserez

1
누군가가 MIT 라이센스로 작성된 GPL 코드를 사용하려고 시도하는 것이 얼마나 슬픈 일입니까. MIT 라이센스가 나타내는 모든 것에 위배되는 것 같습니다.
Andrew T Finnell

8

이미 주어진 답변에 설명에 추가 할 것이 없지만 다음은 소스 파일 헤더 ( source ) 를 형성하는 방법에 대한 지침입니다 .

2.2 허가 된 라이센스 파일에 GPL 수정 사항 추가

개발자가 GPL의 프로그램에 통합 한 허가 된 라이센스 파일을 저작권으로 변경할 경우 더 복잡한 경우가 발생합니다. 이 상황의 개발자는 일반적으로 GPL을 수정 사항에 적용합니다. (단, 개발자는 수정되지 않은 파일을 관리하는 허가 라이센스와 같은 허용 조건에 따라 새 코드를 제공 할 수 있습니다.이 경우 § 2.3에서 논의합니다.)

외부 프로젝트의 허용 라이센스가 해당 프로젝트의 코드를 GPL 프로젝트에 통합 할 수있는 법적 권한을 부여하더라도 GPL 프로젝트의 개발자는 허용 라이센스의 통지 보존 요구 사항을 준수해야합니다. 파일 별 방법을 사용하는 프로젝트에서, 허가 된 라이센스 파일을 저작권 적으로 수정 한 개발자는 기존 저작권 위에 새로운 저작권 통지 및 권한 통지를 작성해야하며 개발자가 파일을 수정했음을 분명히해야합니다. 파일 상단이 다음과 같이 나타납니다.

/*  
 * Copyright (c) 2007  GPL Project Developer Who Made Changes   
 *  
 *  This file is free software: you may copy, redistribute and/or modify it  
 *  under the terms of the GNU General Public License as published by the  
 *  Free Software Foundation, either version 2 of the License, or (at your  
 *  option) any later version.  
 *  
 *  This file is distributed in the hope that it will be useful, but  
 *  WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  
 *  General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see .  
 *  
 * This file incorporates work covered by the following copyright and  
 * permission notice:  
 *  
 *     Copyright (c) YEARS_LIST, Permissive Contributor1   
 *     Copyright (c) YEARS_LIST, Permissive Contributor2   
 *  
 *     Permission to use, copy, modify, and/or distribute this software  
 *     for any purpose with or without fee is hereby granted, provided  
 *     that the above copyright notice and this permission notice appear  
 *     in all copies.  
 *  
 *     THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL  
 *     WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED  
 *     WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE  
 *     AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR  
 *     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  
 *     OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  
 *     NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN  
 *     CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  
 */

개발자는 허용 된 라이센스에 따라 원본 코드에 표시된대로 전체 저작권 표시, 권한 표시 및 보증 면책 사항을 보존해야합니다. GPL 고지 사항에 허용 라이센스 고지 사항이 혼합되어있는 경우가 있습니다. 이는 코드의 출처와 고지 사항에 나열된 다양한 저작권 보유자가 부여한 정확한 권한을 모호하게하는 혼동 사례입니다. 각기 다른 저작권 소유자가 다른 조건으로 기고를 발표 한 경우, 각기 다른 기고가있는 용어를 명시해야합니다. 위의 예와 같이 명확하게 구분하고 들여 쓰기를 사용하는 것이 좋습니다.

파일에서 알림을 구성하는 이러한 방식으로 개발자는 허용 용어 또는 GPL에 따라 기여할 것인지를 편리하게 선택할 수 있습니다. 허용 조건에 따라 기고 물을 제공하려는 경우 저작권 표시를 하위 그룹에 추가 할 수 있습니다. GPL에 따라 기여하려는 경우 맨 위에 저작권 표시를 추가 할 수 있습니다. 그러나 단일 소스 파일에서는 일반적으로 이러한 파일의 어느 부분이 허용 용어로 적용되는지를 결정하기가 매우 어렵고 종종 완전히 실행 불가능합니다. 허용되는 용어로만 추가 코드를 제공하는 것이 목표라면 § 2.3에 설명 된 방법을 사용해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.