Annotation of embedaddon/curl/docs/LICENSE-MIXING.md, revision 1.1.1.1
1.1 misho 1: License Mixing
2: ==============
3:
4: libcurl can be built to use a fair amount of various third party libraries,
5: libraries that are written and provided by other parties that are distributed
6: using their own licenses. Even libcurl itself contains code that may cause
7: problems to some. This document attempts to describe what licenses libcurl and
8: the other libraries use and what possible dilemmas linking and mixing them all
9: can lead to for end users.
10:
11: I am not a lawyer and this is not legal advice!
12:
13: One common dilemma is that [GPL](https://www.gnu.org/licenses/gpl.html)
14: licensed code is not allowed to be linked with code licensed under the
15: [Original BSD license](https://spdx.org/licenses/BSD-4-Clause.html) (with the
16: announcement clause). You may still build your own copies that use them all,
17: but distributing them as binaries would be to violate the GPL license - unless
18: you accompany your license with an
19: [exception](https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs). This
20: particular problem was addressed when the [Modified BSD
21: license](https://opensource.org/licenses/BSD-3-Clause) was created, which does
22: not have the announcement clause that collides with GPL.
23:
24: ## libcurl
25:
26: Uses an [MIT style license](https://curl.haxx.se/docs/copyright.html) that is
27: very liberal.
28:
29: ## OpenSSL
30:
31: (May be used for SSL/TLS support) Uses an Original BSD-style license with an
32: announcement clause that makes it "incompatible" with GPL. You are not
33: allowed to ship binaries that link with OpenSSL that includes GPL code
34: (unless that specific GPL code includes an exception for OpenSSL - a habit
35: that is growing more and more common). If OpenSSL's licensing is a problem
36: for you, consider using another TLS library.
37:
38: ## GnuTLS
39:
40: (May be used for SSL/TLS support) Uses the
41: [LGPL](https://www.gnu.org/licenses/lgpl.html) license. If this is a problem
42: for you, consider using another TLS library. Also note that GnuTLS itself
43: depends on and uses other libs (libgcrypt and libgpg-error) and they too are
44: LGPL- or GPL-licensed.
45:
46: ## WolfSSL
47:
48: (May be used for SSL/TLS support) Uses the GPL license or a proprietary
49: license. If this is a problem for you, consider using another TLS library.
50:
51: ## NSS
52:
53: (May be used for SSL/TLS support) Is covered by the
54: [MPL](https://www.mozilla.org/MPL/) license, the GPL license and the LGPL
55: license. You may choose to license the code under MPL terms, GPL terms, or
56: LGPL terms. These licenses grant you different permissions and impose
57: different obligations. You should select the license that best meets your
58: needs.
59:
60: ## mbedTLS
61:
62: (May be used for SSL/TLS support) Uses the [Apache 2.0
63: license](https://opensource.org/licenses/Apache-2.0) or the GPL license.
64: You may choose to license the code under Apache 2.0 terms or GPL terms.
65: These licenses grant you different permissions and impose different
66: obligations. You should select the license that best meets your needs.
67:
68: ## BoringSSL
69:
70: (May be used for SSL/TLS support) As an OpenSSL fork, it has the same
71: license as that.
72:
73: ## libressl
74:
75: (May be used for SSL/TLS support) As an OpenSSL fork, it has the same
76: license as that.
77:
78: ## BearSSL
79:
80: (May be used for SSL/TLS support) Uses an MIT license that is very liberal
81: and imposes no restrictions on any other library or part you may link with.
82:
83: ## c-ares
84:
85: (Used for asynchronous name resolves) Uses an MIT license that is very
86: liberal and imposes no restrictions on any other library or part you may link
87: with.
88:
89: ## zlib
90:
91: (Used for compressed Transfer-Encoding support) Uses an MIT-style license
92: that shouldn't collide with any other library.
93:
94: ## MIT Kerberos
95:
96: (May be used for GSS support) MIT licensed, that shouldn't collide with any
97: other parts.
98:
99: ## Heimdal
100:
101: (May be used for GSS support) Heimdal is Original BSD licensed with the
102: announcement clause.
103:
104: ## GNU GSS
105:
106: (May be used for GSS support) GNU GSS is GPL licensed. Note that you may not
107: distribute binary curl packages that uses this if you build curl to also link
108: and use any Original BSD licensed libraries!
109:
110: ## libidn
111:
112: (Used for IDNA support) Uses the GNU Lesser General Public License [3]. LGPL
113: is a variation of GPL with slightly less aggressive "copyleft". This license
114: requires more requirements to be met when distributing binaries, see the
115: license for details. Also note that if you distribute a binary that includes
116: this library, you must also include the full LGPL license text. Please
117: properly point out what parts of the distributed package that the license
118: addresses.
119:
120: ## OpenLDAP
121:
122: (Used for LDAP support) Uses a Modified BSD-style license. Since libcurl uses
123: OpenLDAP as a shared library only, I have not heard of anyone that ships
124: OpenLDAP linked with libcurl in an app.
125:
126: ## libssh2
127:
128: (Used for scp and sftp support) libssh2 uses a Modified BSD-style license.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>