about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2016-01-20 17:18:16 +0100
committerMichael Biebl <biebl@debian.org>2016-01-20 17:18:18 +0100
commit24723d74205f3dffee8273114e33909bf6846e7b (patch)
tree8c9c0769aaab9f30d00439599056dc2eb33c9111
parent913cbf772027e10b6e4ba8c93f8d326061440c79 (diff)
Rebase patches
-rw-r--r--debian/changelog1
-rw-r--r--debian/patches/Check-at-runtime-whether-to-start-ModemManager.patch12
-rw-r--r--debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch2
-rw-r--r--debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch17
-rw-r--r--debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch4
-rw-r--r--debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch46
-rw-r--r--debian/patches/Fix-iscsiadm-path.patch4
-rw-r--r--debian/patches/Force-online-state-with-unmanaged-devices.patch34
-rw-r--r--debian/patches/Revert-ppp-manager-don-t-use-kernel-pppoe-rh-1034860-rh-1.patch131
-rw-r--r--debian/patches/Use-symlinks-for-nmtui.patch38
-rw-r--r--debian/patches/Use-the-correct-path-when-calling-dnssec-trigger-scr.patch23
-rw-r--r--debian/patches/build-install-nm-settings-ifcfg-rh.5-man-page-condit.patch8
-rw-r--r--debian/patches/core-fix-failure-to-configure-routes-due-to-wrong-device-.patch52
-rw-r--r--debian/patches/crypto-only-use-gnutls-crypto-API-remove-libgcrypt-d.patch576
-rw-r--r--debian/patches/fix-arping-path.patch4
-rw-r--r--debian/patches/series5
16 files changed, 65 insertions, 892 deletions
diff --git a/debian/changelog b/debian/changelog
index b9c5977a..4c5874de 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ network-manager (1.1.90-1) UNRELEASED; urgency=medium
   * New upstream release (1.2 beta1).
   * Explicitly enable nmcli.
   * Set the path to the dnssec-trigger-script via the configure switch.
+  * Rebase patches.
 
  -- Michael Biebl <biebl@debian.org>  Wed, 20 Jan 2016 16:28:12 +0100
 
diff --git a/debian/patches/Check-at-runtime-whether-to-start-ModemManager.patch b/debian/patches/Check-at-runtime-whether-to-start-ModemManager.patch
index 2b77012e..d21da521 100644
--- a/debian/patches/Check-at-runtime-whether-to-start-ModemManager.patch
+++ b/debian/patches/Check-at-runtime-whether-to-start-ModemManager.patch
@@ -13,7 +13,7 @@ Closes: #770871
  1 file changed, 5 insertions(+), 10 deletions(-)
 
 diff --git a/src/devices/wwan/nm-modem-manager.c b/src/devices/wwan/nm-modem-manager.c
-index f0e5692..b8ecba1 100644
+index c28d86a..35d8980 100644
 --- a/src/devices/wwan/nm-modem-manager.c
 +++ b/src/devices/wwan/nm-modem-manager.c
 @@ -25,6 +25,7 @@
@@ -23,8 +23,8 @@ index f0e5692..b8ecba1 100644
 +#include <systemd/sd-daemon.h>
  
  #include "nm-modem-manager.h"
- #include "nm-logging.h"
-@@ -202,10 +203,9 @@ modem_manager_name_owner_changed (MMManager *modem_manager,
+ #include "nm-default.h"
+@@ -200,10 +201,9 @@ modem_manager_name_owner_changed (MMManager *modem_manager,
  	if (!name_owner) {
  		nm_log_info (LOGD_MB, "ModemManager disappeared from bus");
  
@@ -37,7 +37,7 @@ index f0e5692..b8ecba1 100644
  
  		return;
  	}
-@@ -226,8 +226,6 @@ modem_manager_name_owner_changed (MMManager *modem_manager,
+@@ -224,8 +224,6 @@ modem_manager_name_owner_changed (MMManager *modem_manager,
  	 */
  }
  
@@ -46,7 +46,7 @@ index f0e5692..b8ecba1 100644
  static void
  modem_manager_poke_cb (GDBusConnection *connection,
                         GAsyncResult *res,
-@@ -276,8 +274,6 @@ modem_manager_poke (NMModemManager *self)
+@@ -274,8 +272,6 @@ modem_manager_poke (NMModemManager *self)
  	                        g_object_ref (self)); /* user_data */
  }
  
@@ -55,7 +55,7 @@ index f0e5692..b8ecba1 100644
  static void
  modem_manager_check_name_owner (NMModemManager *self)
  {
-@@ -291,10 +287,9 @@ modem_manager_check_name_owner (NMModemManager *self)
+@@ -289,10 +285,9 @@ modem_manager_check_name_owner (NMModemManager *self)
  		return;
  	}
  
diff --git a/debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch b/debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch
index 0071c65a..3c807d49 100644
--- a/debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch
+++ b/debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch
@@ -20,7 +20,7 @@ for network.target.
  1 file changed, 2 deletions(-)
 
 diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
-index 980573d..9312122 100644
+index 6690f5a..10b3de9 100644
 --- a/data/NetworkManager.service.in
 +++ b/data/NetworkManager.service.in
 @@ -1,7 +1,5 @@
diff --git a/debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch b/debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch
index f78ae632..4ee2e37e 100644
--- a/debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch
+++ b/debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch
@@ -15,8 +15,8 @@ http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
 https://bugzilla.gnome.org/show_bug.cgi?id=746039
 ---
  data/Makefile.am                           | 4 ----
- data/NetworkManager-wait-online.service.in | 7 ++++---
- 2 files changed, 4 insertions(+), 7 deletions(-)
+ data/NetworkManager-wait-online.service.in | 2 ++
+ 2 files changed, 2 insertions(+), 4 deletions(-)
 
 diff --git a/data/Makefile.am b/data/Makefile.am
 index 4ab4106..bbe6b32 100644
@@ -34,24 +34,21 @@ index 4ab4106..bbe6b32 100644
  
  examplesdir = $(docdir)/examples
 diff --git a/data/NetworkManager-wait-online.service.in b/data/NetworkManager-wait-online.service.in
-index 6ad6942..1753d20 100644
+index 8c4fa67..1753d20 100644
 --- a/data/NetworkManager-wait-online.service.in
 +++ b/data/NetworkManager-wait-online.service.in
-@@ -1,13 +1,14 @@
+@@ -1,5 +1,6 @@
  [Unit]
  Description=Network Manager Wait Online
 +Documentation=man:nm-online(1)
  Requisite=NetworkManager.service
  After=NetworkManager.service
--Wants=network.target
--Before=network.target network-online.target
-+Before=network-online.target
- 
+ Before=network-online.target
+@@ -7,6 +8,7 @@ Before=network-online.target
  [Service]
  Type=oneshot
  ExecStart=@bindir@/nm-online -s -q --timeout=30
 +RemainAfterExit=yes
  
  [Install]
--WantedBy=multi-user.target
-+WantedBy=network-online.target
+ WantedBy=network-online.target
diff --git a/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch b/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch
index a41474ee..eba453a6 100644
--- a/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch
+++ b/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch
@@ -28,10 +28,10 @@ index ce059fc..4ab4106 100644
  	install -d $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants
  	ln -sf $(systemdsystemunitdir)/NetworkManager-wait-online.service $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants
 diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
-index 9312122..aae09ba 100644
+index 10b3de9..90c0664 100644
 --- a/data/NetworkManager.service.in
 +++ b/data/NetworkManager.service.in
-@@ -12,6 +12,5 @@ KillMode=process
+@@ -15,6 +15,5 @@ ProtectHome=read-only
  
  [Install]
  WantedBy=multi-user.target
diff --git a/debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch b/debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch
index d1c392fd..79f3c342 100644
--- a/debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch
+++ b/debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch
@@ -18,53 +18,53 @@ Closes: #742933
  3 files changed, 9 insertions(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 1ed6935..1e9c63d 100644
+index 6da6415..b550ab1 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -384,8 +384,9 @@ fi
+@@ -467,8 +467,9 @@ fi
  case $with_suspend_resume in
      upower) ;;
      systemd)
-+	# Link against libsystemd-daemon for sd_booted()
- 	PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd >= 209],,
--	                  [PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd-login >= 183])])
-+	                  [PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd-login >= 183 libsystemd-daemon])])
++        # Link against libsystemd-daemon for sd_booted()
+         PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd >= 209],,
+-                          [PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd-login >= 183])])
++                          [PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd-login >= 183 libsystemd-daemon])])
+         AC_DEFINE([SUSPEND_RESUME_SYSTEMD], 1, [Define to 1 to use systemd suspend api])
          ;;
-     *)
- 	AC_MSG_ERROR(--with-suspend-resume must be one of [upower, systemd])
+     consolekit)
 diff --git a/src/Makefile.am b/src/Makefile.am
-index e8279e7..ecde266 100644
+index 7e85831..ca35e1d 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
-@@ -423,6 +423,7 @@ AM_CPPFLAGS += \
- 	$(LIBNDP_CFLAGS) \
- 	$(LIBSOUP_CFLAGS) \
+@@ -437,6 +437,7 @@ AM_CPPFLAGS += \
+ 	$(SELINUX_CFLAGS) \
+ 	$(LIBAUDIT_CFLAGS) \
  	$(SYSTEMD_LOGIN_CFLAGS) \
 +	$(SYSTEMD_INHIBIT_CFLAGS) \
- 	$(SYSTEMD_DHCP_CFLAGS) \
+ 	$(SYSTEMD_JOURNAL_CFLAGS) \
+ 	$(SYSTEMD_NM_CFLAGS_PATHS) \
  	\
- 	-DBINDIR=\"$(bindir)\" \
-@@ -461,6 +462,7 @@ libNetworkManager_la_LIBADD = \
+@@ -470,6 +471,7 @@ libNetworkManager_la_LIBADD = \
  	$(GUDEV_LIBS) \
  	$(LIBNL_LIBS) \
  	$(SYSTEMD_LOGIN_LIBS) \
 +	$(SYSTEMD_INHIBIT_LIBS) \
+ 	$(SYSTEMD_JOURNAL_LIBS) \
  	$(LIBNDP_LIBS) \
  	$(LIBDL) \
- 	$(LIBM)
 diff --git a/src/nm-sleep-monitor-systemd.c b/src/nm-sleep-monitor-systemd.c
-index 44523a4..5ad0715 100644
+index 12db56b..f1baa4e 100644
 --- a/src/nm-sleep-monitor-systemd.c
 +++ b/src/nm-sleep-monitor-systemd.c
-@@ -25,6 +25,7 @@
- #include <glib/gi18n.h>
- #include <gio/gio.h>
+@@ -23,6 +23,7 @@
+ #include <string.h>
+ #include <sys/stat.h>
  #include <gio/gunixfdlist.h>
 +#include <systemd/sd-daemon.h>
  
- #include "nm-logging.h"
- #include "nm-dbus-manager.h"
-@@ -193,6 +194,10 @@ on_proxy_acquired (GObject *object,
+ #include "nm-default.h"
+ #include "nm-core-internal.h"
+@@ -204,6 +205,10 @@ on_proxy_acquired (GObject *object,
  static void
  nm_sleep_monitor_init (NMSleepMonitor *self)
  {
diff --git a/debian/patches/Fix-iscsiadm-path.patch b/debian/patches/Fix-iscsiadm-path.patch
index 161b366f..77db7f98 100644
--- a/debian/patches/Fix-iscsiadm-path.patch
+++ b/debian/patches/Fix-iscsiadm-path.patch
@@ -9,10 +9,10 @@ The open-scsi package in Debian installs the iscisadm binary as
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/settings/plugins/ibft/plugin.c b/src/settings/plugins/ibft/plugin.c
-index 632c4df..e64bbe4 100644
+index 555725d..cc1d32e 100644
 --- a/src/settings/plugins/ibft/plugin.c
 +++ b/src/settings/plugins/ibft/plugin.c
-@@ -62,7 +62,7 @@ read_connections (SCPluginIbft *self)
+@@ -61,7 +61,7 @@ read_connections (SettingsPluginIbft *self)
  	GError *error = NULL;
  	NMIbftConnection *connection;
  
diff --git a/debian/patches/Force-online-state-with-unmanaged-devices.patch b/debian/patches/Force-online-state-with-unmanaged-devices.patch
index 28f41ff7..1f6b6f26 100644
--- a/debian/patches/Force-online-state-with-unmanaged-devices.patch
+++ b/debian/patches/Force-online-state-with-unmanaged-devices.patch
@@ -12,19 +12,19 @@ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=512286
  1 file changed, 120 insertions(+)
 
 diff --git a/src/nm-manager.c b/src/nm-manager.c
-index a1e4fb4..7f78984 100644
+index ffc89ec..ba0ff24 100644
 --- a/src/nm-manager.c
 +++ b/src/nm-manager.c
-@@ -62,6 +62,8 @@
- #define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd"
- #define NM_AUTOIP_DBUS_IFACE   "org.freedesktop.nm_avahi_autoipd"
+@@ -58,6 +58,8 @@
+ #include "nmdbus-manager.h"
+ #include "nmdbus-device.h"
  
 +#define IFUPDOWN_STATE_FILE "/run/network/ifstate"
 +
- static gboolean impl_manager_get_devices (NMManager *manager,
-                                           GPtrArray **devices,
-                                           GError **err);
-@@ -191,6 +193,10 @@ typedef struct {
+ static gboolean add_device (NMManager *self, NMDevice *device, GError **error);
+ 
+ static NMActiveConnection *_new_active_connection (NMManager *self,
+@@ -138,6 +140,10 @@ typedef struct {
  	GFileMonitor *fw_monitor;
  	guint fw_changed_id;
  
@@ -35,7 +35,7 @@ index a1e4fb4..7f78984 100644
  	guint timestamp_update_id;
  
  	gboolean startup;
-@@ -659,6 +665,29 @@ find_best_device_state (NMManager *manager)
+@@ -684,6 +690,29 @@ find_best_device_state (NMManager *manager)
  	return best_state;
  }
  
@@ -65,7 +65,7 @@ index a1e4fb4..7f78984 100644
  static void
  nm_manager_update_metered (NMManager *manager)
  {
-@@ -700,6 +729,9 @@ nm_manager_update_state (NMManager *manager)
+@@ -725,6 +754,9 @@ nm_manager_update_state (NMManager *manager)
  
  	nm_connectivity_set_online (priv->connectivity, new_state >= NM_STATE_CONNECTED_LOCAL);
  
@@ -75,7 +75,7 @@ index a1e4fb4..7f78984 100644
  	if (new_state == NM_STATE_CONNECTED_SITE) {
  		nm_connectivity_check_async (priv->connectivity,
  		                             checked_connectivity,
-@@ -4179,6 +4211,65 @@ impl_manager_check_connectivity (NMManager *manager,
+@@ -4347,6 +4379,65 @@ impl_manager_check_connectivity (NMManager *self,
  }
  
  static void
@@ -141,17 +141,17 @@ index a1e4fb4..7f78984 100644
  start_factory (NMDeviceFactory *factory, gpointer user_data)
  {
  	nm_device_factory_start (factory);
-@@ -4232,6 +4323,9 @@ nm_manager_start (NMManager *self)
- 	priv->devices_inited = TRUE;
+@@ -4417,6 +4508,9 @@ nm_manager_start (NMManager *self, GError **error)
  
  	check_if_startup_complete (self);
-+
+ 
 +	/* Trigger ifupdown state file check */
 +	check_ifstate_file (self);
++
+ 	return TRUE;
  }
  
- void
-@@ -4939,6 +5033,22 @@ nm_manager_init (NMManager *manager)
+@@ -5215,6 +5309,22 @@ nm_manager_init (NMManager *manager)
  		             KERNEL_FIRMWARE_DIR);
  	}
  
@@ -174,7 +174,7 @@ index a1e4fb4..7f78984 100644
  	/* Update timestamps in active connections */
  	priv->timestamp_update_id = g_timeout_add_seconds (300, (GSourceFunc) periodic_update_active_connection_timestamps, manager);
  
-@@ -5160,6 +5270,16 @@ dispose (GObject *object)
+@@ -5457,6 +5567,16 @@ dispose (GObject *object)
  		g_clear_object (&priv->fw_monitor);
  	}
  
diff --git a/debian/patches/Revert-ppp-manager-don-t-use-kernel-pppoe-rh-1034860-rh-1.patch b/debian/patches/Revert-ppp-manager-don-t-use-kernel-pppoe-rh-1034860-rh-1.patch
deleted file mode 100644
index 5dc1833c..00000000
--- a/debian/patches/Revert-ppp-manager-don-t-use-kernel-pppoe-rh-1034860-rh-1.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From: Dan Williams <dcbw@redhat.com>
-Date: Wed, 18 Feb 2015 10:45:07 -0600
-Subject: Revert "ppp-manager: don't use kernel pppoe (rh #1034860,
- rh #1061641)"
-
-We switched to user-mode PPPoE client to work around a bug in kernel
-PPPoE code that caused pppd not to be notified when the connection was
-terminated with a PADT before the LCP Termination Request.
-
-The kernel bug has now been fixed upstream with commit 287f3a943fef
-"pppoe: Use workqueue to die properly when a PADT is received", queued
-for v4.1.
-
-Since the issue affected only very particular scenarios and could
-somehow be solved with the right configuration (see bugzilla entry),
-we can safely revert the patch and restore the use of kernel mode
-PPPoE.
-
-This reverts commit 7955806a02db64b20079267743056d7d9d45af3b.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=742939
----
- configure.ac                     |  9 --------
- src/ppp-manager/nm-ppp-manager.c | 46 +++++++++++-----------------------------
- 2 files changed, 12 insertions(+), 43 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8ca1278..86a427d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -629,15 +629,6 @@ fi
- AC_DEFINE_UNQUOTED(PPPD_PATH, "$PPPD_PATH", [Define to path of pppd binary])
- AC_SUBST(PPPD_PATH)
- 
--AC_ARG_WITH(pppoe, AS_HELP_STRING([--with-pppoe=/path/to/pppoe], [path to pppoe binary]))
--if test "x${with_pppoe}" = x; then
--  AC_PATH_PROG(PPPOE_PATH, pppoe, [], $PATH:/sbin:/usr/sbin)
--else
--  PPPOE_PATH="$with_pppoe"
--fi
--AC_DEFINE_UNQUOTED(PPPOE_PATH, "$PPPOE_PATH", [Define to path of pppoe binary])
--AC_SUBST(PPPOE_PATH)
--
- # ModemManager1 with libmm-glib
- AC_ARG_WITH(modem-manager-1, AS_HELP_STRING([--with-modem-manager-1], [Enable new ModemManager1 interface support]),,[with_modem_manager_1=auto])
- if (test "${with_modem_manager_1}" != "no"); then
-diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c
-index d27b262..6742104 100644
---- a/src/ppp-manager/nm-ppp-manager.c
-+++ b/src/ppp-manager/nm-ppp-manager.c
-@@ -854,7 +854,7 @@ create_pppd_cmd_line (NMPPPManager *self,
-                       GError **err)
- {
- 	NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self);
--	const char *pppd_binary = NULL, *pppoe_binary = NULL;
-+	const char *pppd_binary = NULL;
- 	NMCmdLine *cmd;
- 	gboolean ppp_debug;
- 
-@@ -864,14 +864,6 @@ create_pppd_cmd_line (NMPPPManager *self,
- 	if (!pppd_binary)
- 		return NULL;
- 
--	if (   pppoe
--	    || (   adsl
--	        && !strcmp (nm_setting_adsl_get_protocol (adsl), NM_SETTING_ADSL_PROTOCOL_PPPOE))) {
--		pppoe_binary = nm_utils_find_helper ("pppoe", NULL, err);
--		if (!pppoe_binary)
--			return NULL;
--	}
--
- 	/* Create pppd command line */
- 	cmd = nm_cmd_line_new ();
- 	nm_cmd_line_add_string (cmd, pppd_binary);
-@@ -899,30 +891,21 @@ create_pppd_cmd_line (NMPPPManager *self,
- 	}
- 
- 	if (pppoe) {
--		GString *pppoe_arg;
-+		char *dev_str;
- 		const char *pppoe_service;
--		char *quoted;
- 
--		g_assert (pppoe_binary != NULL);
--		pppoe_arg = g_string_new (pppoe_binary);
-+		nm_cmd_line_add_string (cmd, "plugin");
-+		nm_cmd_line_add_string (cmd, "rp-pppoe.so");
- 
--		g_string_append (pppoe_arg, " -I ");
--		quoted = g_shell_quote (priv->parent_iface);
--		g_string_append (pppoe_arg, quoted);
--		g_free (quoted);
-+		dev_str = g_strdup_printf ("nic-%s", priv->parent_iface);
-+		nm_cmd_line_add_string (cmd, dev_str);
-+		g_free (dev_str);
- 
- 		pppoe_service = nm_setting_pppoe_get_service (pppoe);
- 		if (pppoe_service) {
--			g_string_append (pppoe_arg, " -S ");
--			quoted = g_shell_quote (pppoe_service);
--			g_string_append (pppoe_arg, quoted);
--			g_free (quoted);
-+			nm_cmd_line_add_string (cmd, "rp_pppoe_service");
-+			nm_cmd_line_add_string (cmd, pppoe_service);
- 		}
--
--		nm_cmd_line_add_string (cmd, "pty");
--		nm_cmd_line_add_string (cmd, pppoe_arg->str);
--
--		g_string_free (pppoe_arg, TRUE);
- 	} else if (adsl) {
- 		const gchar *protocol = nm_setting_adsl_get_protocol (adsl);
- 
-@@ -945,14 +928,9 @@ create_pppd_cmd_line (NMPPPManager *self,
- 				nm_cmd_line_add_string (cmd, "vc-encaps");
- 
- 		} else if (!strcmp (protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE)) {
--			char *pppoe_arg;
--
--			g_assert (pppoe_binary != NULL);
--
--			pppoe_arg = g_strdup_printf ("%s -I %s", pppoe_binary, priv->parent_iface);
--			nm_cmd_line_add_string (cmd, "pty");
--			nm_cmd_line_add_string (cmd, pppoe_arg);
--			g_free (pppoe_arg);
-+			nm_cmd_line_add_string (cmd, "plugin");
-+			nm_cmd_line_add_string (cmd, "rp-pppoe.so");
-+			nm_cmd_line_add_string (cmd, priv->parent_iface);
- 		}
- 
- 		nm_cmd_line_add_string (cmd, "noipdefault");
diff --git a/debian/patches/Use-symlinks-for-nmtui.patch b/debian/patches/Use-symlinks-for-nmtui.patch
deleted file mode 100644
index 724494c4..00000000
--- a/debian/patches/Use-symlinks-for-nmtui.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Michael Biebl <biebl@debian.org>
-Date: Thu, 10 Jul 2014 03:33:18 +0200
-Subject: build: Use symlinks for nmtui
-
-Make /usr/bin/nmtui-* symbolic links to /usr/bin/nmtui.
-
-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=759824
----
- clients/tui/Makefile.am | 2 +-
- configure.ac            | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/clients/tui/Makefile.am b/clients/tui/Makefile.am
-index a84fcdf..3eb1756 100644
---- a/clients/tui/Makefile.am
-+++ b/clients/tui/Makefile.am
-@@ -27,7 +27,7 @@ links = nmtui-edit nmtui-connect nmtui-hostname
- 
- install-exec-hook:
- 	for link in $(links); do \
--		ln -f $(DESTDIR)$(bindir)/nmtui $(DESTDIR)$(bindir)/$$link; \
-+		cd $(DESTDIR)$(bindir) && $(LN_S) -f nmtui $$link; \
- 	done
- 
- uninstall-hook:
-diff --git a/configure.ac b/configure.ac
-index 1e9c63d..3274fd9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -33,6 +33,8 @@ AM_PROG_CC_C_O
- # C++ only required if --enable-qt=yes
- AC_PROG_CXX
- 
-+AC_PROG_LN_S
-+
- dnl Initialize libtool
- LT_PREREQ([2.2])
- LT_INIT([disable-static])
diff --git a/debian/patches/Use-the-correct-path-when-calling-dnssec-trigger-scr.patch b/debian/patches/Use-the-correct-path-when-calling-dnssec-trigger-scr.patch
deleted file mode 100644
index b5241593..00000000
--- a/debian/patches/Use-the-correct-path-when-calling-dnssec-trigger-scr.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Arto Jantunen <viiru@debian.org>
-Date: Sat, 27 Sep 2014 11:13:32 +0300
-Subject: Use the correct path when calling dnssec-trigger-script
-
-Debian systems don't have /usr/libexec, so the script is installed in
-a different path.
----
- src/dns-manager/nm-dns-unbound.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/dns-manager/nm-dns-unbound.c b/src/dns-manager/nm-dns-unbound.c
-index 5723bf8..2dcc220 100644
---- a/src/dns-manager/nm-dns-unbound.c
-+++ b/src/dns-manager/nm-dns-unbound.c
-@@ -42,7 +42,7 @@ update (NMDnsPlugin *plugin,
- 	 * without calling custom scripts. The dnssec-trigger functionality
- 	 * may be eventually merged into NetworkManager.
- 	 */
--	return nm_spawn_process ("/usr/libexec/dnssec-trigger-script --async --update", NULL) == 0;
-+	return nm_spawn_process ("/usr/lib/dnssec-trigger/dnssec-trigger-script --async --update", NULL) == 0;
- }
- 
- static gboolean
diff --git a/debian/patches/build-install-nm-settings-ifcfg-rh.5-man-page-condit.patch b/debian/patches/build-install-nm-settings-ifcfg-rh.5-man-page-condit.patch
index 9f8a07b6..09db2e02 100644
--- a/debian/patches/build-install-nm-settings-ifcfg-rh.5-man-page-condit.patch
+++ b/debian/patches/build-install-nm-settings-ifcfg-rh.5-man-page-condit.patch
@@ -11,10 +11,10 @@ Bug: https://bugzilla.gnome.org/show_bug.cgi?id=759823
  1 file changed, 5 insertions(+), 1 deletion(-)
 
 diff --git a/man/Makefile.am b/man/Makefile.am
-index 4577cb4..f0a4616 100644
+index 85b6f3a..45009fc 100644
 --- a/man/Makefile.am
 +++ b/man/Makefile.am
-@@ -68,8 +68,12 @@ docbook_generated_man_pages =		\
+@@ -78,8 +78,12 @@ docbook_generated_man_pages =		\
  
  docbook_autogenerated_man_pages =	\
  	nm-settings.5			\
@@ -26,5 +26,5 @@ index 4577cb4..f0a4616 100644
  	nm-settings-ifcfg-rh.5
 +endif
  
- EXTRA_DIST +=					\
- 	nm-settings.xml				\
+ EXTRA_DIST +=								\
+ 	nm-settings.xml							\
diff --git a/debian/patches/core-fix-failure-to-configure-routes-due-to-wrong-device-.patch b/debian/patches/core-fix-failure-to-configure-routes-due-to-wrong-device-.patch
deleted file mode 100644
index 02d77c78..00000000
--- a/debian/patches/core-fix-failure-to-configure-routes-due-to-wrong-device-.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Thomas Haller <thaller@redhat.com>
-Date: Mon, 4 Jan 2016 18:54:26 +0100
-Subject: core: fix failure to configure routes due to wrong device-route for
- IPv4 peer-addresses
-
-As in the case of a OpenVPN connection, we might add an address like:
-  10.8.0.58/32 ptp 10.8.0.57
-
-In this case, kernel would automatically add a device-route like:
-  10.8.0.57/32 via 0.0.0.0 dev 32 metric 0 mss 0 src rtprot-kernel scope link pref-src 10.8.0.58
-
-nm_ip4_config_commit() checks all IP addresses to figure out
-the present device-routes. Then the routes are synced by NMRouteManager.
-Due to a bug, we would not consider the peer-address, but the local-address
-and configure a route 10.8.0.58/32, instead of 10.8.0.57/32.
-
-That stays mostly unnoticed, because usually the peer and the local-address are
-in the same subnet, so that there is no difference (/32 is an example of the
-peer-address being in a different subnet).
-
-It also seems that due to a bug fixed by df4e5357521 this issue didn't surface.
-Probably because we would not notice the 10.8.0.57/32 right away and thus
-nm_route_manager_ip4_route_sync() would not wrongly delete it.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=759892
-
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809195
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809494
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809526
-https://bugs.archlinux.org/task/47535
-https://bugzilla.redhat.com/show_bug.cgi?id=1294309
-https://mail.gnome.org/archives/networkmanager-list/2015-December/msg00059.html
-
-(cherry-picked from commit 11aa07ed939193e85516c287a57dee1837242972)
----
- src/nm-ip4-config.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c
-index f625d35..61e29af 100644
---- a/src/nm-ip4-config.c
-+++ b/src/nm-ip4-config.c
-@@ -298,7 +298,8 @@ nm_ip4_config_commit (const NMIP4Config *config, int ifindex, gboolean routes_fu
- 
- 				route.ifindex = ifindex;
- 				route.source = NM_IP_CONFIG_SOURCE_KERNEL;
--				route.network = nm_utils_ip4_address_clear_host_address (addr->address, addr->plen);
-+				route.network = nm_utils_ip4_address_clear_host_address (addr->peer_address ? : addr->address,
-+				                                                         addr->plen);
- 				route.plen = addr->plen;
- 				route.pref_src = addr->address;
- 				route.metric = default_route_metric;
diff --git a/debian/patches/crypto-only-use-gnutls-crypto-API-remove-libgcrypt-d.patch b/debian/patches/crypto-only-use-gnutls-crypto-API-remove-libgcrypt-d.patch
deleted file mode 100644
index 00ba5401..00000000
--- a/debian/patches/crypto-only-use-gnutls-crypto-API-remove-libgcrypt-d.patch
+++ /dev/null
@@ -1,576 +0,0 @@
-From: =?utf-8?q?Ji=C5=99=C3=AD_Klime=C5=A1?= <jklimes@redhat.com>
-Date: Sat, 28 Mar 2015 00:20:55 +0100
-Subject: crypto: only use gnutls crypto API,
- remove libgcrypt dependency (bgo #730294)
-
-We don't need libgcrypt, because gnutls provides an API for encryption and
-hashing. (Anyway gnutls itself now uses nettle instead of libgcrypt).
-
-https://bugzilla.gnome.org/show_bug.cgi?id=730294
-
-(cherry-picked from commit b6f5f030331cc680edbe19ae322e894494d63687)
----
- configure.ac               |  17 ++----
- libnm-core/Makefile.am     |   4 +-
- libnm-core/crypto_gnutls.c | 105 +++++++++++++--------------------
- libnm-util/Makefile.am     |   6 +-
- libnm-util/crypto_gnutls.c | 142 ++++++++++++++++++++-------------------------
- 5 files changed, 112 insertions(+), 162 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 3274fd9..8ca1278 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -566,18 +566,11 @@ if test x"$ac_crypto" = xnss; then
-   AC_DEFINE(HAVE_NSS, 1, [Define if you have NSS])
-   with_nss=yes
- elif test x"$ac_crypto" = xgnutls; then
--  PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2])
--  AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
--  if test x"$LIBGCRYPT_CONFIG" = xno; then
--    AC_MSG_ERROR([gnutls explicitly requested but gcrypt not found on system])
--  else
--    AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have libgnutls])
--    LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
--    LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
--    AC_SUBST(LIBGCRYPT_CFLAGS)
--    AC_SUBST(LIBGCRYPT_LIBS)
--    with_gnutls=yes
--  fi
-+  PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.12])
-+  AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have libgnutls])
-+  AC_SUBST(GNUTLS_CFLAGS)
-+  AC_SUBST(GNUTLS_LIBS)
-+  with_gnutls=yes
- else
-   AC_MSG_ERROR([Please choose either 'nss' or 'gnutls' for certificate and crypto operations])
- fi
-diff --git a/libnm-core/Makefile.am b/libnm-core/Makefile.am
-index d76a48d..5bbd012 100644
---- a/libnm-core/Makefile.am
-+++ b/libnm-core/Makefile.am
-@@ -34,9 +34,9 @@ libnm_core_la_LIBADD =			\
- 	$(UUID_LIBS)
- 
- if WITH_GNUTLS
--AM_CPPFLAGS += $(LIBGCRYPT_CFLAGS) $(GNUTLS_CFLAGS)
-+AM_CPPFLAGS += $(GNUTLS_CFLAGS)
- libnm_core_la_SOURCES += crypto_gnutls.c
--libnm_core_la_LIBADD += $(LIBGCRYPT_LIBS) $(GNUTLS_LIBS)
-+libnm_core_la_LIBADD += $(GNUTLS_LIBS)
- endif
- 
- if WITH_NSS
-diff --git a/libnm-core/crypto_gnutls.c b/libnm-core/crypto_gnutls.c
-index 96dddb9..01291f0 100644
---- a/libnm-core/crypto_gnutls.c
-+++ b/libnm-core/crypto_gnutls.c
-@@ -18,7 +18,7 @@
-  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-  * Boston, MA 02110-1301 USA.
-  *
-- * Copyright 2007 - 2009 Red Hat, Inc.
-+ * Copyright 2007 - 2015 Red Hat, Inc.
-  */
- 
- #include "config.h"
-@@ -26,8 +26,8 @@
- #include <glib.h>
- #include <glib/gi18n-lib.h>
- 
--#include <gcrypt.h>
- #include <gnutls/gnutls.h>
-+#include <gnutls/crypto.h>
- #include <gnutls/x509.h>
- #include <gnutls/pkcs12.h>
- 
-@@ -68,8 +68,9 @@ crypto_decrypt (const char *cipher,
-                 gsize *out_len,
-                 GError **error)
- {
--	gcry_cipher_hd_t ctx;
--	gcry_error_t err;
-+	gnutls_cipher_hd_t ctx;
-+	gnutls_datum_t key_dt, iv_dt;
-+	int err;
- 	int cipher_mech, i;
- 	char *output = NULL;
- 	gboolean success = FALSE;
-@@ -79,13 +80,13 @@ crypto_decrypt (const char *cipher,
- 		return NULL;
- 
- 	if (!strcmp (cipher, CIPHER_DES_EDE3_CBC)) {
--		cipher_mech = GCRY_CIPHER_3DES;
-+		cipher_mech = GNUTLS_CIPHER_3DES_CBC;
- 		real_iv_len = SALT_LEN;
- 	} else if (!strcmp (cipher, CIPHER_DES_CBC)) {
--		cipher_mech = GCRY_CIPHER_DES;
-+		cipher_mech = GNUTLS_CIPHER_DES_CBC;
- 		real_iv_len = SALT_LEN;
- 	} else if (!strcmp (cipher, CIPHER_AES_CBC)) {
--		cipher_mech = GCRY_CIPHER_AES;
-+		cipher_mech = GNUTLS_CIPHER_AES_128_CBC;
- 		real_iv_len = 16;
- 	} else {
- 		g_set_error (error, NM_CRYPTO_ERROR,
-@@ -105,39 +106,26 @@ crypto_decrypt (const char *cipher,
- 
- 	output = g_malloc0 (data_len);
- 
--	err = gcry_cipher_open (&ctx, cipher_mech, GCRY_CIPHER_MODE_CBC, 0);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERROR_DECRYPTION_FAILED,
--		             _("Failed to initialize the decryption cipher context: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
--
--	err = gcry_cipher_setkey (ctx, key, key_len);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERROR_DECRYPTION_FAILED,
--		             _("Failed to set symmetric key for decryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
-+	key_dt.data = (unsigned char *) key;
-+	key_dt.size = key_len;
-+	iv_dt.data = (unsigned char *) iv;
-+	iv_dt.size = iv_len;
- 
--	err = gcry_cipher_setiv (ctx, iv, iv_len);
--	if (err) {
-+	err = gnutls_cipher_init (&ctx, cipher_mech, &key_dt, &iv_dt);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
- 		             NM_CRYPTO_ERROR_DECRYPTION_FAILED,
--		             _("Failed to set IV for decryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             _("Failed to initialize the decryption cipher context: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 
--	err = gcry_cipher_decrypt (ctx, output, data_len, data, data_len);
--	if (err) {
-+	err = gnutls_cipher_decrypt2 (ctx, data, data_len, output, data_len);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
- 		             NM_CRYPTO_ERROR_DECRYPTION_FAILED,
--		             _("Failed to decrypt the private key: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             _("Failed to decrypt the private key: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 	pad_len = output[data_len - 1];
-@@ -174,7 +162,7 @@ out:
- 			output = NULL;
- 		}
- 	}
--	gcry_cipher_close (ctx);
-+	gnutls_cipher_deinit (ctx);
- 	return output;
- }
- 
-@@ -189,8 +177,9 @@ crypto_encrypt (const char *cipher,
-                 gsize *out_len,
-                 GError **error)
- {
--	gcry_cipher_hd_t ctx;
--	gcry_error_t err;
-+	gnutls_cipher_hd_t ctx;
-+	gnutls_datum_t key_dt, iv_dt;
-+	int err;
- 	int cipher_mech;
- 	char *output = NULL;
- 	gboolean success = FALSE;
-@@ -203,10 +192,10 @@ crypto_encrypt (const char *cipher,
- 		return NULL;
- 
- 	if (!strcmp (cipher, CIPHER_DES_EDE3_CBC)) {
--		cipher_mech = GCRY_CIPHER_3DES;
-+		cipher_mech = GNUTLS_CIPHER_3DES_CBC;
- 		salt_len = SALT_LEN;
- 	} else if (!strcmp (cipher, CIPHER_AES_CBC)) {
--		cipher_mech = GCRY_CIPHER_AES;
-+		cipher_mech = GNUTLS_CIPHER_AES_128_CBC;
- 		salt_len = iv_len;
- 	} else {
- 		g_set_error (error, NM_CRYPTO_ERROR,
-@@ -229,40 +218,26 @@ crypto_encrypt (const char *cipher,
- 
- 	output = g_malloc0 (output_len);
- 
--	err = gcry_cipher_open (&ctx, cipher_mech, GCRY_CIPHER_MODE_CBC, 0);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERROR_ENCRYPTION_FAILED,
--		             _("Failed to initialize the encryption cipher context: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
--
--	err = gcry_cipher_setkey (ctx, key, key_len);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERROR_ENCRYPTION_FAILED,
--		             _("Failed to set symmetric key for encryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
-+	key_dt.data = (unsigned char *) key;
-+	key_dt.size = key_len;
-+	iv_dt.data = (unsigned char *) iv;
-+	iv_dt.size = iv_len;
- 
--	/* gcrypt only wants 8 bytes of the IV (same as the DES block length) */
--	err = gcry_cipher_setiv (ctx, iv, salt_len);
--	if (err) {
-+	err = gnutls_cipher_init (&ctx, cipher_mech, &key_dt, &iv_dt);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
- 		             NM_CRYPTO_ERROR_ENCRYPTION_FAILED,
--		             _("Failed to set IV for encryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             _("Failed to initialize the encryption cipher context: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 
--	err = gcry_cipher_encrypt (ctx, output, output_len, padded_buf, padded_buf_len);
--	if (err) {
-+	err = gnutls_cipher_encrypt2 (ctx, padded_buf, padded_buf_len, output, output_len);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
- 		             NM_CRYPTO_ERROR_ENCRYPTION_FAILED,
--		             _("Failed to encrypt the data: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             _("Failed to encrypt the data: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 
-@@ -284,7 +259,7 @@ out:
- 			output = NULL;
- 		}
- 	}
--	gcry_cipher_close (ctx);
-+	gnutls_cipher_deinit (ctx);
- 	return output;
- }
- 
-@@ -449,6 +424,6 @@ crypto_randomize (void *buffer, gsize buffer_len, GError **error)
- 	if (!crypto_init (error))
- 		return FALSE;
- 
--	gcry_randomize (buffer, buffer_len, GCRY_STRONG_RANDOM);
-+	gnutls_rnd (GNUTLS_RND_RANDOM, buffer, buffer_len);
- 	return TRUE;
- }
-diff --git a/libnm-util/Makefile.am b/libnm-util/Makefile.am
-index f83780d..cc0e672 100644
---- a/libnm-util/Makefile.am
-+++ b/libnm-util/Makefile.am
-@@ -14,7 +14,7 @@ AM_CPPFLAGS = \
- 	$(UUID_CFLAGS)
- 
- if WITH_GNUTLS
--AM_CPPFLAGS += $(LIBGCRYPT_CFLAGS) $(GNUTLS_CFLAGS)
-+AM_CPPFLAGS += $(GNUTLS_CFLAGS)
- endif
- 
- if WITH_NSS
-@@ -121,7 +121,7 @@ libnm_util_la_LDFLAGS = -Wl,--version-script=$(SYMBOL_VIS_FILE) \
- 
- if WITH_GNUTLS
- libnm_util_la_SOURCES += crypto_gnutls.c
--libnm_util_la_LIBADD += $(LIBGCRYPT_LIBS) $(GNUTLS_LIBS)
-+libnm_util_la_LIBADD += $(GNUTLS_LIBS)
- endif
- 
- if WITH_NSS
-@@ -145,7 +145,7 @@ libtest_crypto_la_LIBADD = \
- 
- if WITH_GNUTLS
- libtest_crypto_la_SOURCES += crypto_gnutls.c
--libtest_crypto_la_LIBADD += $(LIBGCRYPT_LIBS) $(GNUTLS_LIBS)
-+libtest_crypto_la_LIBADD += $(GNUTLS_LIBS)
- endif
- 
- if WITH_NSS
-diff --git a/libnm-util/crypto_gnutls.c b/libnm-util/crypto_gnutls.c
-index 3bec24a..f61ad86 100644
---- a/libnm-util/crypto_gnutls.c
-+++ b/libnm-util/crypto_gnutls.c
-@@ -18,7 +18,7 @@
-  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-  * Boston, MA 02110-1301 USA.
-  *
-- * Copyright 2007 - 2009 Red Hat, Inc.
-+ * Copyright 2007 - 2015 Red Hat, Inc.
-  */
- 
- #include "config.h"
-@@ -26,8 +26,8 @@
- #include <glib.h>
- #include <glib/gi18n-lib.h>
- 
--#include <gcrypt.h>
- #include <gnutls/gnutls.h>
-+#include <gnutls/crypto.h>
- #include <gnutls/x509.h>
- #include <gnutls/pkcs12.h>
- 
-@@ -65,8 +65,8 @@ crypto_md5_hash (const char *salt,
-                  gsize buflen,
-                  GError **error)
- {
--	gcry_md_hd_t ctx;
--	gcry_error_t err;
-+	gnutls_hash_hd_t ctx;
-+	int err;
- 	int nkey = buflen;
- 	const gsize digest_len = 16;
- 	int count = 0;
-@@ -81,26 +81,27 @@ crypto_md5_hash (const char *salt,
- 	g_return_val_if_fail (buffer != NULL, FALSE);
- 	g_return_val_if_fail (buflen > 0, FALSE);
- 
--	err = gcry_md_open (&ctx, GCRY_MD_MD5, 0);
--	if (err) {
-+	if (gnutls_hash_get_len (GNUTLS_DIG_MD5) > MD5_HASH_LEN) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
- 		             NM_CRYPTO_ERR_MD5_INIT_FAILED,
--		             _("Failed to initialize the MD5 engine: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             _("Hash length too long (%d > %d)."),
-+		             gnutls_hash_get_len (GNUTLS_DIG_MD5), MD5_HASH_LEN);
- 		return FALSE;
- 	}
- 
- 	while (nkey > 0) {
- 		int i = 0;
- 
-+		err = gnutls_hash_init (&ctx, GNUTLS_DIG_MD5);
-+		if (err < 0)
-+			goto error;
-+
- 		if (count++)
--			gcry_md_write (ctx, digest, digest_len);
--		gcry_md_write (ctx, password, password_len);
-+			gnutls_hash (ctx, digest, digest_len);
-+		gnutls_hash (ctx, password, password_len);
- 		if (salt)
--			gcry_md_write (ctx, salt, SALT_LEN); /* Only use 8 bytes of salt */
--		gcry_md_final (ctx);
--		memcpy (digest, gcry_md_read (ctx, 0), digest_len);
--		gcry_md_reset (ctx);
-+			gnutls_hash (ctx, salt, SALT_LEN); /* Only use 8 bytes of salt */
-+		gnutls_hash_deinit (ctx, digest);
- 
- 		while (nkey && (i < digest_len)) {
- 			*(p++) = digest[i++];
-@@ -109,8 +110,14 @@ crypto_md5_hash (const char *salt,
- 	}
- 
- 	memset (digest, 0, sizeof (digest));
--	gcry_md_close (ctx);
- 	return TRUE;
-+error:
-+	memset (digest, 0, sizeof (digest));
-+	g_set_error (error, NM_CRYPTO_ERROR,
-+	             NM_CRYPTO_ERR_MD5_INIT_FAILED,
-+	             _("Failed to initialize the MD5 engine: %s (%s)"),
-+	             gnutls_strerror_name (err), gnutls_strerror (err));
-+	return FALSE;
- }
- 
- char *
-@@ -124,21 +131,22 @@ crypto_decrypt (const char *cipher,
-                 gsize *out_len,
-                 GError **error)
- {
--	gcry_cipher_hd_t ctx;
--	gcry_error_t err;
-+	gnutls_cipher_hd_t ctx;
-+	gnutls_datum_t key_dt, iv_dt;
-+	int err;
- 	int cipher_mech, i;
- 	char *output = NULL;
- 	gboolean success = FALSE;
- 	gsize pad_len, real_iv_len;
- 
- 	if (!strcmp (cipher, CIPHER_DES_EDE3_CBC)) {
--		cipher_mech = GCRY_CIPHER_3DES;
-+		cipher_mech = GNUTLS_CIPHER_3DES_CBC;
- 		real_iv_len = SALT_LEN;
- 	} else if (!strcmp (cipher, CIPHER_DES_CBC)) {
--		cipher_mech = GCRY_CIPHER_DES;
-+		cipher_mech = GNUTLS_CIPHER_DES_CBC;
- 		real_iv_len = SALT_LEN;
- 	} else if (!strcmp (cipher, CIPHER_AES_CBC)) {
--		cipher_mech = GCRY_CIPHER_AES;
-+		cipher_mech = GNUTLS_CIPHER_AES_128_CBC;
- 		real_iv_len = 16;
- 	} else {
- 		g_set_error (error, NM_CRYPTO_ERROR,
-@@ -158,39 +166,26 @@ crypto_decrypt (const char *cipher,
- 
- 	output = g_malloc0 (data->len);
- 
--	err = gcry_cipher_open (&ctx, cipher_mech, GCRY_CIPHER_MODE_CBC, 0);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERR_CIPHER_INIT_FAILED,
--		             _("Failed to initialize the decryption cipher context: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
--
--	err = gcry_cipher_setkey (ctx, key, key_len);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERR_CIPHER_SET_KEY_FAILED,
--		             _("Failed to set symmetric key for decryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
-+	key_dt.data = (unsigned char *) key;
-+	key_dt.size = key_len;
-+	iv_dt.data = (unsigned char *) iv;
-+	iv_dt.size = iv_len;
- 
--	err = gcry_cipher_setiv (ctx, iv, iv_len);
--	if (err) {
-+	err = gnutls_cipher_init (&ctx, cipher_mech, &key_dt, &iv_dt);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERR_CIPHER_SET_IV_FAILED,
--		             _("Failed to set IV for decryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             NM_CRYPTO_ERR_CIPHER_INIT_FAILED,
-+		             _("Failed to initialize the decryption cipher context: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 
--	err = gcry_cipher_decrypt (ctx, output, data->len, data->data, data->len);
--	if (err) {
-+	err = gnutls_cipher_decrypt2 (ctx, data->data, data->len, output, data->len);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
- 		             NM_CRYPTO_ERR_CIPHER_DECRYPT_FAILED,
--		             _("Failed to decrypt the private key: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             _("Failed to decrypt the private key: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 	pad_len = output[data->len - 1];
-@@ -227,7 +222,7 @@ out:
- 			output = NULL;
- 		}
- 	}
--	gcry_cipher_close (ctx);
-+	gnutls_cipher_deinit (ctx);
- 	return output;
- }
- 
-@@ -241,8 +236,9 @@ crypto_encrypt (const char *cipher,
-                 gsize *out_len,
-                 GError **error)
- {
--	gcry_cipher_hd_t ctx;
--	gcry_error_t err;
-+	gnutls_cipher_hd_t ctx;
-+	gnutls_datum_t key_dt, iv_dt;
-+	int err;
- 	int cipher_mech;
- 	char *output = NULL;
- 	gboolean success = FALSE;
-@@ -252,10 +248,10 @@ crypto_encrypt (const char *cipher,
- 	gsize salt_len;
- 
- 	if (!strcmp (cipher, CIPHER_DES_EDE3_CBC)) {
--		cipher_mech = GCRY_CIPHER_3DES;
-+		cipher_mech = GNUTLS_CIPHER_3DES_CBC;
- 		salt_len = SALT_LEN;
- 	} else if (!strcmp (cipher, CIPHER_AES_CBC)) {
--		cipher_mech = GCRY_CIPHER_AES;
-+		cipher_mech = GNUTLS_CIPHER_AES_128_CBC;
- 		salt_len = iv_len;
- 	} else {
- 		g_set_error (error, NM_CRYPTO_ERROR,
-@@ -278,40 +274,26 @@ crypto_encrypt (const char *cipher,
- 
- 	output = g_malloc0 (output_len);
- 
--	err = gcry_cipher_open (&ctx, cipher_mech, GCRY_CIPHER_MODE_CBC, 0);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERR_CIPHER_INIT_FAILED,
--		             _("Failed to initialize the encryption cipher context: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
--
--	err = gcry_cipher_setkey (ctx, key, key_len);
--	if (err) {
--		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERR_CIPHER_SET_KEY_FAILED,
--		             _("Failed to set symmetric key for encryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
--		goto out;
--	}
-+	key_dt.data = (unsigned char *) key;
-+	key_dt.size = key_len;
-+	iv_dt.data = (unsigned char *) iv;
-+	iv_dt.size = iv_len;
- 
--	/* gcrypt only wants 8 bytes of the IV (same as the DES block length) */
--	err = gcry_cipher_setiv (ctx, iv, salt_len);
--	if (err) {
-+	err = gnutls_cipher_init (&ctx, cipher_mech, &key_dt, &iv_dt);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
--		             NM_CRYPTO_ERR_CIPHER_SET_IV_FAILED,
--		             _("Failed to set IV for encryption: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             NM_CRYPTO_ERR_CIPHER_INIT_FAILED,
-+		             _("Failed to initialize the encryption cipher context: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 
--	err = gcry_cipher_encrypt (ctx, output, output_len, padded_buf, padded_buf_len);
--	if (err) {
-+	err = gnutls_cipher_encrypt2 (ctx, padded_buf, padded_buf_len, output, output_len);
-+	if (err < 0) {
- 		g_set_error (error, NM_CRYPTO_ERROR,
- 		             NM_CRYPTO_ERR_CIPHER_DECRYPT_FAILED,
--		             _("Failed to encrypt the data: %s / %s."),
--		             gcry_strsource (err), gcry_strerror (err));
-+		             _("Failed to encrypt the data: %s (%s)"),
-+		             gnutls_strerror_name (err), gnutls_strerror (err));
- 		goto out;
- 	}
- 
-@@ -333,7 +315,7 @@ out:
- 			output = NULL;
- 		}
- 	}
--	gcry_cipher_close (ctx);
-+	gnutls_cipher_deinit (ctx);
- 	return output;
- }
- 
-@@ -484,6 +466,6 @@ crypto_verify_pkcs8 (const GByteArray *data,
- gboolean
- crypto_randomize (void *buffer, gsize buffer_len, GError **error)
- {
--	gcry_randomize (buffer, buffer_len, GCRY_STRONG_RANDOM);
-+	gnutls_rnd (GNUTLS_RND_RANDOM, buffer, buffer_len);
- 	return TRUE;
- }
diff --git a/debian/patches/fix-arping-path.patch b/debian/patches/fix-arping-path.patch
index 458a554a..d71f98e1 100644
--- a/debian/patches/fix-arping-path.patch
+++ b/debian/patches/fix-arping-path.patch
@@ -15,10 +15,10 @@ Closes: #755039
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
-index bb39ca5..c7c4ddd 100644
+index 93782a4..81487e6 100644
 --- a/src/devices/nm-device.c
 +++ b/src/devices/nm-device.c
-@@ -5748,7 +5748,7 @@ send_arps (NMDevice *self, const char *mode_arg)
+@@ -6458,7 +6458,7 @@ send_arps (NMDevice *self, const char *mode_arg)
  	if (num == 0)
  		return;
  
diff --git a/debian/patches/series b/debian/patches/series
index f3e09620..187f899b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,14 +1,9 @@
 Debian-specific-tweaks-for-NetworkManager-systemd-se.patch
 Force-online-state-with-unmanaged-devices.patch
 Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch
-Use-symlinks-for-nmtui.patch
-Use-the-correct-path-when-calling-dnssec-trigger-scr.patch
 fix-arping-path.patch
 Check-at-runtime-whether-to-start-ModemManager.patch
 build-install-nm-settings-ifcfg-rh.5-man-page-condit.patch
 Don-t-make-NetworkManager-D-Bus-activatable.patch
 Don-t-block-network.target-on-NetworkManager-wait-on.patch
 Fix-iscsiadm-path.patch
-crypto-only-use-gnutls-crypto-API-remove-libgcrypt-d.patch
-core-fix-failure-to-configure-routes-due-to-wrong-device-.patch
-Revert-ppp-manager-don-t-use-kernel-pppoe-rh-1034860-rh-1.patch