OpenVPN 2.x is licensed under the GNU Public License v2.0 (GPL-2.0). This license has served us well in the past and we are not trying to change that. However, changes in licenses of our dependencies put us in an unfortunate situation.

Both mbed TLS and OpenSSL nowadays use the Apache 2.x license (APL-2). For the OpenSSL library we have a special exception that allows us linking with it. For newer mbed TLS versions, we cannot do this any more.

The APL-2 allows very liberal use of its source code when including it in other program (like BSD license). Unlike BSD licenses, the APL-2 has a few additions that position it better in today's legal landscape. It requires patent grant (in layman terms: you cannot contribute to an APL-2 licensed project and later sue someone for using your patents on the code you contributed). This is the most critical aspect where the APL-2 is incompatible with GPL-2.0 according to Free Software Foundation - <https://www.gnu.org/licenses/license-list.html#apache2>.

A short overview of APL-2 and license text can be found here:
<https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)#summary>

The OpenVPN community has discussed these issues with Pamela Chestek
<https://www.chesteklegal.com/> on the linking exception. She is a renowned open source license legal expert. Various options for this challenge have been studied and evaluated.

What is clear is that we will need a linking exception.  The OpenSSL and
mbed TLS libraries may be considered system libraries on Linux systems but cannot be considered as such for distributions of the OpenVPN binary on Windows, macOS or Android.


The proposed linking exception for OpenVPN:

    In addition, as a special exception, OpenVPN Inc and the
    contributors give permission to link the code of this program to
    libraries (the "Libraries") licensed under the Apache License
    version 2.0 (this work and any linked library the "Combined Work")
    and copy and distribute the Combined Work without an obligation to
    license the Libraries under the GNU General Public License v2
    (GPL-2.0) as required by Section 2 of the GPL-2.0, and without an
    obligation to refrain from imposing any additional restrictions in
    the Apache License version 2 that are not in the GPL-2.0, as
    required by Section 6 of the GPL-2.0.  You must comply with the
    GPL-2.0 in all other respects for the Combined Work, including
    the obligation to provide source code.  If you modify this file, you
    may extend this exception to your version of the file, but you are
    not obligated to do so.  If you do not wish to do so, delete this
    exception statement from your version.

This exception is the verbatim copy from Pamela Chestek, and the content
in this copy above has been reviewed by her.  There is some legalese
phrases there (in particular related to "Combined work") which may seem odd, but this is common practice in legal definitions.

In plain non-legalese English this basically says:

 * The intention for this license exception is to allow OpenVPN to be
   linked against APL-2 licensed libraries, even where the GPL-2.0 and
   APL-2 licenses conflict from a legal perspective.

 * OpenVPN itself will stay GPL-2.0 and the code belonging to the
   OpenVPN project must comply to the GPL-2.0 license.  This is NOT
   dual-licensing of the OpenVPN code base.

 * This license exception DOES NOT require NOR expect a license change
   of the APL-2 based library.  This exception allows using the APL-2
   library as-is.  However, when distributing a compiled OpenVPN binary
   linking against APL-2 libraries ("Combined Work"), the REQUIREMENT is
   that the APL-2 library MUST also be available on similar terms as in
   GPL-2.0, like providing the source code of the library upon request,
   except in the two specific ways mentioned.

 * If the APL-2 based library forbids such linking and distribution,
   this license exception DOES NOT overrule the restriction of the APL-2
   based library.  If the APL-2 library cannot satisfy the requirements
   in this license exception, you CANNOT distribute an OpenVPN binary
   linked with this library.


I hope we can reach an agreement and replace the current OpenSSL linking exception with this new exception above.


--
kind regards,

David Sommerseth
OpenVPN Inc



_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to