> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# libcurl 许可证

> libcurl 许可证。

# 应用、libcurl 与第三方库的许可证混合

libcurl 可以生成为使用相当多的各种第三方库，这些库由其他方编写和提供，并使用其各自的许可证进行分发。
甚至 libcurl 本身也包含可能给某些人带来问题的代码。本文档尝试描述 libcurl 和
其他库使用的许可证，以及将它们全部链接和混合可能给最终用户带来的困境。

我不是律师，本文不构成法律建议！

一个常见的困境是，GPL\[1] 许可的代码不允许与根据原始 BSD 许可证(带有公告条款)许可的代码链接。你仍然可以生成使用所有这些代码的自有副本，但将它们作为二进制文件分发则会违反 GPL 许可证，除非你在许可证中附带例外条款\[2]。此特定问题
在创建修改版 BSD 许可证时得到了解决，该许可证没有与 GPL 冲突的公告条款。

[libcurl](https://curl.haxx.se/docs/copyright.html)

使用尽可能宽松的 MIT(或修改版 BSD)风格许可证。

[OpenSSL](https://www.openssl.org/source/license.html)

(可用于 SSL/TLS 支持)使用带有公告条款的原始 BSD 风格许可证，这使其与 GPL "不兼容"。不允许发布与 OpenSSL 链接且包含 GPL 代码的二进制文件(除非该特定 GPL 代码包含针对 OpenSSL 的例外条款，这种做法正变得越来越普遍)。如果 OpenSSL 的许可对你来说是个问题，请考虑使用其他 TLS 库。

[GnuTLS](https://www.gnutls.org/)

(可用于 SSL/TLS 支持)使用 LGPL\[3] 许可证。如果这对你来说是个问题，请考虑使用其他 TLS 库。另请注意，GnuTLS 本身依赖并使用其他库(libgcrypt 和 libgpg-error)，它们也采用 LGPL 或 GPL 许可。

[WolfSSL](https://www.wolfssl.com/)

(可用于 SSL/TLS 支持)使用 GPL\[1] 许可证或专有许可证。如果这对你来说是个问题，请考虑使用其他 TLS 库。

[NSS](https://developer.mozilla.org/docs/Mozilla/Projects/NSS)

(可用于 SSL/TLS 支持)受 MPL\[4] 许可证、GPL\[1] 许可证和 LGPL\[3] 许可证约束。你可以选择按照 MPL 条款、GPL 条款或 LGPL 条款许可代码。这些许可证授予你不同的权限并施加不同的义务。你应选择最符合你需求的许可证。

[axTLS](http://axtls.sourceforge.net/)

(可用于 SSL/TLS 支持)使用修改版 BSD 风格许可证。

[mbedTLS](https://tls.mbed.org/)

(可用于 SSL/TLS 支持)使用 GPL\[1] 许可证或专有许可证。如果这对你来说是个问题，请考虑使用其他 TLS 库。

[BoringSSL](https://boringssl.googlesource.com/)

(可用于 SSL/TLS 支持)作为 OpenSSL 的分支，它与 OpenSSL 具有相同的许可证。

[libressl](https://www.libressl.org/)

(可用于 SSL/TLS 支持)作为 OpenSSL 的分支，它与 OpenSSL 具有相同的许可证。

\<!--[c-ares](https://daniel.haxx.se/projects/c-ares/license.html)

(用于异步名称解析)使用非常宽松的 MIT 许可证，不会对你可能链接的任何其他库或部分施加任何限制。-->

[zlib](https://www.zlib.net/zlib_license.html)

(用于压缩的 Transfer-Encoding 支持)使用 MIT 风格许可证，不应与任何其他库冲突。

[MIT Kerberos](https://web.mit.edu/kerberos/www/dist/)

(可用于 GSS 支持)采用 MIT 许可，不应与任何其他部分冲突。

[Heimdal](https://heimdalsecurity.com)

(可用于 GSS 支持)Heimdal 采用带有公告条款的原始 BSD 许可。

[GNU GSS](https://www.gnu.org/software/gss/)

(可用于 GSS 支持)GNU GSS 采用 GPL 许可。请注意，如果你将 curl 生成为同时链接和使用任何原始 BSD 许可的库，则不得分发使用此库的二进制 curl 包！

[libidn](https://josefsson.org/libidn/)

(用于 IDNA 支持)使用 GNU 宽通用公共许可证 \[3]。LGPL 是 GPL 的一种变体，其"著佐权"(copyleft)稍弱。此许可证要求在分发二进制文件时满足更多要求，有关详细信息，请参阅许可证。另请注意，如果分发包含此库的二进制文件，则还必须包含完整的 LGPL 许可证文本。请正确指出许可证所涉及的分发包的部分。

[OpenLDAP](https://www.openldap.org/software/release/license.html)

(用于 LDAP 支持)使用修改版 BSD 风格许可证。由于 libcurl 仅将 OpenLDAP 用作共享库，我还没听说有人在应用中发布与 libcurl 链接的 OpenLDAP。

[libssh2](https://www.libssh2.org/)

(用于 scp 和 sftp 支持)libssh2 使用修改版 BSD 风格许可证。

\[1] = GPL - GNU 通用公共许可证：[https://www.gnu.org/licenses/gpl.html](https://www.gnu.org/licenses/gpl.html)\
\[2] = [https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs](https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs) 有关编写 GPL 例外条款的详细信息。\
\[3] = LGPL - GNU 宽通用公共许可证：[https://www.gnu.org/licenses/lgpl.html](https://www.gnu.org/licenses/lgpl.html)\
\[4] = MPL - Mozilla 公共许可证：[https://www.mozilla.org/MPL/](https://www.mozilla.org/MPL/)


## Related topics

- [Cocos2D-x (C++) 许可证](/zh-CN/services/playfab/sdks/cocos2d-x/license.md)
- [Java 许可证](/zh-CN/services/playfab/sdks/java/license.md)
- [Lua 许可证](/zh-CN/services/playfab/sdks/lua/license.md)
- [junit 许可证](/zh-CN/services/playfab/sdks/java/Licenses/junit-license.md)
- [hamcrest 许可证](/zh-CN/services/playfab/sdks/java/Licenses/hamcrest-license.md)
