[Openvpn-devel,v3] Add Apache2 linking with for new commits

Message ID 20230426094931.1168078-1-arne@rfc2549.org
State Accepted
Headers show
Series [Openvpn-devel,v3] Add Apache2 linking with for new commits | expand

Commit Message

Arne Schwabe April 26, 2023, 9:49 a.m. UTC
After first round of mailing people with more than 10 commits we have
almost all committers have agreed. This put this license in the realm
of having a realistic change to work. Had any of these contributers
disagreed, rewriting all their code might have been not feasible.

The rationale of adding this exception now is to avoid having to
have a second round of agreement for new contributers and ensure
that all new code will include the exemption.

patch v2: add explaination and use exception rather than excemption
patch v3: actually send v3

Change-Id: Ide83f914f383b53ef37ddf628e4da5a78e241bf0
Signed-off-by: Arne Schwabe <arne@rfc2549.org>
---
 COPYING | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

Comments

David Sommerseth May 3, 2023, 11:23 a.m. UTC | #1
On 26/04/2023 11:49, Arne Schwabe wrote:
> After first round of mailing people with more than 10 commits we have
> almost all committers have agreed. This put this license in the realm
> of having a realistic change to work. Had any of these contributers
> disagreed, rewriting all their code might have been not feasible.
> 
> The rationale of adding this exception now is to avoid having to
> have a second round of agreement for new contributers and ensure
> that all new code will include the exemption.
> 
> patch v2: add explaination and use exception rather than excemption
> patch v3: actually send v3
> 
> Change-Id: Ide83f914f383b53ef37ddf628e4da5a78e241bf0
> Signed-off-by: Arne Schwabe <arne@rfc2549.org>

LGTM and is (almost) the same text as the proposal [1] sent February 15, 
2023.  A little extra character has been added, which can be removed at 
commit time.  See comment below in the diff.

[1] Message-Id: <9160f6a3-1a61-d112-7a48-a7da4af38644@eurephia.org>
 
<https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26269.html>

Acked-By: David Sommerseth <davids@openvpn.net>


> ---
>   COPYING | 47 +++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 47 insertions(+)
> 
> diff --git a/COPYING b/COPYING
> index e12c51414..a6f8a6f5f 100644
> --- a/COPYING
> +++ b/COPYING
> @@ -31,6 +31,53 @@ OpenVPN license:
>     file, but you are not obligated to do so.  If you do not wish to
>     do so, delete this exception statement from your version.
>   
> +Apache2 linking exception:
> +---------------------------
> +OpenVPN is currently undergoing a license change to add an exception for
> +Apache 2 linking. The following exception is only valid for new contributions
> +after COMMITDATE and past contribution where the authors have already agreed
> +to the exception.
> +
> +  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`

The line above ends with an additional `


-- 
kind regards,

David Sommerseth
OpenVPN Inc
Gert Doering May 3, 2023, 4:14 p.m. UTC | #2
Your patch has been applied to the master, release/2.6, release/2.5, 
and release/2.4 branch, as discussed in the community meeting today.

Given that this is "for new commits", it could be applied to 2.1-2.3
as well, but since nothing happens in these branches anymore (last
commit in 2017), we saw no need.

COMMITDATE has been replaced by "2023-05-03" and the stray quote char
was removed.

commit 7b21c69dbe1e1ecfb5bed564417387892b42108a (master)
commit f3147134277560e0f8cfe0137dc142b195e13eb7 (release/2.6)
commit 4a89a55b8a9d6193957711bef74228796a185179 (release/2.5)
commit 3381ae4bf36ab06f7918673189a941ad33ab3b7a (release/2.4)
Author: Arne Schwabe
Date:   Wed Apr 26 11:49:31 2023 +0200

     Add Apache2 linking with for new commits

     Signed-off-by: Arne Schwabe <arne@rfc2549.org>
     Acked-by: David Sommerseth <davids@openvpn.net>
     Message-Id: <20230426094931.1168078-1-arne@rfc2549.org>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26610.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering
Jeremie Courreges-Anglas May 15, 2023, 5:26 p.m. UTC | #3
On Wed, Apr 26 2023, Arne Schwabe <arne@rfc2549.org> wrote:
> After first round of mailing people with more than 10 commits we have
> almost all committers have agreed. This put this license in the realm
> of having a realistic change to work. Had any of these contributers
> disagreed, rewriting all their code might have been not feasible.
>
> The rationale of adding this exception now is to avoid having to
> have a second round of agreement for new contributers and ensure
> that all new code will include the exemption.

The proposal here (already committed) merely adds an exception for
linking with Apache 2 libraries.  As discussed privately with Arne, the
proposal that I have received was to *replace* the OpenSSL linking
exception with the Apache 2 linking exception.  The rationale being that
OpenSSL 3 has moved to Apache 2, and that OpenVPN plans to drop support
for OpenSSL 1.X at some point.

The LibreSSL project has not moved to Apache 2 and doesn't plan to do
so.  OpenVPN currently builds and runs fine using LibreSSL, without any
patch.  I don't know about the state of OpenSSL 3 APIs in LibreSSL, but
I suggest not to tie together licensing matters and technical matters.

I think the existing OpenSSL linking exception should be kept as is.
For the (admittedly few and uncomplicated) changes I have contributed to
the OpenVPN code base, I would agree with a licensing change that
doesn't remove this exception.

For convenience, here's the current OpenSSL linking exception:
--8<--
  Special exception for linking OpenVPN with OpenSSL:

  In addition, as a special exception, OpenVPN Inc gives
  permission to link the code of this program with the OpenSSL
  library (or with modified versions of OpenSSL that use the same
  license as OpenSSL), and distribute linked combinations including
  the two.  You must obey the GNU General Public License in all
  respects for all of the code used other than OpenSSL.  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.
-->8--

Regards,
Arne Schwabe May 16, 2023, 11:47 a.m. UTC | #4
Am 15.05.23 um 19:26 schrieb Jeremie Courreges-Anglas:
> On Wed, Apr 26 2023, Arne Schwabe <arne@rfc2549.org> wrote:
>> After first round of mailing people with more than 10 commits we have
>> almost all committers have agreed. This put this license in the realm
>> of having a realistic change to work. Had any of these contributers
>> disagreed, rewriting all their code might have been not feasible.
>>
>> The rationale of adding this exception now is to avoid having to
>> have a second round of agreement for new contributers and ensure
>> that all new code will include the exemption.
> 
> The proposal here (already committed) merely adds an exception for
> linking with Apache 2 libraries.  As discussed privately with Arne, the
> proposal that I have received was to *replace* the OpenSSL linking
> exception with the Apache 2 linking exception.  The rationale being that
> OpenSSL 3 has moved to Apache 2, and that OpenVPN plans to drop support
> for OpenSSL 1.X at some point.
> 
> The LibreSSL project has not moved to Apache 2 and doesn't plan to do
> so.  OpenVPN currently builds and runs fine using LibreSSL, without any
> patch.  I don't know about the state of OpenSSL 3 APIs in LibreSSL, but
> I suggest not to tie together licensing matters and technical matters.
> 
> I think the existing OpenSSL linking exception should be kept as is.
> For the (admittedly few and uncomplicated) changes I have contributed to
> the OpenVPN code base, I would agree with a licensing change that
> doesn't remove this exception.

The reason we worded it to replace the original exception is that after 
we drop OpenSSL 1.0.2 and 1.1.1 support there would be no perceived 
reason to keep the original exception as OpenSSL will not back to that 
license and no other library will pick up that weird license. As long as 
we support OpenSSL 1.0.2 and 1.1.1 we have to keep that license 
exception anyway (which will be probably at least a few years to support 
RHEL8 (EOL 2029)). When we wrote those mails we did not consider LibreSSL.

Until this time, we intent to keep both exceptions anyway. Both 
exceptions are written in a way that they can be dropped at any time by 
any fork.

Arne

Patch

diff --git a/COPYING b/COPYING
index e12c51414..a6f8a6f5f 100644
--- a/COPYING
+++ b/COPYING
@@ -31,6 +31,53 @@  OpenVPN license:
   file, but you are not obligated to do so.  If you do not wish to
   do so, delete this exception statement from your version.
 
+Apache2 linking exception:
+---------------------------
+OpenVPN is currently undergoing a license change to add an exception for
+Apache 2 linking. The following exception is only valid for new contributions
+after COMMITDATE and past contribution where the authors have already agreed
+to the exception.
+
+  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.
+
+For better understanding, 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.
+
 LZO license:
 ------------