메인 콘텐츠로 건너뛰기

앱, libcurl 및 타사 라이브러리의 라이선스 혼합

libcurl은 다양한 타사 라이브러리를 상당수 사용하도록 빌드할 수 있으며, 이러한 라이브러리는 다른 당사자가 작성 및 제공하고 자체 라이선스에 따라 배포됩니다. libcurl 자체에도 일부 사용자에게 문제를 일으킬 수 있는 코드가 포함되어 있습니다. 이 문서에서는 libcurl과 기타 라이브러리가 사용하는 라이선스와 이들을 모두 연결하고 혼합할 때 최종 사용자가 겪을 수 있는 딜레마를 설명합니다. 저는 변호사가 아니며 이 문서는 법률 자문이 아닙니다! 흔한 딜레마 중 하나는 GPL[1] 라이선스 코드를 원래 BSD 라이선스(광고 조항 포함)에 따라 라이선스가 부여된 코드와 연결할 수 없다는 것입니다. 이들을 모두 사용하는 자체 사본을 빌드할 수는 있지만, 이를 바이너리로 배포하면 GPL 라이선스를 위반하게 됩니다. 단, 라이선스에 예외[2]를 첨부하는 경우는 예외입니다. 이 특정 문제는 GPL과 충돌하는 광고 조항이 없는 수정된 BSD 라이선스가 만들어지면서 해결되었습니다. libcurl 가능한 한 자유로운 MIT(또는 수정된 BSD) 스타일 라이선스를 사용합니다. OpenSSL (SSL/TLS 지원에 사용될 수 있음) 광고 조항이 있는 원래 BSD 스타일 라이선스를 사용하므로 GPL과 “호환되지 않습니다”. 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 포크이므로 OpenSSL과 동일한 라이선스를 가집니다. libressl (SSL/TLS 지원에 사용될 수 있음) OpenSSL 포크이므로 OpenSSL과 동일한 라이선스를 가집니다. <!—c-ares (비동기 이름 확인에 사용됨) 매우 자유로운 MIT 라이선스를 사용하며 연결할 수 있는 다른 라이브러리나 구성 요소에 어떠한 제한도 부과하지 않습니다.—> zlib (압축된 Transfer-Encoding 지원에 사용됨) 다른 라이브러리와 충돌하지 않아야 하는 MIT 스타일 라이선스를 사용합니다. MIT Kerberos (GSS 지원에 사용될 수 있음) MIT 라이선스이며 다른 구성 요소와 충돌하지 않아야 합니다. Heimdal (GSS 지원에 사용될 수 있음) Heimdal은 광고 조항이 있는 원래 BSD 라이선스입니다. GNU GSS (GSS 지원에 사용될 수 있음) GNU GSS는 GPL 라이선스입니다. curl을 빌드할 때 원래 BSD 라이선스 라이브러리도 연결하여 사용하는 경우, 이를 사용하는 curl 바이너리 패키지를 배포할 수 없다는 점에 유의하세요! libidn (IDNA 지원에 사용됨) GNU Lesser General Public License[3]를 사용합니다. LGPL은 “카피레프트”가 약간 덜 공격적인 GPL의 변형입니다. 이 라이선스는 바이너리를 배포할 때 더 많은 요구 사항을 충족해야 합니다. 자세한 내용은 라이선스를 참조하세요. 또한 이 라이브러리를 포함하는 바이너리를 배포하는 경우 전체 LGPL 라이선스 텍스트도 포함해야 합니다. 배포된 패키지에서 라이선스가 적용되는 부분을 적절히 명시하세요. OpenLDAP (LDAP 지원에 사용됨) 수정된 BSD 스타일 라이선스를 사용합니다. libcurl은 OpenLDAP를 공유 라이브러리로만 사용하므로, 앱에서 libcurl과 연결된 OpenLDAP를 배포하는 사람에 대해서는 들어본 적이 없습니다. libssh2 (scp 및 sftp 지원에 사용됨) libssh2는 수정된 BSD 스타일 라이선스를 사용합니다. [1] = GPL - GNU General Public License: https://www.gnu.org/licenses/gpl.html
[2] = https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs GPL에 대한 예외 작성에 관한 세부 정보.
[3] = LGPL - GNU Lesser General Public License: https://www.gnu.org/licenses/lgpl.html
[4] = MPL - Mozilla Public License: https://www.mozilla.org/MPL/
마지막 수정일 2026년 10월 20일