tags 783525 patch thanks The attached patch against network-manager 0.9.10.0-7 backports upstream's commit to switch from user-mode PPPoE client back to kernel PPPoE. The 'with-pppoe' configure option can be dropped as well:
--- a/network-manager-0.9.10.0/debian/rules +++ b/network-manager-0.9.10.0/debian/rules @@ -18,7 +18,6 @@ --libexecdir=/usr/lib/NetworkManager \ --with-pppd-plugin-dir=/usr/lib/pppd/2.4.6 \ --with-pppd=/usr/sbin/pppd \ - --with-pppoe=/usr/sbin/pppoe \ --with-resolvconf=/sbin/resolvconf \ --with-dhclient=/sbin/dhclient \ --with-iptables=/sbin/iptables \
Description: Revert "ppp-manager: don't use kernel pppoe" Backport upstream's commit to switch from user-mode PPPoE client back to kernel PPPoE. Author: Graham Inggs <gra...@nerve.org.za> Origin: upstream, http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=474ba5ab0eac Bug: https://bugzilla.gnome.org/show_bug.cgi?id=742939 Bug-Debian: https://bugs.debian.org/783525 Last-Update: 2015-04-27 --- a/configure.ac +++ b/configure.ac @@ -556,15 +556,6 @@ 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 --- a/src/ppp-manager/nm-ppp-manager.c +++ b/src/ppp-manager/nm-ppp-manager.c @@ -655,14 +655,6 @@ NULL }; -static const char *pppoe_binary_paths[] = { - PPPOE_PATH, - "/usr/local/sbin/pppoe", - "/usr/sbin/pppoe", - "/sbin/pppoe", - NULL -}; - static inline const char * nm_find_binary (const char *paths[]) { @@ -796,7 +788,7 @@ GError **err) { NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self); - const char *pppd_binary, *pppoe_binary = NULL; + const char *pppd_binary = NULL; NMCmdLine *cmd; gboolean ppp_debug; @@ -809,16 +801,6 @@ return NULL; } - if ( pppoe - || (adsl && strcmp (nm_setting_adsl_get_protocol (adsl), NM_SETTING_ADSL_PROTOCOL_PPPOE))) { - pppoe_binary = nm_find_binary (pppoe_binary_paths); - if (!pppoe_binary) { - g_set_error (err, NM_PPP_MANAGER_ERROR, NM_PPP_MANAGER_ERROR, - "Could not find pppoe binary."); - return NULL; - } - } - /* Create pppd command line */ cmd = nm_cmd_line_new (); nm_cmd_line_add_string (cmd, pppd_binary); @@ -846,30 +828,22 @@ } 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); @@ -892,14 +866,9 @@ 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");