  Date: February 11, 2007
  Author: Daniel Stenberg <daniel@haxx.se>
  URL: http://curl.haxx.se/legal/distro-dilemma.html

Condition

 This document is written to describe the situation as it is right now.
 libcurl 7.16.1 is currently the latest version available. Things may of
 course change in the future.

 This document reflects my view and understanding of these things. Please tell
 me where and how you think I'm wrong, and I'll try to correct my mistakes.

Background 

 The Free Software Foundation has deemed the Original BSD license[1] to be
 "incompatible"[2] with GPL[3]. I'd rather say it is the other way around, but
 the point is the same: if you distribute a binary version of a GPL program,
 it MUST NOT be linked with any Original BSD-licensed parts or libraries.
 Doing so will violate the GPL license. For a long time, very many GPL
 licensed programs have avoided this license mess by adding an exception[8] to
 their license. And many others have just closed their eyes for this problem.

 libcurl is MIT-style[4] licensed - how on earth did this dilemma fall onto
 our plates?

 libcurl is only a little library. libcurl can be built to use OpenSSL for its
 SSL/TLS capabilities. OpenSSL is basically Original BSD licensed[5].

 If libcurl built to use OpenSSL is used by a GPL-licensed application and you
 decide to distribute a binary version of it (Linux distros - for example -
 tend to), you have a clash. GPL vs Original BSD.

 This dilemma is not libcurl-specific nor is it specific to any particular
 Linux distro. (This article mentions and refers to Debian several times, but
 only because Debian seems to be the only Linux distro to have faced this
 issue yet since no other distro is shipping libcurl built with two SSL
 libraries.)

Part of the Operating System

 This would not be a problem if the used lib would be considered part of the
 underlying operating system, as then the GPL license has an exception
 clause[6] that allows applications to use such libs without having to be
 allowed to distribute it or its sources. Possibly some distros will claim
 that OpenSSL is part of their operating system.

 Debian does however not take this stance and has officially(?) claimed that
 OpenSSL is not a required part of the Debian operating system

 Some people claim that this paragraph cannot be exploited this way by a Linux
 distro, but I am not a lawyer and that is a discussion left outside of this
 document.

GnuTLS

 Since May 2005 libcurl can get built to use GnuTLS instead of OpenSSL. GnuTLS
 is an LGPL[7] licensed library that offers a matching set of features as
 OpenSSL does. Now, you can build and distribute an TLS/SSL capable libcurl
 without including any Original BSD licensed code.

 I believe Debian is the first (only?) distro that provides libcurl/GnutTLS
 packages.

yassl

 libcurl can get also get built to use yassl for the TLS/SSL layer. yassl is a
 GPL[3] licensed library.


GnuTLS vs OpenSSL vs yassl

 While these three libraries offer similar features, they are not equal.
 libcurl does not (yet) offer a standardized stable ABI if you decide to
 switch from using libcurl-openssl to libcurl-gnutls or vice versa. The GnuTLS
 and yassl support is very recent in libcurl and it has not been tested nor
 used very extensively, while the OpenSSL equivalent code has been used and
 thus matured since 1999.

 GnuTLS
   - LGPL licensened
   - supports SRP
   - lacks SSLv2 support
   - lacks MD2 support (used by at least some CA certs)
   - lacks the crypto functions libcurl uses for NTLM

 OpenSSL
   - Original BSD licensened
   - lacks SRP
   - supports SSLv2
   - older and more widely used
   - provides crypto functions libcurl uses for NTLM
   - libcurl can do non-blocking connects with it in 7.15.4 and later

 yassl
   - GPL licensed
   - much untested and unproven in the real work by (lib)curl users so we don't
     know a lot about restrictions or benefits from using this

The Better License, Original BSD, GPL or LGPL?

 It isn't obvious or without debate to any objective interested party that
 either of these licenses are the "better" or even the "preferred" one in a
 generic situation.

 Instead, I think we should accept the fact that the SSL/TLS libraries and
 their different licenses will fit different applications and their authors
 differently depending on the applications' licenses and their general usage
 pattern (considering how GPL and LGPL libraries for example can be burdensome
 for embedded systems usage).

 In Debian land, there seems to be a common opinion that LGPL is "maximally
 compatible" with apps while Original BSD is not. Like this:

        http://lists.debian.org/debian-devel/2005/09/msg01417.html

More SSL Libraries

 In libcurl, there's no stopping us here. There are more Open Source/Free
 SSL/TLS libraries out there and we would very much like to support them as
 well, to offer application authors an even wider scope of choice.

Application Angle of this Problem

 libcurl is built to use one SSL/TLS library. It uses a single fixed name (by
 default) on the built/created lib file, and applications are built/linked to
 use that single lib. Replacing one libcurl instance with another one that
 uses the other SSL/TLS library might break one or more applications (due to
 ABI differences and/or different feature set). You want your application to
 use the libcurl it was built for.

Project cURL Angle of this Problem

 We distribute libcurl and everyone may build libcurl with either library at
 their choice. This problem is not directly a problem of ours. It merely
 affects users - GPL application authors only - of our lib as it comes
 included and delivered on some distros.

 libcurl has different ABI when built with different SSL/TLS libraries due to
 these reasons:

 1. No one has worked on fixing this. The mutex/lock callbacks should be set
    with a generic libcurl function that should use the proper underlying
    functions.

 2. The CURLOPT_SSL_CTX_FUNCTION option is not possible to "emulate" on GnuTLS
    but simply requires OpenSSL.

 3. There might be some other subtle differences just because nobody has yet
    tried to make a fixed ABI like this.

Distro Angle of this Problem

 To my knowledge there is only one distro that ships libcurl built with either
 OpenSSL or GnuTLS.

 Debian Linux is now (since mid September 2005) providing two different
 libcurl packages, one for libcurl built with OpenSSL and one built with
 GnuTLS. They use different .so names and can this both be installed in a
 single system simultaneously. This has been said to be a transitional system
 not desired to keep in the long run.

Footnotes

 [1] = http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6
 [2] = http://www.fsf.org/licensing/essays/bsd.html
 [3] = http://www.fsf.org/licensing/licenses/gpl.html
 [4] = http://curl.haxx.se/docs/copyright.html
 [5] = http://www.openssl.org/source/license.html
 [6] = http://www.fsf.org/licensing/licenses/gpl.html end of section 3
 [7] = http://www.fsf.org/licensing/licenses/lgpl.html
 [8] = http://en.wikipedia.org/wiki/OpenSSL_exception

Feedback/Updates provided by

 Eric Cooper
