각 코드 파일에 라이센스를 넣습니까? [닫은]


93

나는 그것을 각 코드 파일에 포함시키기 위해 불필요하게 복제되는 것을 발견했지만 대부분의 오픈 소스 프로젝트에서 그것을 봅니다. 그렇게해야합니까, 아니면 코드 외부에 단일 라이센스 만 포함해야합니까?



1
각 소스 파일에서 보증제외 해야합니다. 그렇지 않으면 잡힐 수 있습니다. (Vim과 같은 적절한 편집기는 보증 제외 상용구를 자동으로 접도록 쉽게 구성 할 수 있습니다.)
Evgeni Sergeev

답변:


74

코드 밖에 하나만주세요! 나는 다른 사람들에 대해 잘 모르지만 모든 파일 위에서 똑같은 것을 보는 것이 싫다.

나는 그것을 통해 page_down-ing에 의해 그것을 몇 번 읽었다 고 생각합니다.


10
나는 Zifre에 동의하지 않습니다. 반복되는 면허증은 나를 짜증나게합니다.
Strager

49
파일이 나머지 코드와 분리 될 수 있고 (일반적으로 오픈 소스에서 권장 됨) 파일에 라이선스에 대한 정보가없는 경우 각 소스 파일이 릴리스 된 라이선스를 식별하는 것이 합리적이고 합리적입니다. , 올바른 라이선스로 다시 추적하는 것이 더 까다 롭습니다. 그러나 각 파일의 전체 라이센스-아니요; 그것은 GPL 또는 LGPL에 대해 기괴 할 것입니다. 이미 제안했듯이 짧은 라이선스의 경우 파일에 실제 라이선스 텍스트를 포함하는 것은 성가신 일이지만 판단을 내리는 것입니다. 그러나 어떤 라이선스가 출시되었는지 식별하는 것이 현명합니다.
Jonathan Leffler

14
방금 프로젝트의 파일 헤더를 저작권, 라이센스 이름 및 라이센스 텍스트에 대한 URL의 세 줄로만 업데이트했습니다. 내 헤더를 26 줄 (BSD)에서 3 줄로 줄였습니다. :)
Esko Luontola

3
@Esko : 샘플을 게시 해 주시겠습니까? 나는 당신이 저작권을 위해 무엇을 썼는지 모릅니다. 감사.
Joan Venge

6
이 답변은 해결책으로 표시되어 있지만 제 의견으로는 evidence for the legal situation. Perhaps a lawyer can add a link to a court decision.
Jonas Stein

25

EULA는 소스 코드를 보는 사람들이 일반적으로 최종 사용자가 아니기 때문에 여기서 잘못된 용어입니다.

법적으로도 차이가 없습니다. 저작권은 명시 적으로 선언 할 필요가 없습니다.

기본적으로, 당신이 달성하는 것은 사람들이 실수로 라이센스 조건을 위반할 위험이 적다는 것 입니다. 그것이 당신에게 얼마나 중요한지 결정해야 할 것입니다.

가장 좋은 타협은 각 소스 코드 파일에 전체 라이선스 텍스트에 대한 링크 (프로젝트 내 상대 URL 및 절대 URL)를 포함하는 매우 짧은 헤더를 넣는 것입니다. 이렇게하면 라이선스에 관심이있는 사람은 누구나 라이선스를 찾을 수있는 위치를 알 수 있습니다 (이상적으로는 엄청난 라이선스 비용을 지불 할 의사가 있는 사람입니다. 이러한 사람이 귀하에게 연락 할 수 있기를 원합니다 !).


저작권이 명시적일 필요는 없지만 카피 레프트는 어떻습니까?
Kekoa

1
@kekoav : 카피 레프트는 저작권보다 덜 제한적입니다. 기본적으로 파생물을 만들 수 없습니다.
Zifre

3
분쟁에서 그것은 유효한 주장이 아닙니다. 라이선스가 있고이를 검색하는 방법을 알려주는 경우 라이선스를 보지 못하도록 방해 한 기술 장벽을 사이트에 배치 할 수 없습니다.
Lasse V. Karlsen

1
"Copyleft"는 내부로부터 저작권 제한을 "전복"하기위한 GPL의 기본 개념의 속어입니다. 즉, 저작권 보유자로서 귀하의 권리를 사용하여 누구에게나 귀하의 코드를 자유롭게 사용할 수있는 라이선스를 부여하지만 코드를 공개하도록 강요합니다. 동일한 라이선스에 따라 귀하를 기반으로합니다.
Michael Borgwardt

2
옳은; 그러나 이러한 맥락에서 Zifre가 말했듯이 그것은 중요하지 않습니다. 특정 코드가 게시 된 라이선스를 모르는 경우에는 전혀 사용할 수 없다고 가정해야합니다. 따라서 게시자는 사람들이 라이센스를 읽도록하기 위해 추가로 시간을 할애 할 필요가 없습니다.
Michael Borgwardt

14

아니요, 각 소스 코드 파일에 라이선스를 넣을 필요는 없습니다.

자세히 살펴보면 대부분의 FOSS 응용 프로그램도 그렇게하지 않습니다. 그들은 각 파일의 상단에 저작권 문구를두고 파일이 어떤 라이선스에 속해 있으며 라이선스의 전체 텍스트를 찾을 수있는 위치를 알려주는 짧은 문장을 넣습니다. 일반적으로 라이선스의 전체 텍스트가 포함 된 COPYING 또는 LICENSE 파일 및 / 또는 전체 텍스트가 포함 된 웹 사이트 (COPYING 파일이 더 이상없는 경우)를 가리 킵니다.

Michael Borgwardt가 그의 답변에서 말했듯이 합법적으로 이것을 할 필요가 없습니다. 그러나 배포하려는 소스 코드에는 사람들이 저작권을 가진 사람과 라이선스가 무엇인지 즉시 알 수 있으므로 배포하는 것이 좋습니다.


1
이. 저작권 표시에는 라이센스 이름 (표준 인 경우)에 대한 참조와 소스 트리에서 라이센스 파일을 찾는 방법에 대한 설명이 포함되어야합니다.
jmucchiello

13

라이센스에 따라 다를 수 있습니다. GPL은 구별 preamble하고license . (성가신) 서문이 코드의 일부 여야 한다고 분명히 명시 되어 있습니다 .

공간을 절약하기 위해 GPL의 서문이나 프로그램에서 사용하는 방법에 대한 지침을 생략 할 수 있습니까?

서문과 지침은 GNU GPL의 필수 부분이며 생략 할 수 없습니다. 사실, GPL은 저작권이 있으며 그 라이센스는 전체 GPL의 축 어적 복사만을 허용합니다. (법률 용어를 사용하여 다른 라이선스를 만들 수 있지만 GNU GPL이 아닙니다.) (1)

출처 : 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble

http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html참조하십시오.

ifrOSS무료 전자 책은 독일어로 GPL 2에 대해 설명하고 주석을 달았습니다. GPL 3에 대한 또 다른 것이 있습니다.

잘 알려진 답변을 얻으려면 sx에서 사용할 수없는 법률 자문을 요청해야합니다. (오픈 소스) 프로젝트에 대한 변호사를 찾을 수없는 경우 FSFE 법률 네트워크를 살펴보십시오 .


7
서문과 지침 정식 라이선스의 일부 이지만 모든 파일에 정식 라이선스 를 입력해야한다는 내용은 없습니다 . - 다음 고지 는 정식 라이선스의 일부일 뿐입니다. - 가장 안전 하지만 필수는 아닙니다 . -유일한 요구 사항은 나머지에 대한 포인터가있는 저작권 라인입니다. 전체 라이선스를 하나의 별도 파일에 넣어도 괜찮습니다 . [...] attach the following notices to the program.safest to attach them to the start of each source fileeach file should have at least the "copyright" line and a pointer to where the full notice is found.
톡 살롯

3
그리고 그 주장 거라고 해야한다 ! = 필수 .
톡 살롯

7

나는 그것을 각 파일에 넣는 이유가 합법적이라고 생각합니다. 계약이 각 파일에있는 경우 누군가 라이선스에 노출되지 않고 코드 조각을 가로막을 가능성은 없습니다.

좋지 않을 수도 있지만, 모든 큰 소년들이 그것을 사용하므로 시각적 인 고통이라면 똑같이하지 않는 더 나은 이유를 찾을 것입니다.

GPL을 사용하는 경우 이것은 문제가 더 많지만 BSD 또는 MIT와 같은 공개 도메인 라이선스를 사용하는 경우 사람들이 코드로 무엇을하는지 정말로 신경 쓰지 않는다고 생각합니다. 당신의 면허가 얼마나 엄격한 지에 달려 있다고 생각합니다.


1
이 경우 계속 진행하면 licence.txt 파일의 라이센스에 동의한다는 것을 각 파일에 지정하십시오. 그러나 각 파일에 동일한 텍스트를 복사 / 붙여 넣기하지 마십시오. 때때로 라이선스보다 짧은 코드를 가진 파일을 찾습니다.
Rook

예, 특히 긴 라이센스의 경우 그렇게 잘 작동한다는 데 동의합니다. 법적으로 필수적인 것은 아니거나 법정에서 지원할 수없는 경우에도 라이선스에 대한 언급은 사람들이 코드가 어떤 라이선스를 가지고 있는지 검색하지 않고도 알리는 것이 가장 좋습니다.
Kekoa

3

이날,

EULA가 아닌 라이선스에 대해 이야기한다고 가정하면 라이선스를 외부에 둘 수 있습니다. 이것은 거의 항상 GPL과 같은 정말 긴 라이센스로 수행됩니다. 모든 파일에 전체 GPL 라이선스를 넣는 것은 어리석은 일입니다. 일반적으로 실제 라이센스를 찾을 수있는 위치를 알려주는 일종의 알림이있을 것입니다. 이것은 완벽하게 합법적입니다. 그러나 BSD / Apache / MIT / whatever와 같은 매우 짧은 라이센스의 경우 라이센스를 찾을 수있는 위치에 대한 알림이 라이센스 자체만큼 길기 때문에 모든 파일에 라이센스를 포함하는 것이 더 간단합니다.


2

라이센스에 따라 다릅니다. 예를 들어 GPL은 모든 소스 파일에 짧은 알림을 표시하고 소스 배포의 어딘가에 전체 라이선스를 포함하고 바이너리 배포본의 사본을 얻는 모든 사람이 소스 배포를 사용할 수 있도록 지시합니다.

이것에 동의하지 않고 그것이 귀하의 코드 인 경우, 더 동의 할 수있는 라이선스를 선택하거나 자신 만의 라이선스를 만들 수 있습니다.


1

코드가 컴파일되어 바이너리를 배포하는 경우에는 실제로 중요하지 않습니다. 바이너리를 만들 때 컴파일 프로세스가 발생하기 전에 주석이 제거되기 때문입니다. 실제 소스 코드를 오픈 소스 또는 비공개 소스로 배포하는 경우에만 중요합니다. 이것은 컴파일되지 않는 스크립팅 언어로 응용 프로그램을 배포하는 경우에 중요합니다.


감사. 오픈 소스가 될 것입니다.
Joan Venge

라이선스를 포함하기 위해 하드 코딩 된 문자열을 만들 수 있으므로 바이너리에 표시되지만 너무 많을 것입니다. :).
Liran Orevi

1

라이센스를 위해 필요하지 않습니다. 단일 외부 파일은 어떤 파일이 포함되는지 명확하게 유지하는 한 수행합니다.

그러나 저작권의 경우 모든 텍스트에 저작권 표시가 있어야합니다.


감사합니다. 저작권이 다른가요?
Joan Venge

INAL이지만 라이선스는 귀하와 사용자 / 고객 간의 계약입니다. 저작권은 저작물의 소유권을 주장하는 것입니다. 누군가가 코드의 일부를 집어 들고 통지가 누락 되었기 때문에 저작권이 아니라고 합리적으로 주장 할 수 있습니다. "Copyright Joe Soap (Cleansoft Inc.)"만 있으면 걱정하지 마십시오.
James Anderson

10
당신은 그것에 대해 너무 틀 렸습니다. 명확하게하기 위해 모든 곳에 저작권 고지를 추가하는 것이 일반적으로 좋지만 "저작권이 없다고 가정"하는 것은 공정한 게임이 아닙니다. 모든 것이 저작권이 있음을 알고 있기 때문입니다. 누군가가 소스 코드를 얻었을 때 그 소스 코드를 사용할 수 있도록 허용하는 라이선스 명세서를 찾거나 어떤 이유로 든 그 소스 코드가 공개 도메인에 있다는 사실을 알게 될 수 있습니다. 그가 저작권이 있지만 복사 할 수없는 경우. 저작권은 자동 일이며, 그것의 좋은 그것을 언급 할 수 있지만 이렇게 여부를 당신이 ... 그것을 잃을 의미하지 않는다
재스퍼

1

내가하는 일은 파일 맨 위에 회사 이름, 마지막 개정 날짜 및 소스 파일에있는 라이센스 이름을 설명하는 두 줄 주석을 넣은 다음 파일 맨 아래에 짧은 버전의 특허.

물론 전체 라이선스 (여러 라이선스의 경우 모두)는 항상 소스 파일 및 릴리스 디렉토리에 포함됩니다.


3
마지막 개정 날짜를 어떻게 자동화합니까?
Dustin Getz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.