summaryrefslogtreecommitdiff
path: root/net-vpn
diff options
context:
space:
mode:
Diffstat (limited to 'net-vpn')
-rw-r--r--net-vpn/Manifest.gzbin7059 -> 7058 bytes
-rw-r--r--net-vpn/networkmanager-fortisslvpn/Manifest6
-rw-r--r--net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch284
-rw-r--r--net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch29
-rw-r--r--net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch191
-rw-r--r--net-vpn/networkmanager-fortisslvpn/metadata.xml3
-rw-r--r--net-vpn/networkmanager-fortisslvpn/networkmanager-fortisslvpn-1.4.0-r2.ebuild59
-rw-r--r--net-vpn/networkmanager-l2tp/Manifest6
-rw-r--r--net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-bashism-configure.patch35
-rw-r--r--net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-1.patch161
-rw-r--r--net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-2.patch170
-rw-r--r--net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8-r3.ebuild80
-rw-r--r--net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8.ebuild2
-rw-r--r--net-vpn/networkmanager-sstp/Manifest3
-rw-r--r--net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.1-r1.ebuild88
15 files changed, 1114 insertions, 3 deletions
diff --git a/net-vpn/Manifest.gz b/net-vpn/Manifest.gz
index 743864850f49..73257684417d 100644
--- a/net-vpn/Manifest.gz
+++ b/net-vpn/Manifest.gz
Binary files differ
diff --git a/net-vpn/networkmanager-fortisslvpn/Manifest b/net-vpn/networkmanager-fortisslvpn/Manifest
index eef71a306ecd..a05277003e9a 100644
--- a/net-vpn/networkmanager-fortisslvpn/Manifest
+++ b/net-vpn/networkmanager-fortisslvpn/Manifest
@@ -1,5 +1,9 @@
+AUX networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch 8202 BLAKE2B 7d1468e7aa6afaba82e0c7b961fe8e60e9bbf831749f6b14125fc5efd7c88c6cd468080a1dd0fbd304717cfa6e17fac9ebb4a50ca98b6d5f65c87161d356214d SHA512 78a49ea9330fefdd85558820e8424ddb24cbf6d2f8052d46db31b06af140a7886ec998cdf4a76c1c7e0dfd9b79b2c5934a0696536b2ec91b3893cb425fb8f45a
+AUX networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch 865 BLAKE2B 1fc9035e3fba62b1db8af99bcef8dbe5ad722e2c816290e168dce37e7f826b7fb44a2ea70df04a492583640654f8de5af7fce33fe4b6174e427832ac215e25f7 SHA512 b497e0c83fba95a153c80a9655422d76cd5985e413b509166047edf482f5129385f30dbb167c07fc1658c11bee601f46fe44b7d9083b531f9e7ac124cd80af10
+AUX networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch 5362 BLAKE2B 486c6ab5ba11135a410e05abd55b8b6699fcbce24c7eafea596e9f01a8a353e7fb833062c8971be230fb01eb8c67ed9b9d4ba5195371f16356ed4a3fd8e5a1a0 SHA512 fbbabce7973e8129f51a2ee0ed152f458c0fd73eea361ef205e9cc6fd3164527f43f7ed2fcbc9d0a32d1c3fba5c06cc2a415276d34e68a220189854393ea93eb
DIST NetworkManager-fortisslvpn-1.3.90.tar.xz 375416 BLAKE2B d2e07a2f79685cb600b6c0abca52a54911ff41534c152e9c5befe25d436757ba517d84cc474ff5c200ae62ca019296871fc29dc8342788295b3e59be55fa8198 SHA512 98b3e524cbb33c8dcdb325b10d227f88534948d98ca8009f770e48b87d42637762ba5343f081ac583b77c3387cb47f2660be0f60430ede237f812a2af8d9a7aa
DIST NetworkManager-fortisslvpn-1.4.0.tar.xz 381964 BLAKE2B 11cbcd0077a6636feaf04fc191bb78b269f1fcb13ae5ebc3f2d1fe239570e9955406b5f2ff76f6ea0f297e3425e6dac816a0a79f2c2a0723bae51e9fe42fa34d SHA512 94e96f204262825f3d525c96b5f135b31d9a3bb382bd2baf3fafdceb08768321331d4bd4f6af8879a8818e3bad854cdf057c9915e0ac9aee09d17e83b9d12d54
EBUILD networkmanager-fortisslvpn-1.3.90.ebuild 1071 BLAKE2B b4ba9a550c464b4b9f2e9e6468415b26645a002c2106346a48f2f6122a32bf44707956abfe0c8415ee3573325dfbb2b4a746a3d6c93b321da16ac9ac4a800e20 SHA512 ae8f948778c018a5ecda4e973935c3cba416a3596df01d9ebe59261e095115ccb78a7497c89b541a12ed9cc454a315e837da3cdd350a7d6af08f69e72942b916
+EBUILD networkmanager-fortisslvpn-1.4.0-r2.ebuild 1189 BLAKE2B 28b48ae8f25e86199c41bcd012de3d1d6ed77259be496cd1223fac05f05da57a4e8e1331a57d41dbd61d17d3a5c8891e87a92535f08607872021d8e093b54545 SHA512 d641c49a693c46f5b065590c0fd1c89e7d04cb2c72a7bf032e11a44a80a0ad02452c7324bb782653243ae9ffad6fc4bd709ccfad018243aa313bdd610b1c8bd6
EBUILD networkmanager-fortisslvpn-1.4.0.ebuild 1122 BLAKE2B 1af8b38f7e4c6244ad8419529558147a769f32dd4223f832a2f4b9cddec738e0078982d2c54ae80477d86fa18f719d7d6495bbe74c45f9a72e3cc4d9e1f07436 SHA512 23c6b224cf9b67a4189314e4a3bb31545c5f0df83af9e3ac9f2ef44c671a5005a0b7121abfc38bf23ccfdfffc23e7c0a24454dff64cf64a21ce3e2e2d660d0b8
-MISC metadata.xml 411 BLAKE2B 2a68544a08639f4ee73732a7c1663614694c6aeabd6fb93e9a25f94b4667cfa3470bea7e40f3da181d985775362e7122dcc64f96b3ee96879b2137c3722f105c SHA512 e490c46a95e3ad932a325519831cdc74a356137a014d02f8e602821955ec81a0e523022a80d9e1f1412dcaa9b1ef17a8e2a0ec608e67c0ee58aa02f9165fa40c
+MISC metadata.xml 518 BLAKE2B ddeb630701cdb97695694b7f696481050bf67f59e9440c80b447e6ffe3a439011abdebeeff1ac47aa8c29ec95526772ac99b6be484e59ab2950414a7007171c1 SHA512 24738222e6aa68582b218274615ad1a4bcc235a98eba3ee95fa1beae259fe63ac34e4d4a1a08861e2835d34da9249bc2612f8c658ea12f152517e00e76d2663f
diff --git a/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch
new file mode 100644
index 000000000000..71da31e3e435
--- /dev/null
+++ b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch
@@ -0,0 +1,284 @@
+https://bugs.gentoo.org/904842
+https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/-/commit/084ef529c5fb816927ca54866f66b340265aa9f6
+
+From 084ef529c5fb816927ca54866f66b340265aa9f6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com>
+Date: Sat, 4 Mar 2023 21:20:43 +0000
+Subject: [PATCH] Adding support for compiling against pppd-2.5.0 (or master
+ branch)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -81,7 +81,7 @@ libexec_PROGRAMS += src/nm-fortisslvpn-service
+ src_nm_fortisslvpn_service_SOURCES = \
+ shared/nm-utils/nm-shared-utils.c \
+ shared/nm-utils/nm-shared-utils.h \
+- src/nm-ppp-status.h \
++ src/nm-fortisslvpn-pppd-status.h \
+ src/nm-fortisslvpn-service.h \
+ src/nm-fortisslvpn-service.c \
+ shared/nm-fortissl-properties.c \
+@@ -106,7 +106,8 @@ src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \
+ shared/nm-utils/nm-shared-utils.c \
+ shared/nm-utils/nm-shared-utils.h \
+ src/nm-fortisslvpn-pppd-plugin.c \
+- src/nm-ppp-status.h
++ src/nm-fortisslvpn-pppd-compat.h \
++ src/nm-fortisslvpn-pppd-status.h
+ nodist_src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \
+ src/nm-fortisslvpn-pppd-service-dbus.h
+ src_nm_fortisslvpn_pppd_plugin_la_CPPFLAGS = $(src_cppflags)
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,7 +19,10 @@ AC_PROG_CC
+ AM_PROG_CC_C_O
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
++AC_PROG_CPP
++AC_PROG_EGREP
+ AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
++PKG_PROG_PKG_CONFIG()
+
+ AC_GNU_SOURCE
+
+@@ -37,20 +40,50 @@ dnl
+ dnl Required headers
+ dnl
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h)
++AC_CHECK_HEADERS(fcntl.h paths.h stdarg.h stdbool.h sys/ioctl.h sys/time.h syslog.h unistd.h)
+
+ AC_CHECK_HEADERS(pppd/pppd.h,,
+ AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.))
+
++dnl
++dnl Check the presense of other pppd/*.h files
++AC_CHECK_HEADERS([
++ pppd/chap.h
++ pppd/chap-new.h
++ pppd/chap_ms.h
++ ])
++
++dnl
++dnl Versions >= 2.5.0 will have pkg-config support
++PKG_CHECK_EXISTS([pppd],
++ [AS_VAR_SET([pppd_pkgconfig_support],[yes])])
++
++dnl
++dnl Get the version of pppd using pkg-config, assume 2.4.9 if not present
++PPPD_VERSION=2.4.5
++if test x"$pppd_pkgconfig_support" = xyes; then
++ PPPD_VERSION=`$PKG_CONFIG --modversion pppd`
++fi
++
++
+ AC_ARG_WITH([pppd-plugin-dir], AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory]))
+
+ if test -n "$with_pppd_plugin_dir" ; then
+ PPPD_PLUGIN_DIR="$with_pppd_plugin_dir"
+ else
+- PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5"
++ PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION"
+ fi
+ AC_SUBST(PPPD_PLUGIN_DIR)
+
++dnl The version of pppd dictates what code can be included, i.e. enable use of
++dnl #if WITH_PPP_VERSION >= PPP_VERSION(2,5,0) in the code
++AC_DEFINE_UNQUOTED([PPP_VERSION(x,y,z)],
++ [((x & 0xFF) << 16 | (y & 0xFF) << 8 | (z & 0xFF) << 0)],
++ [Macro to help determine the particular version of pppd])
++PPP_VERSION=$(echo $PPPD_VERSION | sed -e "s/\./\,/g")
++AC_DEFINE_UNQUOTED(WITH_PPP_VERSION, PPP_VERSION($PPP_VERSION),
++ [The real version of pppd represented as an int])
++
+ dnl
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ dnl
+--- /dev/null
++++ b/src/nm-fortisslvpn-pppd-compat.h
+@@ -0,0 +1,93 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* nm-sstp-service - sstp (and other pppd) integration with NetworkManager
++ *
++ * Copyright (C) Eivind Næss, eivnaes@yahoo.com
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#ifndef __NM_FORTISSLVPN_PPPD_COMPAT_H__
++#define __NM_FORTISSLVPN_PPPD_COMPAT_H__
++
++#define INET6 1
++
++// PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
++// this silly macro magic is to work around that.
++
++#undef VERSION
++#include <pppd/pppd.h>
++
++#ifndef PPPD_VERSION
++#define PPPD_VERSION VERSION
++#endif
++
++#include <pppd/fsm.h>
++#include <pppd/ccp.h>
++#include <pppd/eui64.h>
++#include <pppd/ipcp.h>
++#include <pppd/ipv6cp.h>
++#include <pppd/eap.h>
++#include <pppd/upap.h>
++
++#ifdef HAVE_PPPD_CHAP_H
++ #include <pppd/chap.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_NEW_H
++ #include <pppd/chap-new.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_MS_H
++ #include <pppd/chap_ms.h>
++#endif
++
++#ifndef PPP_PROTO_CHAP
++#define PPP_PROTO_CHAP 0xc223
++#endif
++
++#ifndef PPP_PROTO_EAP
++#define PPP_PROTO_EAP 0xc227
++#endif
++
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++
++static inline bool debug_on(void)
++{
++ return debug;
++}
++
++static inline const char *ppp_ipparam(void)
++{
++ return ipparam;
++}
++
++static inline int ppp_ifunit(void)
++{
++ return ifunit;
++}
++
++static inline const char *ppp_ifname(void)
++{
++ return ifname;
++}
++
++static inline int ppp_get_mtu(int idx)
++{
++ return netif_get_mtu(idx);
++}
++
++#endif // #if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++#endif // #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__
+--- a/src/nm-fortisslvpn-pppd-plugin.c
++++ b/src/nm-fortisslvpn-pppd-plugin.c
+@@ -23,12 +23,6 @@
+ #define ___CONFIG_H__
+ #include <config.h>
+
+-#include <pppd/pppd.h>
+-#include <pppd/fsm.h>
+-#include <pppd/ipcp.h>
+-
+-#include "nm-default.h"
+-
+ #include <sys/types.h>
+ #include <string.h>
+ #include <sys/socket.h>
+@@ -42,10 +36,12 @@
+ #include <grp.h>
+ #include <glib/gstdio.h>
+
++#include "nm-fortisslvpn-pppd-status.h"
++#include "nm-fortisslvpn-pppd-compat.h"
+ #include "nm-fortisslvpn-pppd-service-dbus.h"
+-#include "nm-fortisslvpn-service.h"
+-#include "nm-ppp-status.h"
+
++#include "nm-default.h"
++#include "nm-fortisslvpn-service.h"
+ #include "nm-utils/nm-shared-utils.h"
+ #include "nm-utils/nm-vpn-plugin-macros.h"
+
+@@ -80,7 +76,7 @@ static struct {
+
+ int plugin_init (void);
+
+-char pppd_version[] = VERSION;
++char pppd_version[] = PPPD_VERSION;
+
+ static void
+ chroot_sandbox (void)
+@@ -296,7 +292,7 @@ get_ip4_routes (in_addr_t ouraddr)
+ static void
+ nm_ip_up (void *data, int arg)
+ {
+- guint32 pppd_made_up_address = htonl (0x0a404040 + ifunit);
++ guint32 pppd_made_up_address = htonl (0x0a404040 + ppp_ifunit());
+ ipcp_options opts = ipcp_gotoptions[0];
+ ipcp_options peer_opts = ipcp_hisoptions[0];
+ GVariantBuilder builder;
+@@ -317,7 +313,7 @@ nm_ip_up (void *data, int arg)
+
+ g_variant_builder_add (&builder, "{sv}",
+ NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV,
+- g_variant_new_string (ifname));
++ g_variant_new_string (ppp_ifname()));
+
+ str = g_getenv ("VPN_GATEWAY");
+ if (str) {
+@@ -442,8 +438,14 @@ plugin_init (void)
+ return -1;
+ }
+
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
+ add_notifier (&phasechange, nm_phasechange, NULL);
+ add_notifier (&ip_up_notifier, nm_ip_up, NULL);
+ add_notifier (&exitnotify, nm_exit_notify, NULL);
++#else
++ ppp_add_notify (NF_PHASE_CHANGE, nm_phasechange, NULL);
++ ppp_add_notify (NF_IP_UP, nm_ip_up, NULL);
++ ppp_add_notify (NF_EXIT, nm_exit_notify, NULL);
++#endif
+ return 0;
+ }
+similarity index 100%
+rename from src/nm-ppp-status.h
+rename to src/nm-fortisslvpn-pppd-status.h
+--- a/src/nm-fortisslvpn-service.c
++++ b/src/nm-fortisslvpn-service.c
+@@ -40,7 +40,7 @@
+ #include <glib/gstdio.h>
+
+ #include "nm-fortissl-properties.h"
+-#include "nm-ppp-status.h"
++#include "nm-fortisslvpn-pppd-status.h"
+ #include "nm-fortisslvpn-pppd-service-dbus.h"
+ #include "nm-utils/nm-shared-utils.h"
+ #include "nm-utils/nm-vpn-plugin-macros.h"
+--
+GitLab
diff --git a/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch
new file mode 100644
index 000000000000..a0b14d390e9f
--- /dev/null
+++ b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch
@@ -0,0 +1,29 @@
+https://bugs.gentoo.org/904842
+https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/-/commit/8773f772d39f8eee6edc1fd2e5437c754ed41e1e
+
+From 8773f772d39f8eee6edc1fd2e5437c754ed41e1e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com>
+Date: Sat, 4 Mar 2023 21:29:54 +0000
+Subject: [PATCH] Fixing configure.ac from previous change
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
+--- a/configure.ac
++++ b/configure.ac
+@@ -47,11 +47,7 @@ AC_CHECK_HEADERS(pppd/pppd.h,,
+
+ dnl
+ dnl Check the presense of other pppd/*.h files
+-AC_CHECK_HEADERS([
+- pppd/chap.h
+- pppd/chap-new.h
+- pppd/chap_ms.h
+- ])
++AC_CHECK_HEADERS(pppd/chap.h pppd/chap-new.h pppd/chap_ms.h)
+
+ dnl
+ dnl Versions >= 2.5.0 will have pkg-config support
+--
+GitLab
diff --git a/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch
new file mode 100644
index 000000000000..30092c021bd3
--- /dev/null
+++ b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch
@@ -0,0 +1,191 @@
+https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/-/merge_requests/27
+https://bugs.gentoo.org/904842
+
+From d59819b5d26db44f51bfbb76be3b373c419e408d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com>
+Date: Wed, 8 Mar 2023 04:30:13 +0000
+Subject: [PATCH] Improve compatibility with pppd-2.5.0 release
+
+This allows compiling against the older pppd 2.4 series while still
+using the new API in the plugin code. It does so by adding a static
+inline function ppp_add_notify().
+
+Additional formatting changes to the nm-fortisslvpn-pppd-compat.h based
+on review from Lubomir.
+--- a/src/nm-fortisslvpn-pppd-compat.h
++++ b/src/nm-fortisslvpn-pppd-compat.h
+@@ -1,32 +1,15 @@
+-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+-/* nm-sstp-service - sstp (and other pppd) integration with NetworkManager
+- *
+- * Copyright (C) Eivind Næss, eivnaes@yahoo.com
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License along
+- * with this program; if not, write to the Free Software Foundation, Inc.,
+- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- */
++/* Copyright (C) 2023 Eivind Naess, eivnaes@yahoo.com */
++/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+ #ifndef __NM_FORTISSLVPN_PPPD_COMPAT_H__
+ #define __NM_FORTISSLVPN_PPPD_COMPAT_H__
+
+-#define INET6 1
+-
+-// PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
+-// this silly macro magic is to work around that.
++/* Define INET6 to compile with IPv6 support against older pppd headers,
++ * pppd >= 2.5.0 use WITH_PPP_IPV6 and is defined in pppdconf.h */
++#define INET6 1
+
++/* PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
++ * this silly macro magic is to work around that. */
+ #undef VERSION
+ #include <pppd/pppd.h>
+
+@@ -43,51 +26,98 @@
+ #include <pppd/upap.h>
+
+ #ifdef HAVE_PPPD_CHAP_H
+- #include <pppd/chap.h>
++#include <pppd/chap.h>
+ #endif
+
+ #ifdef HAVE_PPPD_CHAP_NEW_H
+- #include <pppd/chap-new.h>
++#include <pppd/chap-new.h>
+ #endif
+
+ #ifdef HAVE_PPPD_CHAP_MS_H
+- #include <pppd/chap_ms.h>
++#include <pppd/chap_ms.h>
+ #endif
+
+ #ifndef PPP_PROTO_CHAP
+-#define PPP_PROTO_CHAP 0xc223
++#define PPP_PROTO_CHAP 0xc223
+ #endif
+
+ #ifndef PPP_PROTO_EAP
+-#define PPP_PROTO_EAP 0xc227
++#define PPP_PROTO_EAP 0xc227
+ #endif
+
++
+ #if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
+
+-static inline bool debug_on(void)
++static inline bool
++debug_on (void)
++{
++ return debug;
++}
++
++static inline const char
++*ppp_ipparam (void)
+ {
+- return debug;
++ return ipparam;
+ }
+
+-static inline const char *ppp_ipparam(void)
++static inline int
++ppp_ifunit (void)
+ {
+- return ipparam;
++ return ifunit;
+ }
+
+-static inline int ppp_ifunit(void)
++static inline const char *
++ppp_ifname (void)
+ {
+- return ifunit;
++ return ifname;
+ }
+
+-static inline const char *ppp_ifname(void)
++static inline int
++ppp_get_mtu (int idx)
+ {
+- return ifname;
++ return netif_get_mtu(idx);
+ }
+
+-static inline int ppp_get_mtu(int idx)
++typedef enum ppp_notify
++{
++ NF_PID_CHANGE,
++ NF_PHASE_CHANGE,
++ NF_EXIT,
++ NF_SIGNALED,
++ NF_IP_UP,
++ NF_IP_DOWN,
++ NF_IPV6_UP,
++ NF_IPV6_DOWN,
++ NF_AUTH_UP,
++ NF_LINK_DOWN,
++ NF_FORK,
++ NF_MAX_NOTIFY
++} ppp_notify_t;
++
++typedef void (ppp_notify_fn) (void *ctx, int arg);
++
++static inline void
++ppp_add_notify (ppp_notify_t type, ppp_notify_fn *func, void *ctx)
+ {
+- return netif_get_mtu(idx);
++ struct notifier **list[NF_MAX_NOTIFY] = {
++ [NF_PID_CHANGE ] = &pidchange,
++ [NF_PHASE_CHANGE] = &phasechange,
++ [NF_EXIT ] = &exitnotify,
++ [NF_SIGNALED ] = &sigreceived,
++ [NF_IP_UP ] = &ip_up_notifier,
++ [NF_IP_DOWN ] = &ip_down_notifier,
++ [NF_IPV6_UP ] = &ipv6_up_notifier,
++ [NF_IPV6_DOWN ] = &ipv6_down_notifier,
++ [NF_AUTH_UP ] = &auth_up_notifier,
++ [NF_LINK_DOWN ] = &link_down_notifier,
++ [NF_FORK ] = &fork_notifier,
++ };
++
++ struct notifier **notify = list[type];
++ if (notify) {
++ add_notifier(notify, func, ctx);
++ }
+ }
+
+-#endif // #if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
+-#endif // #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__
++#endif /* #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) */
++#endif /* #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__ */
+--- a/src/nm-fortisslvpn-pppd-plugin.c
++++ b/src/nm-fortisslvpn-pppd-plugin.c
+@@ -438,14 +438,8 @@ plugin_init (void)
+ return -1;
+ }
+
+-#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
+- add_notifier (&phasechange, nm_phasechange, NULL);
+- add_notifier (&ip_up_notifier, nm_ip_up, NULL);
+- add_notifier (&exitnotify, nm_exit_notify, NULL);
+-#else
+ ppp_add_notify (NF_PHASE_CHANGE, nm_phasechange, NULL);
+ ppp_add_notify (NF_IP_UP, nm_ip_up, NULL);
+ ppp_add_notify (NF_EXIT, nm_exit_notify, NULL);
+-#endif
+ return 0;
+ }
+--
+GitLab
diff --git a/net-vpn/networkmanager-fortisslvpn/metadata.xml b/net-vpn/networkmanager-fortisslvpn/metadata.xml
index 69d7525227bc..950b680bd95b 100644
--- a/net-vpn/networkmanager-fortisslvpn/metadata.xml
+++ b/net-vpn/networkmanager-fortisslvpn/metadata.xml
@@ -9,4 +9,7 @@
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
+ <upstream>
+ <remote-id type="gnome-gitlab">GNOME/NetworkManager-fortisslvpn</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/net-vpn/networkmanager-fortisslvpn/networkmanager-fortisslvpn-1.4.0-r2.ebuild b/net-vpn/networkmanager-fortisslvpn/networkmanager-fortisslvpn-1.4.0-r2.ebuild
new file mode 100644
index 000000000000..b04017413c2d
--- /dev/null
+++ b/net-vpn/networkmanager-fortisslvpn/networkmanager-fortisslvpn-1.4.0-r2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+GNOME2_LA_PUNT="yes"
+GNOME2_EAUTORECONF="yes"
+
+inherit gnome2
+
+DESCRIPTION="NetworkManager Fortinet SSLVPN compatible plugin"
+HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="gtk"
+
+DEPEND="
+ >=dev-libs/glib-2.32:2
+ >=net-misc/networkmanager-1.2:=
+ gtk? (
+ >=app-crypt/libsecret-0.18
+ gui-libs/gtk:4
+ media-libs/harfbuzz
+ >=net-libs/libnma-1.2.0
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/pango
+ )
+"
+RDEPEND="${RDEPEND}
+ net-dialup/ppp:=
+ >=net-vpn/openfortivpn-1.2.0"
+BDEPEND="dev-util/gdbus-codegen
+ >=sys-devel/gettext-0.19
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.4.0-ppp-2.5.0-{1,2,3}.patch
+)
+
+src_prepare() {
+ default
+
+ # Fix deprecated location, #709450
+ sed -i 's|/appdata|/metainfo|g' Makefile.{in,am} || die
+}
+
+src_configure() {
+ CONFIG_SHELL="${BROOT}"/bin/bash gnome2_src_configure \
+ --disable-static \
+ --with-dist-version=Gentoo \
+ --localstatedir=/var \
+ $(use_with gtk gnome) \
+ $(use_with gtk gtk4) \
+ --without-libnm-glib
+}
diff --git a/net-vpn/networkmanager-l2tp/Manifest b/net-vpn/networkmanager-l2tp/Manifest
index 8d88bdb1cc8f..018cc439857e 100644
--- a/net-vpn/networkmanager-l2tp/Manifest
+++ b/net-vpn/networkmanager-l2tp/Manifest
@@ -1,3 +1,7 @@
+AUX networkmanager-l2tp-1.20.8-bashism-configure.patch 1232 BLAKE2B 49b51a8dccedd5c8e3bfb226f8f0c48cff3e5b4ed0a0e2725eb61ad9ae452e1545546c58d7ab601fdbb4359aaa2470aba45ce78c8584d47c62d99c5e2a5a5b92 SHA512 f92643f64a7299bda2c7923d1e25c449f5075976b333facd024fed44782ba87ab71351dc7cadf84e8dd31d5d68a5d01585f870e42ab213f5c281e7820c394730
+AUX networkmanager-l2tp-1.20.8-ppp-2.5.0-1.patch 4872 BLAKE2B 36fe5df3abd8413363fa859193d5d590f3d225ae809cfafe4a5bfa444c3cc9d0fce5750eae5469b086c831cffb08244778ca6b3bba8c4e5a7dfb8b419ec9ddf5 SHA512 871234b17ae3a44f7b10f833988118740c9fb23de5b2cfbe90ff3a7fda1ad8d71f5268ac8c873e7c48cff097f9afade91dc0a1cd6abe2b93eec2d5a531d84f5d
+AUX networkmanager-l2tp-1.20.8-ppp-2.5.0-2.patch 4591 BLAKE2B a568afc4e1c970ccbf253c3e1b140a2cf388c7ad49b057a5fcaa4cf43f160083aeb3faf54550cbcb0494d199702bd045b9445c579a68bd9de19b129e57225f35 SHA512 d67f608c2e40bcc39066ea28a685e04e1d53a97c8e1a47ae77c947a3df5712214f34b2994c4becef136923dab02c764345e3f9246a99f889f26ef590c74044b4
DIST NetworkManager-l2tp-1.20.8.tar.xz 487316 BLAKE2B 97a0b13a56babee47c2fd57b4bb655b79b96206eb3a51dacef642812fdf9059483fb7176f2be6ba86fc286cb6d1efdbada2c3dc8564e89598670781786e76011 SHA512 6ed2ab401821878bf775a27d43e540acce0ea6504a1a4bac436164776ef9e0eacef7963f0362691ef4ad7304e30e2c3199ba4fb41e24918b83aab88b34f7bb6a
-EBUILD networkmanager-l2tp-1.20.8.ebuild 1454 BLAKE2B b77f093d35350492102d28af1c19bf62eabb4784b1eb5d0847c26d00fbb7de48cbe79873b81e93c37f0b0f1c493ff48bf85977c4a6e70b1330da7a6f940a2fc1 SHA512 055fc646525863ed33ce9d0c7a500430cf8a581966ff3b091d406172d35a7df98b0ad8104d0e2fe51a38a4495893164df1e16729c8481716bdaf68ed4abb7a7f
+EBUILD networkmanager-l2tp-1.20.8-r3.ebuild 1654 BLAKE2B a55b8c73ce7ce6d288115b3f5f204e6a9445ccc6e739634ffb55b0b60461ec2aefaf6d3a6b0af8fde961204ede1faa95b91a36ef80d633845c8dafd9ed0bf0b0 SHA512 e3344e1c3ee9d9849ca6c2ced1542897d337c8b90794628959deae650c754ede9cf58cf8d2d6cad7c081e6472b0a332836cdcf897d3ee2cc51cbff3d700fc551
+EBUILD networkmanager-l2tp-1.20.8.ebuild 1457 BLAKE2B 7e650be93b810d277587a85120fc4666417316187c85985a71554117ca8d61e908c7f6d016eb7d347287f35db4324f62b631a47c6cc5ef7b27ac5e0bfdb8e13c SHA512 684a0bd9aa7ecb66f848dc8ebf86e0bd7fab5bbbe7e84ef12929b415d9ea06b1b05ca748b3313302dae3d4bc352001626d32a53c856bcce6ee511a9e8e2cf68c
MISC metadata.xml 265 BLAKE2B 39644ede9957536ee9d058b398c84eb25da50a448547726479d94943e32a2d688421bf9eb591864ff027f2f47b28f6bc0443f63c9f6c5ccdd0e76d6caa433015 SHA512 a8820c1f5c2c61b51328871182b50294c52f508140cb306556c11cce5301c5b3ae98cd5ddb4355393fa821db2564c5889a74d41553ae5ace27a6242a9906c3da
diff --git a/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-bashism-configure.patch b/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-bashism-configure.patch
new file mode 100644
index 000000000000..d4a672815cd3
--- /dev/null
+++ b/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-bashism-configure.patch
@@ -0,0 +1,35 @@
+https://github.com/nm-l2tp/NetworkManager-l2tp/pull/208
+
+From bf46aec299c58321703f5431ebafcce561a98cef Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 23 Apr 2023 09:16:24 +0100
+Subject: [PATCH] configure.ac: fix bashisms in configure.ac
+
+configure scripts need to be runnable with a POSIX-compliant /bin/sh.
+
+On many (but not all!) systems, /bin/sh is provided by Bash, so errors
+like this aren't spotted. Notably Debian defaults to /bin/sh provided
+by dash which doesn't tolerate such bashisms as '=='.
+
+This retains compatibility with bash.
+--- a/configure.ac
++++ b/configure.ac
+@@ -197,7 +197,7 @@ fi
+ AM_CONDITIONAL(WITH_GNOME, test "$with_gnome" != no)
+
+ AC_ARG_WITH(gtk4, AS_HELP_STRING([--with-gtk4], [Build NetworkManager-l2tp with libnma-gtk4 support]), [], [with_gtk4_specified=no])
+-if test "$with_gtk4_specified" == no; then
++if test "$with_gtk4_specified" = no; then
+ with_gtk4=no
+ fi
+ if test "$with_gtk4" != yes; then
+@@ -256,7 +256,7 @@ NM_LD_GC
+
+ NM_PLUGIN_DIR="$libdir/NetworkManager"
+ AC_SUBST(NM_PLUGIN_DIR)
+-if test x"$enable_absolute_paths" == x"yes"; then
++if test x"$enable_absolute_paths" = x"yes"; then
+ NM_PLUGIN_DIR_NAME_FILE="$NM_PLUGIN_DIR/"
+ else
+ enable_absolute_paths=no
+
diff --git a/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-1.patch b/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-1.patch
new file mode 100644
index 000000000000..4ff829048c20
--- /dev/null
+++ b/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-1.patch
@@ -0,0 +1,161 @@
+https://bugs.gentoo.org/904843
+https://github.com/nm-l2tp/NetworkManager-l2tp/commit/e6860eb957208a932fb565dd7b5e79fe5a4df662
+
+From e6860eb957208a932fb565dd7b5e79fe5a4df662 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com>
+Date: Fri, 3 Mar 2023 05:22:13 +0000
+Subject: [PATCH] Adding support for compiling against pppd-2.5.0 (current
+ master)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
+--- a/configure.ac
++++ b/configure.ac
+@@ -33,7 +33,10 @@ dnl
+ AC_PROG_CC
+ AM_PROG_CC_C_O
+ AC_PROG_INSTALL
++AC_PROG_CPP
++AC_PROG_EGREP
+ AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
++PKG_PROG_PKG_CONFIG()
+
+ AC_CHECK_PROG([has_file], file, yes, no)
+ if test x$has_file = xno ; then
+@@ -49,24 +52,63 @@ dnl
+ dnl Required headers
+ dnl
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h)
++AC_CHECK_HEADERS([
++ fcntl.h
++ paths.h
++ stdarg.h
++ stdbool.h
++ sys/ioctl.h
++ sys/time.h
++ syslog.h
++ unistd.h
++ ])
+
+ AC_CHECK_HEADERS(pppd/pppd.h,,
+ AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.))
+
++dnl
++dnl Check the presense of other pppd/*.h files
++AC_CHECK_HEADERS([
++ pppd/chap.h
++ pppd/chap-new.h
++ pppd/chap_ms.h
++ ])
++
++dnl
++dnl Versions >= 2.5.0 will have pkg-config support
++PKG_CHECK_EXISTS([pppd],
++ [AS_VAR_SET([pppd_pkgconfig_support],[yes])])
++
++dnl
++dnl Get the version of pppd using pkg-config, assume 2.4.9 if not present
++PPPD_VERSION=2.4.9
++if test x"$pppd_pkgconfig_support" = xyes; then
++ PPPD_VERSION=`$PKG_CONFIG --modversion pppd`
++fi
++
+ AC_ARG_WITH([pppd-plugin-dir], AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory]))
+
+ if test -n "$with_pppd_plugin_dir" ; then
+ PPPD_PLUGIN_DIR="$with_pppd_plugin_dir"
+ else
+- PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.9"
++ PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION"
+ fi
+ AC_SUBST(PPPD_PLUGIN_DIR)
+
++dnl The version of pppd dictates what code can be included, i.e. enable use of
++dnl #if WITH_PPP_VERSION >= PPP_VERSION(2,5,0) in the code
++AC_DEFINE_UNQUOTED([PPP_VERSION(x,y,z)],
++ [((x & 0xFF) << 16 | (y & 0xFF) << 8 | (z & 0xFF) << 0)],
++ [Macro to help determine the particular version of pppd])
++PPP_VERSION=$(echo $PPPD_VERSION | sed -e "s/\./\,/g")
++AC_DEFINE_UNQUOTED(WITH_PPP_VERSION, PPP_VERSION($PPP_VERSION),
++ [The real version of pppd represented as an int])
++
+ AC_MSG_CHECKING(whether EAP-TLS patch has been applied to pppd)
+ AC_EGREP_CPP(eaptls_passwd_hook, [
+ #define USE_EAPTLS
+ #include <pppd/pppd.h>
++#include <pppd/eap.h>
+ ], [have_eap_tls=yes] , [have_eap_tls=no])
+
+ if test "x${have_eap_tls}" = "xno"; then
+--- a/src/nm-l2tp-pppd-plugin.c
++++ b/src/nm-l2tp-pppd-plugin.c
+@@ -9,11 +9,6 @@
+ #include <config.h>
+ #define ___CONFIG_H__
+
+-/* pppd headers *sigh* */
+-#include <pppd/pppd.h>
+-#include <pppd/fsm.h>
+-#include <pppd/ipcp.h>
+-
+ #include "nm-default.h"
+
+ #include <string.h>
+@@ -25,13 +20,14 @@
+
+ #include "nm-l2tp-service.h"
+ #include "nm-ppp-status.h"
++#include "nm-l2tp-pppd-compat.h"
+
+ #include "nm-utils/nm-shared-utils.h"
+ #include "nm-utils/nm-vpn-plugin-macros.h"
+
+ int plugin_init(void);
+
+-char pppd_version[] = VERSION;
++char pppd_version[] = PPPD_VERSION;
+
+ /*****************************************************************************/
+
+@@ -146,7 +142,7 @@ nm_phasechange(void *data, int arg)
+ static void
+ nm_ip_up(void *data, int arg)
+ {
+- guint32 pppd_made_up_address = htonl (0x0a404040 + ifunit);
++ guint32 pppd_made_up_address = htonl (0x0a404040 + ppp_ifunit());
+ ipcp_options opts = ipcp_gotoptions[0];
+ ipcp_options peer_opts = ipcp_hisoptions[0];
+ GVariantBuilder builder;
+@@ -166,7 +162,7 @@ nm_ip_up(void *data, int arg)
+ g_variant_builder_add(&builder,
+ "{sv}",
+ NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV,
+- g_variant_new_string(ifname));
++ g_variant_new_string(ppp_ifname()));
+
+ g_variant_builder_add(&builder,
+ "{sv}",
+@@ -343,12 +339,18 @@ plugin_init(void)
+ chap_check_hook = get_chap_check;
+ pap_passwd_hook = get_credentials;
+ pap_check_hook = get_pap_check;
+-#ifdef USE_EAPTLS
++#if defined(USE_EAPTLS) || defined(PPP_WITH_EAPTLS)
+ eaptls_passwd_hook = get_credentials;
+ #endif
+
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
+ add_notifier(&phasechange, nm_phasechange, NULL);
+ add_notifier(&ip_up_notifier, nm_ip_up, NULL);
+ add_notifier(&exitnotify, nm_exit_notify, NULL);
++#else
++ ppp_add_notify(NF_PHASE_CHANGE, nm_phasechange, NULL);
++ ppp_add_notify(NF_IP_UP, nm_ip_up, NULL);
++ ppp_add_notify(NF_EXIT, nm_exit_notify, NULL);
++#endif
+ return 0;
+ }
+
diff --git a/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-2.patch b/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-2.patch
new file mode 100644
index 000000000000..1625c57a4bc8
--- /dev/null
+++ b/net-vpn/networkmanager-l2tp/files/networkmanager-l2tp-1.20.8-ppp-2.5.0-2.patch
@@ -0,0 +1,170 @@
+https://bugs.gentoo.org/904843
+https://github.com/nm-l2tp/NetworkManager-l2tp/commit/36a427c316a8ccd3168606f6e7fd6c8ae2b9bebf
+
+From 36a427c316a8ccd3168606f6e7fd6c8ae2b9bebf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com>
+Date: Fri, 3 Mar 2023 05:22:13 +0000
+Subject: [PATCH] Adding support for compiling against pppd-2.5.0 (current
+ master)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -99,7 +99,7 @@ src_nm_l2tp_service_SOURCES = \
+ shared/nm-l2tp-crypto-nss.c \
+ shared/utils.h \
+ shared/utils.c \
+- src/nm-ppp-status.h \
++ src/nm-l2tp-pppd-status.h \
+ src/nm-l2tp-service.h \
+ src/nm-l2tp-service.c
+ src_nm_l2tp_service_CPPFLAGS = $(src_cppflags) $(NSS_CFLAGS) $(OPENSSL_CFLAGS)
+@@ -118,7 +118,8 @@ pppd_plugin_LTLIBRARIES = src/nm-l2tp-pppd-plugin.la
+ src_nm_l2tp_pppd_plugin_la_SOURCES = \
+ $(shared_sources) \
+ src/nm-l2tp-pppd-plugin.c \
+- src/nm-ppp-status.h
++ src/nm-l2tp-pppd-compat.h \
++ src/nm-l2tp-pppd-status.h
+ src_nm_l2tp_pppd_plugin_la_CPPFLAGS = $(src_cppflags)
+ src_nm_l2tp_pppd_plugin_la_LDFLAGS = \
+ -module -avoid-version
+--- /dev/null
++++ b/src/nm-l2tp-pppd-compat.h
+@@ -0,0 +1,93 @@
++/* SPDX-License-Identifier: GPL-2.0-or-later */
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* nm-sstp-service - sstp (and other pppd) integration with NetworkManager
++ *
++ * Copyright (C) 2023 Eivind Naess, eivnaes@yahoo.com
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#ifndef __NM_L2TP_PPPD_COMPAT_H__
++#define __NM_L2TP_PPPD_COMPAT_H__
++
++// PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
++// this silly macro magic is to work around that.
++
++#define INET6 1
++
++#undef VERSION
++#include <pppd/pppd.h>
++#ifndef PPPD_VERSION
++#define PPPD_VERSION VERSION
++#endif
++
++#include <pppd/fsm.h>
++#include <pppd/ccp.h>
++#include <pppd/eui64.h>
++#include <pppd/ipcp.h>
++#include <pppd/ipv6cp.h>
++#include <pppd/eap.h>
++#include <pppd/upap.h>
++
++#ifdef HAVE_PPPD_CHAP_H
++ #include <pppd/chap.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_NEW_H
++ #include <pppd/chap-new.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_MS_H
++ #include <pppd/chap_ms.h>
++#endif
++
++#ifndef PPP_PROTO_CHAP
++#define PPP_PROTO_CHAP 0xc223
++#endif
++
++#ifndef PPP_PROTO_EAP
++#define PPP_PROTO_EAP 0xc227
++#endif
++
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++
++static inline bool debug_on(void)
++{
++ return debug;
++}
++
++static inline const char *ppp_ipparam(void)
++{
++ return ipparam;
++}
++
++static inline int ppp_ifunit(void)
++{
++ return ifunit;
++}
++
++static inline const char *ppp_ifname(void)
++{
++ return ifname;
++}
++
++static inline int ppp_get_mtu(int idx)
++{
++ return netif_get_mtu(idx);
++}
++
++#endif // #if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++#endif // #ifdef __NM_L2TP_PPPD_COMPAT_H__
+--- a/src/nm-l2tp-pppd-plugin.c
++++ b/src/nm-l2tp-pppd-plugin.c
+@@ -9,8 +9,6 @@
+ #include <config.h>
+ #define ___CONFIG_H__
+
+-#include "nm-default.h"
+-
+ #include <string.h>
+ #include <stdlib.h>
+ #include <sys/socket.h>
+@@ -18,10 +16,11 @@
+ #include <arpa/inet.h>
+ #include <dlfcn.h>
+
+-#include "nm-l2tp-service.h"
+-#include "nm-ppp-status.h"
++#include "nm-l2tp-pppd-status.h"
+ #include "nm-l2tp-pppd-compat.h"
+
++#include "nm-default.h"
++#include "nm-l2tp-service.h"
+ #include "nm-utils/nm-shared-utils.h"
+ #include "nm-utils/nm-vpn-plugin-macros.h"
+
+similarity index 100%
+rename from src/nm-ppp-status.h
+rename to src/nm-l2tp-pppd-status.h
+--- a/src/nm-l2tp-service.c
++++ b/src/nm-l2tp-service.c
+@@ -36,7 +36,7 @@
+ #include <arpa/inet.h>
+ #include <netdb.h>
+
+-#include "nm-ppp-status.h"
++#include "nm-l2tp-pppd-status.h"
+ #include "nm-l2tp-pppd-service-dbus.h"
+ #include "nm-utils/nm-shared-utils.h"
+ #include "nm-utils/nm-secret-utils.h"
+
diff --git a/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8-r3.ebuild b/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8-r3.ebuild
new file mode 100644
index 000000000000..a8dc957d7e74
--- /dev/null
+++ b/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8-r3.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="NetworkManager-l2tp"
+MY_P="${MY_PN}-${PV}"
+inherit autotools gnome.org
+
+DESCRIPTION="NetworkManager L2TP plugin"
+HOMEPAGE="https://github.com/nm-l2tp/NetworkManager-l2tp"
+SRC_URI="https://github.com/nm-l2tp/${MY_PN}/releases/download/${PV}/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gtk"
+
+COMMON_DEPEND="dev-libs/glib:2
+ dev-libs/nspr
+ dev-libs/nss
+ dev-libs/openssl:=
+ net-dialup/ppp:=[eap-tls(+)]
+ net-dialup/xl2tpd
+ >=net-misc/networkmanager-1.20[ppp]
+ || (
+ net-vpn/strongswan
+ net-vpn/libreswan
+ )
+ gtk? (
+ app-crypt/libsecret
+ gnome-extra/nm-applet
+ media-libs/harfbuzz:=
+ net-libs/libnma
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/pango
+ )"
+DEPEND="${COMMON_DEPEND}
+ x11-base/xorg-proto"
+RDEPEND="${COMMON_DEPEND}
+ dev-libs/dbus-glib"
+BDEPEND="dev-util/gdbus-codegen
+ dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-ppp-2.5.0-{1,2}.patch
+ "${FILESDIR}"/${PN}-1.20.8-bashism-configure.patch
+)
+
+src_prepare() {
+ default
+
+ # For ppp-2.5.0 patch & bashism patch
+ eautoreconf
+}
+
+src_configure() {
+ local PPPD_VER=$(best_version net-dialup/ppp)
+ PPPD_VER=${PPPD_VER#*/*-} # reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision
+
+ local myeconfargs=(
+ --localstatedir=/var
+ --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER}
+ $(use_with gtk gnome)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8.ebuild b/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8.ebuild
index cfc6b1c20e10..c4c3ee77c566 100644
--- a/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8.ebuild
+++ b/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.8.ebuild
@@ -21,7 +21,7 @@ COMMON_DEPEND="dev-libs/glib:2
dev-libs/nspr
dev-libs/nss
dev-libs/openssl:=
- net-dialup/ppp:=[eap-tls]
+ net-dialup/ppp:=[eap-tls(+)]
net-dialup/xl2tpd
>=net-misc/networkmanager-1.20[ppp]
|| (
diff --git a/net-vpn/networkmanager-sstp/Manifest b/net-vpn/networkmanager-sstp/Manifest
index 09a0c0198e48..63976daa9589 100644
--- a/net-vpn/networkmanager-sstp/Manifest
+++ b/net-vpn/networkmanager-sstp/Manifest
@@ -1,4 +1,7 @@
AUX networkmanager-sstp-1.3.0-fix-configure.ac-bashisms.patch 5579 BLAKE2B f47cdac48099067340ae0723b011dca385711ed9f7651105e14541f2f799d96d8476604d20c747f43651ece043e11c857edf86acb5b99fd7a37db544020a953d SHA512 c9ef2c096d887f9a06c0bf64fe78d4dd2713997ecf5cf103c154f95465b40bf706b842483979df86ffa4efda208788bdfeb5015a39110568fd05ce951cca1672
DIST NetworkManager-sstp-1.3.0.tar.bz2 548907 BLAKE2B 97248268a781033bc960f930c5a55102e9fa76efa4be6477ffd277fd334649625b6c88418f00d678afa4412fb088cd201ef6711ef6f48b516daaa38fac02caa9 SHA512 9a26c737601990b913d9506ecaac957c4f6d2a4c64a3a0eb8beaf93eaef797ed134b2ddfe2421006a7ffe0dbd18800d49501836f3671f798132a1df707da138a
+DIST NetworkManager-sstp-1.3.1.tar.xz 508392 BLAKE2B 1ead40fa9c8f5bb48b8f7d6d7f6593812849cc26778c531c17a247f60969dbb8d72f477057e4ec7ec838425c3bd21a922b1a65235b72da0bee813f75540a928b SHA512 10247931a2b951b1126a6d7b9bd396fe2eab58d575888c409430f311baeaab85468f23a6c5b6afb7bef90bf73d1e2dbc2f5750cfb126dd365db23b3f79dd7ca6
+DIST networkmanager-sstp-1.3.1-ppp-2.5.0-patches.tar.xz 6792 BLAKE2B 58470f9e04be67029ad57cb2bddb3c80dd503ac5bfc2916683e7d6b4a9332aedb58883bc364a2317c31a8d871888662dbf6431c92753b6fd20b6ae873e45d96e SHA512 ee41eb9aba27e457ba5a8cba9ba27a98991f33750b8202c42ce8be2227bd6c1491bf8861b9e05cc1b3f97ea1bf93d60f5b5f83db3eefbed82ef8aff104ecba95
EBUILD networkmanager-sstp-1.3.0.ebuild 1908 BLAKE2B 65db01a396d8586734dae6633b2e08b5f57481b62edbb1491eeeaa5e8c9df77a4f66bc8cc531868696ff70b12de5828cb6333d7230dac05e101aa19f7b019e27 SHA512 3783edf78594d49a4f0765822929918bd12a2acde2dd6a317632bc4c7f5115e140b19c2f87d9c02e024949a49c99fb8d2a70645714dc6da140a338e82bc3e39e
+EBUILD networkmanager-sstp-1.3.1-r1.ebuild 2032 BLAKE2B d7bb1430dee554f14b922f38b111a977f1c38c59cfd73b240c5baab5915056729e1baeab900db70d4f876fa084a8c842fe2e0ab8fbd130f49d13ea5cbf0db508 SHA512 95f01abee2aeb4685e7059c55331b3e09c79943355910c9e6758cc682d3d0ae4b57c8cdef5ac39a78b78b56a0b28ed499e2654582fdfce0e91e25b9a0d39286d
MISC metadata.xml 406 BLAKE2B 5d7fa7ddbe8eb683af682b5ba31218ef5d59a15257119c1974d36ccfd5c0dd7ea1447abe1a1a76ff4c2f52dcab413ceafd98ce9350b2b19acd51b5abb1ee6ed9 SHA512 7142217c702ff68273a22dd75b34bf3bf5292c3e09c40fb2f2a6d1292a7b8e7f5aed2c6e3e736992ff0e2c88066450c9c793108d7f40024c0ac687d52155ea33
diff --git a/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.1-r1.ebuild b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.1-r1.ebuild
new file mode 100644
index 000000000000..378579b00d87
--- /dev/null
+++ b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.1-r1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="NetworkManager-sstp"
+MY_P="${MY_PN}-${PV}"
+
+inherit autotools
+
+DESCRIPTION="Client for the proprietary Microsoft Secure Socket Tunneling Protocol(SSTP)"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/network-manager-sstp https://sourceforge.net/projects/sstp-client/"
+SRC_URI="https://gitlab.gnome.org/GNOME/network-manager-sstp/-/releases/release-${PV}/downloads/dist/${MY_P}.tar.xz"
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-ppp-2.5.0-patches.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gui gtk4"
+
+# As of 1.3.0, if want GUI support, GTK 3 is always needed, even with GTK 4.
+# atk/graphene/harfbuzz/cairo/gdk-pixbuf/pango are all standard "dragged in by gtk/glib"
+# deps.
+RDEPEND="
+ >=dev-libs/glib-2.32:2
+ net-misc/sstp-client
+ >=net-misc/networkmanager-1.1.0
+ net-dialup/ppp:=
+ net-libs/gnutls:=
+ gui? (
+ >=net-libs/libnma-1.2.0
+ >=app-crypt/libsecret-0.18
+ >=x11-libs/gtk+-3.4:3
+
+ gtk4? (
+ >=app-accessibility/at-spi2-core-2.46.0
+ media-libs/graphene
+ media-libs/harfbuzz:=
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango
+
+ gui-libs/gtk:4
+ )
+ )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-util/gdbus-codegen
+ sys-apps/file
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${WORKDIR}"/${P}-ppp-2.5.0-patches
+)
+
+src_prepare() {
+ default
+
+ # Bug #741108
+ sed -i 's|/appdata|/metainfo|g' Makefile.{in,am} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local PPPD_VER="$(best_version net-dialup/ppp)"
+ # Reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER#*/*-}
+ # Main version without beta/pre/patch/revision
+ PPPD_VER=${PPPD_VER%%[_-]*}
+
+ econf \
+ --disable-more-warnings \
+ --with-dist-version=Gentoo \
+ --with-pppd-plugin-dir="${EPREFIX}/usr/$(get_libdir)/pppd/${PPPD_VER}" \
+ $(use_with gui gnome) \
+ $(use_with gtk4) \
+ --without-libnm-glib
+}
+
+src_install() {
+ default
+
+ find "${ED}" -type f -name '*.la' -delete || die
+}