다음을 통해 공유


앱, libcurl, 및 제3자 라이브러리와의 라이선스 혼합

libcurl은 상당한 양의 여러 제3자 라이브러리를 사용하기 위해 빌드되었습니다. 이러한 라이브러리는 자체 라이선스를 사용하여 배포되는 기타 당사자에 의해 작성 및 제공됩니다. libcurl 자체에는 문제가 발생할 수 있는 코드가 포함됩니다. 이 문서는 libcurl 및 기타 라이브러리가 사용하는 라이선스와 이를 모두 연결 및 혼합함으로 인해 최종 사용자에게 가져올 수 있는 딜레마를 설명하기 위함입니다.

본인은 변호사가 아니며 이 내용은 법적 조언이 아닙니다!

일반적인 딜레마는 GPL[1] 라이선스 코드가 (공지 조항으로) 원본 BSD 라이선스에 의해 라이선스가 허여된 코드에 연결할 수 있도록 허용되지 않았다는 사실입니다. 이를 모두 사용하는 자체 복사본을 빌드할 수 있지만, 모두 바이너리로 배포하면 예외[2]로 라이선스를 함께 제공하지 않는 한 GPL 라이선스를 위반하게 됩니다. 이 특정 문제는 수정된 BSD 라이선스를 작성할 때 제기되었으며 해당 라이선스는 GPL과 충돌하는 공지 조항을 포함하지 않습니다.

libcurl

가능한 한 광범위한 MIT(또는 수정된 BSD) 스타일의 라이선스를 사용합니다.

OpenSSL

(SSL/TLS 지원을 위해 사용할 수 있음) GPL과 "호환되지 않도록" 만드는 공지 조항을 포함하여 원본 BSD 스타일의 라이선스를 사용합니다. 특정 GPL 코드가 OpenSSL에 대한 예외를 포함하지 않는 한 해당 GPL 코드를 포함하는 OpenSSL와 연결하는 바이너리를 제공할 수 없습니다(이러한 관습은 점점 더 흔해지고 있음). OpenSSL의 라이선스가 귀하에게 문제가 되는 경우 다른 TLS 라이브러리를 사용하는 것이 좋습니다.

GnuTLS

(SSL/TLS 지원을 위해 사용할 수 있음) LGPL[3] 라이선스를 사용합니다. 이것이 귀하에게 문제가 되는 경우 다른 TLS 라이브러리를 사용하는 것이 좋습니다. 또한 GnuTLS 자체는 다른 라이브러리(libgcrypt 및 libgpg-error)에 의존 및 이를 사용하며 LGPL 또는 GPL 라이선스에는 너무 큽니다.

WolfSSL

(SSL/TLS 지원을 위해 사용할 수 있음) GPL[1] 라이선스 또는 독점 라이선스를 사용합니다. 이것이 귀하에게 문제가 되는 경우 다른 TLS 라이브러리를 사용하는 것이 좋습니다.

NSS

(SSL/TLS 지원을 위해 사용할 수 있음) MPL[4] 라이선스, GPL[1] 라이선스 및 LGPL[3] 라이선스가 적용됩니다. MPL 사용 약관, GPL 사용 약관 또는 LGPL 사용 약관에 의해 코드의 라이선스를 받도록 선택할 수 있습니다. 이러한 라이선스는 서로 다른 사용 권한 및 의무를 부여합니다. 귀하의 요구에 가장 적합한 라이선스를 선택해야 합니다.

axTLS

(SSL/TLS 지원을 위해 사용할 수 있음) 수정된 BSD 스타일 라이선스를 사용합니다.

mbedTLS

(SSL/TLS 지원을 위해 사용할 수 있음) GPL[1] 라이선스 또는 독점 라이선스를 사용합니다. 이것이 귀하에게 문제가 되는 경우 다른 TLS 라이브러리를 사용하는 것이 좋습니다.

BoringSSL

(SSL/TLS 지원을 위해 사용할 수 있음) OpenSSL 포크로, 이와 동일한 라이선스가 있습니다.

libressl

(SSL/TLS 지원을 위해 사용할 수 있음) OpenSSL 포크로, 이와 동일한 라이선스가 있습니다.

zlib

(압축 전송 인코딩 지원에 사용) 다른 어떠한 라이브러리와도 충돌해서는 안 되는 MIT 스타일 라이선스를 사용합니다.

MIT Kerberos

(GSS 지원에 사용할 수 있음) 다른 어떠한 부분과도 출동해서는 안 되는 MIT 라이선스를 사용합니다.

Heimdal

(GSS 지원에 사용할 수 있음) Heimdal은 공지 조항이 포함된 원본 BSD에 의해 라이선스가 허여됩니다.

GNU GSS

(GSS 지원을 위해 사용할 수 있음) GNU GSS는 GPL 라이선스를 사용합니다. curl을 빌드하여 특정 원본 BSD 라이선스 라이브러리를 연결 및 사용하는 경우 이를 사용하는 바이너리 curl 패키지를 배포할 수 없습니다.

libidn

(IDNA 지원에 사용) GNU LGPL(Lesser General Public License) [3]를 사용합니다. LGPL은 약간 덜 엄격하게 "공개 저작권"으로 수정된 GPL의 변형입니다. 바이너리를 배포할 때 이 라이선스에는 더 많은 요구 사항이 필요하므로 자세한 내용은 라이선스를 참조하세요. 또한 이 라이브러리를 포함하는 바이너리를 배포하는 경우 전체 LGPL 라이선스 텍스트도 포함해야 합니다. 라이선스에서 배포된 패키지의 어떤 부분에 대해 다루는지 명시하십시오.

OpenLDAP

(LDAP 지원에 사용) 수정된 BSD 스타일 라이선스를 사용합니다. libcurl은 OpenLDAP를 공유 라이브러리로만 사용하므로 앱에서 libcurl과 연결된 OpenLDAP를 제공하는 경우는 들어 본 적이 없습니다.

libssh2

(scp 및 sftp 지원에 사용) libssh2는 수정한 BSD 스타일 라이선스를 사용합니다.

[1] = GPL - GNU 일반 공개 라이선스: https://www.gnu.org/licenses/gpl.html
[2] = https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs GPL에 대한 예외를 자세히 설명합니다.
[3] = LGPL - GNU LGPL(Lesser General Public License): https://www.gnu.org/licenses/lgpl.html
[4] = MPL - Mozilla 공개 라이선스: https://www.mozilla.org/MPL/