GPL로 배포 된 소스 코드는 사람이 읽을 수 있어야합니까?


답변:


37

GPL은 편집을 위해 선호하는 버전이어야합니다. 일반적으로 난독 처리 된 코드를 작성하고 직접 변경하면 GPL의 소스입니다. 읽을 수있는 버전으로 작업 한 다음 모든 종류의 난독 화기를 통해 실행하는 경우 GPL이 소스를 읽을 수있는 버전이 읽을 수있는 버전입니다.

"가독성"은 주관적이며 정의되지 않았습니다. GPL 하에서 이해하기 어렵고 이해하기 어려운 코드를 공개하는 것은 합법적입니다. 변경 한 버전을 가져 와서 공백을 제거하거나 읽을 수 없게 만드는 것은 합법적이지 않습니다. GPL에 따라 해당 소스를 호출하십시오.


1
매우 흥미 롭습니다. 감사합니다. 이것을 나타내는 라이센스의 특정 부분이 있습니까?
Armand

12
GPLv2, 이용 약관, 조항 3 : "작품의 소스 코드는 저작물을 수정하기 위해 선호하는 저작물 형식을 의미합니다."
David Thornley

4
이 제한은 라이센스 사용자에게만 적용됩니다. 자신의 코드 (외부 GPL 코드가 그려지지 않음)의 경우 원하는만큼 난독 화하고 GPL 스티커를 부착하여 다른 사람에게 권한을 부여 할 수 있습니다. nVidia (1998 년 정도)에 드라이버 코드를 사용하여이 작업을 수행했습니다.
Patrick Georgi

2
즉, nVidia 예제에서와 같이 사용 가능한 소스 코드를 제공하지 않는 작업에서 "GPL 스티커를 때리는"것은 의미가 없습니다. 독점 라이센스를 사용했을 수도 있습니다. 분명히 nVidia는 실제로 코드를 공유하지 않고 코드를 공유하는 것으로 보길 원했습니다 .
thomasrutter

1
그냥 호기심. 소스를 암호화 된 형식으로 저장하는 전용 편집기에서 작업하는 경우 어떻게됩니까? 이론적으로는 코드를 작업하는 방식에 코드가 있지만 아무도 액세스 할 수없는 독점 도구이기 때문에 아무도 코드를 사용할 수 없습니다.
Aidiakapi

6

섹션 1에서 GPL v3을 가져 오면 다음이 있습니다.

객체 코드 형태의 저작물에 대한“해당 소스”는 객체 코드를 생성, 설치 및 (실행 가능한 저작물을 위해) 실행하고 해당 활동을 제어하는 ​​스크립트를 포함하여 저작물을 수정하는 데 필요한 모든 소스 코드를 의미합니다.

주석과 공백이 제거되고 함수 및 변수 이름이 변경된 경우 작업을 합리적으로 수정할 수 없습니다.

게다가:

소스 코드 형식의 저작물에 해당하는 소스는 동일한 저작물입니다.

수정 된 작업이 아니라 동일한 작업입니다.

따라서 이전 요점을 명확히하기 위해 소스 코드를 변경하지 않아야합니다. 인간 쓰기 == 사람이 읽을 수 있다고 가정합니다. 그러나 그렇습니다. 사람이 읽을 수없는 것으로 간주 할 수있는 내용에 직접 쓸 수 있습니다.


4

이 질문에는 중요한 정보가 포함되어 있지 않습니다. 단독 저자 인 경우 반드시 모든 규칙을 따를 필요없이 원하는 라이센스 (GPL 포함)에 따라 고유 코드를 릴리스 할 수 있습니다. 따라서 코드가 아닌 형태로 코드를 배송 할 수 있습니다 편집에 바람직 있으며 저작권법을 위반하지 않을 수 있습니다. 다른 사람들이 자유 소프트웨어 라이센스 하에서 코드를 확장 할 수 있는지 여부는 의문의 여지가 있으므로 시도 할 가능성이 거의 없습니다.

그러나 대부분의 경우 당신은 작품의 유일한 저자가 아닙니다. 기존 코드를 활용하여 파생 작업을 만듭니다. 이러한 저작물은 해당 계보의 결합 된 규칙을 따라야합니다. 그렇지 않으면 저작권을 위반하지 않고 배포 할 권한이 없습니다.

보다 명확하게하기 위해 몇 가지 예 (IANAL)가 있습니다.

  • 코드에서 GPL 라이브러리를 사용하는 경우 David Thornley가 작성한 것처럼 실제로 작성 및 편집하는 형식이 아닌 한 자신의 소스 코드를 난독 처리 된 형식으로 만 제공 할 수 없습니다.
  • 코드에서 LGPL 라이브러리를 사용하는 경우 난독 화 된 형식으로 만 소스 코드를 제공 할 수 있습니다. LGPL은 최신 버전의 라이브러리에서 라이브러리를 사용하는 작업 만 사용할 수 있기 때문입니다.
  • LGPL 라이브러리를 확장하는 경우 이는 GPL 사례와 유사하며 혼동되지 않는 코드를 제공해야합니다 (실제로 편집하지 않는 한).

1
저작권을 소유 한 사람에 관계없이 라이센스의 모든 규칙을 따라야합니다. 자신의 웹 사이트에서 JS 라이브러리를 사용하고 GPL로 릴리스하려는 경우 별도로 수행 할 수 있습니다. GPL이 코드 가독성을 고려할 때 LGPL에 유사한 제한 사항이 적용되는 경우 여기에 언급하면 ​​도움이 될 수 있지만이 질문은 LGPL에 관한 것이 아닙니다.
Armand

@Alison : 라이센스 조건은 저작물을 처음에 만들고 라이센스를 부여한 것이 아니라 저작물을 사용하는 (그리고이 경우에는 재배포하는) 것에 적용됩니다.
Paŭlo Ebermann

1
@ 앨리슨 동의하지 않습니다. 작품의 단독 소유자 인 경우 자유롭게 라이센스를 다시 부여 할 수 있습니다. 따라서 (여기서는 매직 지정되지 않은 라이센스)의 조건에 따라 배포 할 수 있으며 다른 사람들이 GPL의 조건에 따라 재배포 할 수 있습니다. GPL은 다른 사람이 귀하의 작품에서 재배포 할 수있는 권한 만 추가합니다. 물론 이것은 GPL을 믿지 않고 단독 소유자 인 것처럼 사용하지 않는 것처럼 가능한 시나리오는 아닙니다.
Michael Urman

언어가 바이너리를 허용하는 경우 LGPL 라이브러리를 사용하는 자체 소스 코드를 제공하지 않아도됩니다. GPLv2를 사용하여 사용자가 변경된 버전을 설치하지 못하게하더라도 사용자가 LGPL 부분을 변경하고 앱을 다시 빌드 할 수있는 항목을 제공해야합니다. 필요하거나 편리하게 배송처를 제공하는 경우 난독 처리 될 수 있습니다.
David Thornley

좋은 지적. LGPL이 더 이상 게시물을 사용하는 작업에 대해 요구 사항을 제시하지 않도록 게시물을 편집하겠습니다.
Michael Urman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.