Annotation of embedaddon/curl/docs/LICENSE-MIXING.md, revision 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>