diff --git a/.gitignore b/.gitignore index a50997f..979254b 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ /NetworkManager-l2tp-1.20.4.tar.xz /NetworkManager-l2tp-1.20.6.tar.xz /NetworkManager-l2tp-1.20.8.tar.xz +/NetworkManager-l2tp-1.20.10.tar.xz diff --git a/0001-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch b/0001-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch deleted file mode 100644 index f80ec8b..0000000 --- a/0001-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch +++ /dev/null @@ -1,169 +0,0 @@ -From e6860eb957208a932fb565dd7b5e79fe5a4df662 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Eivind=20N=C3=A6ss?= -Date: Fri, 3 Mar 2023 05:22:13 +0000 -Subject: [PATCH 1/2] 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 ---- - configure.ac | 46 +++++++++++++++++++++++++++++++++++++-- - src/nm-l2tp-pppd-plugin.c | 20 +++++++++-------- - 2 files changed, 55 insertions(+), 11 deletions(-) - -diff --git a/configure.ac b/configure.ac -index baf8d44..b925eb0 100644 ---- 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 -+#include - ], [have_eap_tls=yes] , [have_eap_tls=no]) - - if test "x${have_eap_tls}" = "xno"; then -diff --git a/src/nm-l2tp-pppd-plugin.c b/src/nm-l2tp-pppd-plugin.c -index 71a7878..dd752a1 100644 ---- a/src/nm-l2tp-pppd-plugin.c -+++ b/src/nm-l2tp-pppd-plugin.c -@@ -9,11 +9,6 @@ - #include - #define ___CONFIG_H__ - --/* pppd headers *sigh* */ --#include --#include --#include -- - #include "nm-default.h" - - #include -@@ -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; - } --- -2.40.0 - diff --git a/0002-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch b/0002-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch deleted file mode 100644 index cd70a0f..0000000 --- a/0002-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch +++ /dev/null @@ -1,189 +0,0 @@ -From 36a427c316a8ccd3168606f6e7fd6c8ae2b9bebf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Eivind=20N=C3=A6ss?= -Date: Fri, 3 Mar 2023 05:22:13 +0000 -Subject: [PATCH 2/2] 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 ---- - Makefile.am | 5 +- - src/nm-l2tp-pppd-compat.h | 93 +++++++++++++++++++ - src/nm-l2tp-pppd-plugin.c | 7 +- - ...{nm-ppp-status.h => nm-l2tp-pppd-status.h} | 0 - src/nm-l2tp-service.c | 2 +- - 5 files changed, 100 insertions(+), 7 deletions(-) - create mode 100644 src/nm-l2tp-pppd-compat.h - rename src/{nm-ppp-status.h => nm-l2tp-pppd-status.h} (100%) - -diff --git a/Makefile.am b/Makefile.am -index 8201ca7..1feb9be 100644 ---- 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 -diff --git a/src/nm-l2tp-pppd-compat.h b/src/nm-l2tp-pppd-compat.h -new file mode 100644 -index 0000000..80e2891 ---- /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 -+#ifndef PPPD_VERSION -+#define PPPD_VERSION VERSION -+#endif -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef HAVE_PPPD_CHAP_H -+ #include -+#endif -+ -+#ifdef HAVE_PPPD_CHAP_NEW_H -+ #include -+#endif -+ -+#ifdef HAVE_PPPD_CHAP_MS_H -+ #include -+#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__ -diff --git a/src/nm-l2tp-pppd-plugin.c b/src/nm-l2tp-pppd-plugin.c -index dd752a1..f1d588e 100644 ---- a/src/nm-l2tp-pppd-plugin.c -+++ b/src/nm-l2tp-pppd-plugin.c -@@ -9,8 +9,6 @@ - #include - #define ___CONFIG_H__ - --#include "nm-default.h" -- - #include - #include - #include -@@ -18,10 +16,11 @@ - #include - #include - --#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" - -diff --git a/src/nm-ppp-status.h b/src/nm-l2tp-pppd-status.h -similarity index 100% -rename from src/nm-ppp-status.h -rename to src/nm-l2tp-pppd-status.h -diff --git a/src/nm-l2tp-service.c b/src/nm-l2tp-service.c -index 55f9542..629923c 100644 ---- a/src/nm-l2tp-service.c -+++ b/src/nm-l2tp-service.c -@@ -36,7 +36,7 @@ - #include - #include - --#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" --- -2.40.0 - diff --git a/NetworkManager-l2tp.spec b/NetworkManager-l2tp.spec index 1c87fbb..704b9b5 100644 --- a/NetworkManager-l2tp.spec +++ b/NetworkManager-l2tp.spec @@ -6,18 +6,13 @@ Summary: NetworkManager VPN plugin for L2TP and L2TP/IPsec Name: NetworkManager-l2tp -Version: 1.20.8 -Release: 3%{?dist} +Version: 1.20.10 +Release: 1%{?dist} License: GPLv2+ URL: https://github.com/nm-l2tp/NetworkManager-l2tp Source: https://github.com/nm-l2tp/NetworkManager-l2tp/releases/download/%{version}/%{name}-%{version}.tar.xz -# Backports from upstream main branch: fix build with ppp 2.5.0 -# No, these are not the same patch twice, they just have the same -# commit message -Patch0: 0001-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch -Patch1: 0002-Adding-support-for-compiling-against-pppd-2.5.0-curr.patch -%global ppp_version %(pkg-config --modversion pppd 2>/dev/null || echo bad) +%global ppp_version %(pkg-config --modversion pppd 2>/dev/null || sed -n 's/^#define\\s*VERSION\\s*"\\([^\\s]*\\)"$/\\1/p' %{_includedir}/pppd/patchlevel.h 2>/dev/null | grep . || echo bad) BuildRequires: make BuildRequires: gcc @@ -26,10 +21,8 @@ BuildRequires: gtk3-devel BuildRequires: NetworkManager-libnm-devel >= 1:1.20.0 BuildRequires: libnma-devel >= 1.8.0 BuildRequires: pkgconfig -BuildRequires: ppp-devel >= 2.5.0 -# ppp 2.5.0 patches require autoreconf, drop this when a new version -# is released and those patches are dropped -BuildRequires: autoconf automake gettext-devel +BuildRequires: ppp-devel >= 2.4.5 +BuildRequires: autoconf automake BuildRequires: libtool gettext BuildRequires: libsecret-devel BuildRequires: openssl-devel >= 1:1.1.0 @@ -64,11 +57,9 @@ IPsec VPN support with the NetworkManager (GNOME files). %autosetup -p1 %build -#if [ ! -f configure ]; then -# autoreconf -fi -#fi -# for ppp 2.5.0 patches -autoreconf -fi +if [ ! -f configure ]; then + autoreconf -fi +fi %configure \ --disable-static \ --runstatedir=/run \ @@ -127,6 +118,11 @@ exit 0 %endif %changelog +* Mon May 01 2023 Douglas Kosovic - 1.20.10-1 +- Updated to 1.20.10 release +- Remove redundant ppp related patches +- Use ppp_version macro from NetworkManager + * Tue Apr 18 2023 Adam Williamson - 1.20.8-3 - Rebuild for new ppp diff --git a/sources b/sources index e831438..84f6c9a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (NetworkManager-l2tp-1.20.8.tar.xz) = 6ed2ab401821878bf775a27d43e540acce0ea6504a1a4bac436164776ef9e0eacef7963f0362691ef4ad7304e30e2c3199ba4fb41e24918b83aab88b34f7bb6a +SHA512 (NetworkManager-l2tp-1.20.10.tar.xz) = a4fa0a40d013eb4ad5c02dafe3d3e534beef8701745d24ef2e5fc7065d915cd3764e53e7bdd725b0f8be65fddfc55724754548b46f178d2da3060c93ccd6db03