summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-dialup/rp-pppoe')
-rw-r--r--net-dialup/rp-pppoe/ChangeLog14
-rw-r--r--net-dialup/rp-pppoe/files/rp-pppoe-3.10-autotools.patch106
-rw-r--r--net-dialup/rp-pppoe/files/rp-pppoe-3.10-gentoo-netscripts.patch150
-rw-r--r--net-dialup/rp-pppoe/files/rp-pppoe-3.10-linux-headers.patch31
-rw-r--r--net-dialup/rp-pppoe/files/rp-pppoe-3.10-plugin-options.patch33
-rw-r--r--net-dialup/rp-pppoe/files/rp-pppoe-3.10-session-offset.patch21
-rw-r--r--net-dialup/rp-pppoe/files/rp-pppoe-3.10-username-charset.patch58
-rw-r--r--net-dialup/rp-pppoe/rp-pppoe-3.10.ebuild82
-rw-r--r--net-dialup/rp-pppoe/rp-pppoe-3.8-r2.ebuild5
9 files changed, 497 insertions, 3 deletions
diff --git a/net-dialup/rp-pppoe/ChangeLog b/net-dialup/rp-pppoe/ChangeLog
index 21ae11f3fa3b..54ae99746654 100644
--- a/net-dialup/rp-pppoe/ChangeLog
+++ b/net-dialup/rp-pppoe/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for net-dialup/rp-pppoe
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-dialup/rp-pppoe/ChangeLog,v 1.95 2008/06/30 18:50:32 bluebird Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-dialup/rp-pppoe/ChangeLog,v 1.96 2008/06/30 21:40:25 mrness Exp $
+
+*rp-pppoe-3.10 (30 Jun 2008)
+
+ 30 Jun 2008; Alin Năstac <mrness@gentoo.org>
+ +files/rp-pppoe-3.10-autotools.patch,
+ +files/rp-pppoe-3.10-gentoo-netscripts.patch,
+ +files/rp-pppoe-3.10-linux-headers.patch,
+ +files/rp-pppoe-3.10-plugin-options.patch,
+ +files/rp-pppoe-3.10-session-offset.patch,
+ +files/rp-pppoe-3.10-username-charset.patch, rp-pppoe-3.8-r2.ebuild,
+ +rp-pppoe-3.10.ebuild:
+ Version bump (#230013). Depend on <sys-kernel/linux-headers-2.6.24 (#227197).
30 Jun 2008; Friedrich Oslage <bluebird@gentoo.org>
rp-pppoe-3.8-r2.ebuild:
diff --git a/net-dialup/rp-pppoe/files/rp-pppoe-3.10-autotools.patch b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-autotools.patch
new file mode 100644
index 000000000000..66a6e9de9bcb
--- /dev/null
+++ b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-autotools.patch
@@ -0,0 +1,106 @@
+diff -Nru rp-pppoe-3.10.orig/gui/Makefile.in rp-pppoe-3.10/gui/Makefile.in
+--- rp-pppoe-3.10.orig/gui/Makefile.in 2008-06-30 16:00:41.000000000 +0200
++++ rp-pppoe-3.10/gui/Makefile.in 2008-06-30 22:30:56.000000000 +0200
+@@ -46,7 +46,7 @@
+ -mkdir -p $(DESTDIR)$(sbindir)
+ -mkdir -p $(DESTDIR)$(bindir)
+ -mkdir -p $(DESTDIR)/etc/ppp/rp-pppoe-gui
+- $(install) -m 4755 -s pppoe-wrapper $(DESTDIR)$(sbindir)
++ $(install) -m 4755 pppoe-wrapper $(DESTDIR)$(sbindir)
+ $(install) -m 755 tkpppoe $(DESTDIR)$(bindir)
+ -mkdir -p $(DESTDIR)$(mandir)/man1
+ $(install) -m 644 pppoe-wrapper.1 $(DESTDIR)$(mandir)/man1
+diff -Nru rp-pppoe-3.10.orig/src/configure.in rp-pppoe-3.10/src/configure.in
+--- rp-pppoe-3.10.orig/src/configure.in 2008-06-30 16:00:42.000000000 +0200
++++ rp-pppoe-3.10/src/configure.in 2008-06-30 22:29:53.000000000 +0200
+@@ -45,7 +45,7 @@
+ AC_MSG_RESULT($ac_cv_struct_sockaddr_ll)
+
+ if test "$ac_cv_struct_sockaddr_ll" = yes ; then
+-AC_DEFINE(HAVE_STRUCT_SOCKADDR_LL)
++AC_DEFINE(HAVE_STRUCT_SOCKADDR_LL, 1, [Define if you have struct sockaddr_ll])
+ fi
+
+ dnl Check for N_HDLC line discipline
+@@ -56,7 +56,7 @@
+ ac_cv_n_hdlc=no)
+ AC_MSG_RESULT($ac_cv_n_hdlc)
+ if test "$ac_cv_n_hdlc" = yes ; then
+-AC_DEFINE(HAVE_N_HDLC)
++AC_DEFINE(HAVE_N_HDLC, 1, [Define if you have the N_HDLC line discipline in linux/termios.h])
+ fi
+
+ AC_ARG_ENABLE(plugin, [ --enable-plugin=pppd_src_path build pppd plugin], ac_cv_pluginpath=$enableval, ac_cv_pluginpath=no)
+@@ -104,7 +104,7 @@
+ if test "$ac_cv_header_linux_if_pppox_h" = yes ; then
+ if test "$ac_cv_pluginpath" != no ; then
+ LINUX_KERNELMODE_PLUGIN=rp-pppoe.so
+- AC_DEFINE(HAVE_LINUX_KERNEL_PPPOE)
++ AC_DEFINE(HAVE_LINUX_KERNEL_PPPOE, 1, [Define if you have kernel-mode PPPoE in Linux file])
+ PPPD_INCDIR=$ac_cv_pluginpath
+ fi
+ fi
+@@ -114,7 +114,7 @@
+ fi
+
+ if test "$ac_cv_debugging" = "yes" ; then
+- AC_DEFINE(DEBUGGING_ENABLED)
++ AC_DEFINE(DEBUGGING_ENABLED, 1, [Define to include debugging code])
+ fi
+
+ AC_SUBST(LINUX_KERNELMODE_PLUGIN)
+@@ -154,15 +154,15 @@
+ AC_MSG_CHECKING(for Linux 2.4.X kernel-mode PPPoE support)
+ AC_CACHE_VAL(ac_cv_linux_kernel_pppoe,[
+ if test "`uname -s`" = "Linux" ; then
+-if test $cross_compiling = "no"; then
++dnl if test $cross_compiling = "no"; then
+
+ dnl Do a bunch of modprobes. Can't hurt; might help.
+-modprobe ppp_generic > /dev/null 2>&1
+-modprobe ppp_async > /dev/null 2>&1
+-modprobe n_hdlc > /dev/null 2>&1
+-modprobe ppp_synctty > /dev/null 2>&1
+-modprobe pppoe > /dev/null 2>&1
+-fi
++dnl modprobe ppp_generic > /dev/null 2>&1
++dnl modprobe ppp_async > /dev/null 2>&1
++dnl modprobe n_hdlc > /dev/null 2>&1
++dnl modprobe ppp_synctty > /dev/null 2>&1
++dnl modprobe pppoe > /dev/null 2>&1
++dnl fi
+ AC_TRY_RUN([#include <sys/socket.h>
+ #include <net/ethernet.h>
+ #include <linux/if.h>
+@@ -258,7 +258,7 @@
+
+ if test "$rpppoe_cv_pack_bitfields" = "rev" ; then
+ AC_MSG_RESULT(reversed)
+- AC_DEFINE(PACK_BITFIELDS_REVERSED)
++ AC_DEFINE(PACK_BITFIELDS_REVERSED, 1, [Define if bitfields are packed in reverse order])
+ else
+ AC_MSG_RESULT(normal)
+ fi
+diff -Nru rp-pppoe-3.10.orig/src/plugin.c rp-pppoe-3.10/src/plugin.c
+--- rp-pppoe-3.10.orig/src/plugin.c 2008-06-30 16:00:43.000000000 +0200
++++ rp-pppoe-3.10/src/plugin.c 2008-06-30 22:27:18.000000000 +0200
+@@ -27,7 +27,6 @@
+ static char const RCSID[] =
+ "$Id: rp-pppoe-3.10-autotools.patch,v 1.1 2008/06/30 21:40:26 mrness Exp $";
+
+-#define _GNU_SOURCE 1
+ #include "pppoe.h"
+
+ #include "pppd/pppd.h"
+diff -Nru rp-pppoe-3.10.orig/src/relay.c rp-pppoe-3.10/src/relay.c
+--- rp-pppoe-3.10.orig/src/relay.c 2008-06-30 16:00:43.000000000 +0200
++++ rp-pppoe-3.10/src/relay.c 2008-06-30 22:27:18.000000000 +0200
+@@ -17,8 +17,6 @@
+ static char const RCSID[] =
+ "$Id: rp-pppoe-3.10-autotools.patch,v 1.1 2008/06/30 21:40:26 mrness Exp $";
+
+-#define _GNU_SOURCE 1 /* For SA_RESTART */
+-
+ #include "relay.h"
+
+ #include <signal.h>
diff --git a/net-dialup/rp-pppoe/files/rp-pppoe-3.10-gentoo-netscripts.patch b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-gentoo-netscripts.patch
new file mode 100644
index 000000000000..f45557a0d6f0
--- /dev/null
+++ b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-gentoo-netscripts.patch
@@ -0,0 +1,150 @@
+diff -Nru rp-pppoe-3.10.orig/configs/pppoe.conf rp-pppoe-3.10/configs/pppoe.conf
+--- rp-pppoe-3.10.orig/configs/pppoe.conf 2008-06-30 16:00:42.000000000 +0200
++++ rp-pppoe-3.10/configs/pppoe.conf 2008-06-30 22:22:32.000000000 +0200
+@@ -21,6 +21,9 @@
+ # When you configure a variable, DO NOT leave spaces around the "=" sign.
+
+ # Ethernet card connected to DSL modem
++#
++# NB: Gentoo overrides ETH when pppoe-start is called from the
++# networking scripts. This setting has no effect in that case.
+ ETH=eth1
+
+ # PPPoE user name. You may have to supply "@provider.com" Sympatico
+@@ -86,8 +89,10 @@
+ # $PIDFILE contains PID of pppoe-connect script
+ # $PIDFILE.pppoe contains PID of pppoe process
+ # $PIDFILE.pppd contains PID of pppd process
+-CF_BASE=`basename $CONFIG`
+-PIDFILE="/var/run/$CF_BASE-pppoe.pid"
++#
++# NB: Gentoo overrides PIDFILE when pppoe-start is run from the
++# networking scripts. This setting has no effect in that case.
++PIDFILE="/var/run/rp-pppoe.pid"
+
+ # Do you want to use synchronous PPP? "yes" or "no". "yes" is much
+ # easier on CPU usage, but may not work for you. It is safer to use
+diff -Nru rp-pppoe-3.10.orig/scripts/pppoe-connect.in rp-pppoe-3.10/scripts/pppoe-connect.in
+--- rp-pppoe-3.10.orig/scripts/pppoe-connect.in 2008-06-30 16:00:42.000000000 +0200
++++ rp-pppoe-3.10/scripts/pppoe-connect.in 2008-06-30 22:22:32.000000000 +0200
+@@ -62,12 +62,17 @@
+ ;;
+ esac
+
+-if test ! -f "$CONFIG" -o ! -r "$CONFIG" ; then
++# In Gentoo, CONFIG is a named pipe when pppoe is started by the
++# network scripts. Testing -r is allowed; testing -f is not.
++if test ! -r "$CONFIG" ; then
+ echo "$0: Cannot read configuration file '$CONFIG'" >& 2
+ exit 1
+ fi
+-export CONFIG
+-. $CONFIG
++
++# Read the named pipe (/dev/fd/foo) into a variable so we can use it
++# again later (since reading once from the pipe will exhaust it)
++CONFREAD=$(<$CONFIG)
++eval "$CONFREAD"
+
+ PPPOE_PIDFILE="$PIDFILE.pppoe"
+ PPPD_PIDFILE="$PIDFILE.pppd"
+diff -Nru rp-pppoe-3.10.orig/scripts/pppoe-start.in rp-pppoe-3.10/scripts/pppoe-start.in
+--- rp-pppoe-3.10.orig/scripts/pppoe-start.in 2008-06-30 16:00:42.000000000 +0200
++++ rp-pppoe-3.10/scripts/pppoe-start.in 2008-06-30 22:22:32.000000000 +0200
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ # @configure_input@
+ #***********************************************************************
+ #
+@@ -113,12 +113,17 @@
+ ;;
+ esac
+
+-if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then
++# In Gentoo, CONFIG is a named pipe when pppoe is started by the
++# network scripts. Testing -r is allowed; testing -f is not.
++if [ ! -r "$CONFIG" ] ; then
+ $ECHO "$ME: Cannot read configuration file '$CONFIG'" >& 2
+ exit 1
+ fi
+-export CONFIG
+-. $CONFIG
++
++# Read the named pipe (/dev/fd/foo) into a variable so we can use it
++# again later (since reading once from the pipe will exhaust it)
++CONFREAD=$(<$CONFIG)
++eval "$CONFREAD"
+
+ # Check for command-line overriding of ETH and USER
+ case "$#" in
+@@ -145,11 +150,11 @@
+
+ # Start the connection in the background unless we're debugging
+ if [ "$DEBUG" != "" ] ; then
+- $CONNECT "$@"
++ $CONNECT <(echo "$CONFREAD")
+ exit 0
+ fi
+
+-$CONNECT "$@" > /dev/null 2>&1 &
++$CONNECT <(echo "$CONFREAD") >/dev/null 2>&1 &
+ CONNECT_PID=$!
+
+ if [ "$CONNECT_TIMEOUT" = "" -o "$CONNECT_TIMEOUT" = 0 ] ; then
+@@ -164,7 +169,7 @@
+ # Monitor connection
+ TIME=0
+ while [ true ] ; do
+- @sbindir@/pppoe-status $CONFIG > /dev/null 2>&1
++ @sbindir@/pppoe-status <(echo "$CONFREAD") >/dev/null 2>&1
+
+ # Looks like the interface came up
+ if [ $? = 0 ] ; then
+diff -Nru rp-pppoe-3.10.orig/scripts/pppoe-status rp-pppoe-3.10/scripts/pppoe-status
+--- rp-pppoe-3.10.orig/scripts/pppoe-status 2008-06-30 16:00:42.000000000 +0200
++++ rp-pppoe-3.10/scripts/pppoe-status 2008-06-30 22:22:32.000000000 +0200
+@@ -28,12 +28,17 @@
+ ;;
+ esac
+
+-if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then
++# In Gentoo, CONFIG is a named pipe when pppoe is started by the
++# network scripts. Testing -r is allowed; testing -f is not.
++if [ ! -r "$CONFIG" ] ; then
+ echo "$0: Cannot read configuration file '$CONFIG'" >& 2
+ exit 1
+ fi
+
+-. $CONFIG
++# Read the named pipe (/dev/fd/foo) into a variable so we can use it
++# again later (since reading once from the pipe will exhaust it)
++CONFREAD=$(<$CONFIG)
++eval "$CONFREAD"
+
+ PPPOE_PIDFILE="$PIDFILE.pppoe"
+ PPPD_PIDFILE="$PIDFILE.pppd"
+diff -Nru rp-pppoe-3.10.orig/scripts/pppoe-stop.in rp-pppoe-3.10/scripts/pppoe-stop.in
+--- rp-pppoe-3.10.orig/scripts/pppoe-stop.in 2008-06-30 16:00:42.000000000 +0200
++++ rp-pppoe-3.10/scripts/pppoe-stop.in 2008-06-30 22:22:32.000000000 +0200
+@@ -31,12 +31,17 @@
+ CONFIG=/etc/ppp/pppoe.conf
+ fi
+
+-if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then
++# In Gentoo, CONFIG is a named pipe when pppoe is started by the
++# network scripts. Testing -r is allowed; testing -f is not.
++if [ ! -r "$CONFIG" ] ; then
+ echo "$ME: Cannot read configuration file '$CONFIG'" >& 2
+ exit 1
+ fi
+-export CONFIG
+-. $CONFIG
++
++# Read the named pipe (/dev/fd/foo) into a variable so we can use it
++# again later (since reading once from the pipe will exhaust it)
++CONFREAD=$(<$CONFIG)
++eval "$CONFREAD"
+
+ PPPOE_PIDFILE="$PIDFILE.pppoe"
+ PPPD_PIDFILE="$PIDFILE.pppd"
diff --git a/net-dialup/rp-pppoe/files/rp-pppoe-3.10-linux-headers.patch b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-linux-headers.patch
new file mode 100644
index 000000000000..47e504bf7835
--- /dev/null
+++ b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-linux-headers.patch
@@ -0,0 +1,31 @@
+diff -Nru rp-pppoe-3.10.orig/src/pppoe.h rp-pppoe-3.10/src/pppoe.h
+--- rp-pppoe-3.10.orig/src/pppoe.h 2008-06-30 16:00:43.000000000 +0200
++++ rp-pppoe-3.10/src/pppoe.h 2008-06-30 23:25:54.000000000 +0200
+@@ -19,6 +19,13 @@
+
+ extern int IsSetID;
+
++/* Ugly header files on some Linux boxes... */
++#if defined(HAVE_LINUX_IF_H)
++#include <linux/if.h>
++#elif defined(HAVE_NET_IF_H)
++#include <net/if.h>
++#endif
++
+ #if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
+ #define _POSIX_SOURCE 1 /* For sigaction defines */
+ #endif
+@@ -51,13 +58,6 @@
+ #include <sys/socket.h>
+ #endif
+
+-/* Ugly header files on some Linux boxes... */
+-#if defined(HAVE_LINUX_IF_H)
+-#include <linux/if.h>
+-#elif defined(HAVE_NET_IF_H)
+-#include <net/if.h>
+-#endif
+-
+ #ifdef HAVE_NET_IF_TYPES_H
+ #include <net/if_types.h>
+ #endif
diff --git a/net-dialup/rp-pppoe/files/rp-pppoe-3.10-plugin-options.patch b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-plugin-options.patch
new file mode 100644
index 000000000000..d1593392ba23
--- /dev/null
+++ b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-plugin-options.patch
@@ -0,0 +1,33 @@
+diff -Nru rp-pppoe-3.10.orig/configs/pppoe.conf rp-pppoe-3.10/configs/pppoe.conf
+--- rp-pppoe-3.10.orig/configs/pppoe.conf 2008-06-30 22:23:11.000000000 +0200
++++ rp-pppoe-3.10/configs/pppoe.conf 2008-06-30 22:33:08.000000000 +0200
+@@ -120,7 +120,7 @@
+ FIREWALL=NONE
+
+ # Linux kernel-mode plugin for pppd. If you want to try the kernel-mode
+-# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
++# plugin, use LINUX_PLUGIN=rp-pppoe.so
+ LINUX_PLUGIN=
+
+ # Any extra arguments to pass to pppoe. Normally, use a blank string
+diff -Nru rp-pppoe-3.10.orig/scripts/pppoe-connect.in rp-pppoe-3.10/scripts/pppoe-connect.in
+--- rp-pppoe-3.10.orig/scripts/pppoe-connect.in 2008-06-30 22:23:11.000000000 +0200
++++ rp-pppoe-3.10/scripts/pppoe-connect.in 2008-06-30 22:33:08.000000000 +0200
+@@ -202,7 +202,7 @@
+
+ # If we're using kernel-mode PPPoE on Linux...
+ if test "$LINUX_PLUGIN" != "" ; then
+- PLUGIN_OPTS="plugin $LINUX_PLUGIN nic-$ETH"
++ PLUGIN_OPTS="plugin $LINUX_PLUGIN"
+ if test -n "$SERVICENAME" ; then
+ PLUGIN_OPTS="$PLUGIN_OPTS rp_pppoe_service $SERVICENAME"
+ fi
+@@ -297,7 +297,7 @@
+ $SETSID $OVERRIDE_PPPD_COMMAND &
+ echo "$!" > $PPPD_PIDFILE
+ elif test "$LINUX_PLUGIN" != "" ; then
+- $SETSID $PPPD $PPP_STD_OPTIONS $DEMAND &
++ $SETSID $PPPD $DEMAND $PPP_STD_OPTIONS &
+ echo "$!" > $PPPD_PIDFILE
+ else
+ $SETSID $PPPD pty "$PPPOE_CMD" \
diff --git a/net-dialup/rp-pppoe/files/rp-pppoe-3.10-session-offset.patch b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-session-offset.patch
new file mode 100644
index 000000000000..303ecfa9e4b7
--- /dev/null
+++ b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-session-offset.patch
@@ -0,0 +1,21 @@
+diff -Nru rp-pppoe-3.10.orig/src/pppoe-server.c rp-pppoe-3.10/src/pppoe-server.c
+--- rp-pppoe-3.10.orig/src/pppoe-server.c 2008-06-30 16:00:43.000000000 +0200
++++ rp-pppoe-3.10/src/pppoe-server.c 2008-06-30 22:35:11.000000000 +0200
+@@ -1751,7 +1751,7 @@
+ }
+ if (PassUnitOptionToPPPD) {
+ argv[c++] = "unit";
+- sprintf(buffer, "%u", (unsigned int) (ntohs(session->sess) - 1 - SessOffset));
++ sprintf(buffer, "%u", (unsigned int) (ntohs(session->sess) - 1));
+ argv[c++] = buffer;
+ }
+ argv[c++] = NULL;
+@@ -1834,7 +1834,7 @@
+ argv[c++] = "default-asyncmap";
+ if (PassUnitOptionToPPPD) {
+ argv[c++] = "unit";
+- sprintf(buffer, "%u", (unsigned int) (ntohs(session->sess) - 1 - SessOffset));
++ sprintf(buffer, "%u", (unsigned int) (ntohs(session->sess) - 1));
+ argv[c++] = buffer;
+ }
+ argv[c++] = NULL;
diff --git a/net-dialup/rp-pppoe/files/rp-pppoe-3.10-username-charset.patch b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-username-charset.patch
new file mode 100644
index 000000000000..8ef99a4b7aa9
--- /dev/null
+++ b/net-dialup/rp-pppoe/files/rp-pppoe-3.10-username-charset.patch
@@ -0,0 +1,58 @@
+diff -Nru rp-pppoe-3.10.orig/scripts/pppoe-setup.in rp-pppoe-3.10/scripts/pppoe-setup.in
+--- rp-pppoe-3.10.orig/scripts/pppoe-setup.in 2008-06-30 16:00:42.000000000 +0200
++++ rp-pppoe-3.10/scripts/pppoe-setup.in 2008-06-30 22:23:40.000000000 +0200
+@@ -86,11 +86,13 @@
+ $ECHO "USER NAME"
+ $ECHO ""
+ printf "%s" ">>> Enter your PPPoE user name (default $USER): "
+- read U
++ read Uu
+
+- if [ "$U" = "" ] ; then
+- U="$USER"
++ if [ "$Uu" = "" ] ; then
++ Uu="$USER"
+ fi
++
++ U=`echo $Uu | sed -e "s/&/\\\\\&/g"`
+
+ # Under Linux, "fix" the default interface if eth1 is not available
+ if test `uname -s` = "Linux" ; then
+@@ -221,7 +223,7 @@
+ $ECHO "** Summary of what you entered **"
+ $ECHO ""
+ $ECHO "Ethernet Interface: $E"
+- $ECHO "User name: $U"
++ $ECHO "User name: $Uu"
+ if [ "$D" = "no" ] ; then
+ $ECHO "Activate-on-demand: No"
+ else
+@@ -288,7 +290,12 @@
+ fi
+
+ # Some #$(*& ISP's use a slash in the user name...
+-sed -e "s&^USER=.*&USER='$U'&" \
++for SEP in ':' ';' '/' '!' '|' '_' '-' '@' ; do
++ if [ "$U" = `echo $U | sed "sI${SEP}II"` ]; then
++ break;
++ fi
++done
++sed -e "s${SEP}^USER=.*${SEP}USER='$U'${SEP}"\
+ -e "s&^ETH=.*&ETH='$E'&" \
+ -e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-pppoe.pid\"&" \
+ -e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \
+@@ -337,10 +344,10 @@
+ cp /dev/null /etc/ppp/chap-secrets-bak
+ fi
+
+-egrep -v "^$U|^\"$U\"" /etc/ppp/pap-secrets-bak > /etc/ppp/pap-secrets
+-$ECHO "\"$U\" * \"$PWD1\"" >> /etc/ppp/pap-secrets
+-egrep -v "^$U|^\"$U\"" /etc/ppp/chap-secrets-bak > /etc/ppp/chap-secrets
+-$ECHO "\"$U\" * \"$PWD1\"" >> /etc/ppp/chap-secrets
++egrep -v "^$Uu|^\"$Uu\"" /etc/ppp/pap-secrets-bak > /etc/ppp/pap-secrets
++$ECHO "\"$Uu\" * \"$PWD1\"" >> /etc/ppp/pap-secrets
++egrep -v "^$Uu|^\"$Uu\"" /etc/ppp/chap-secrets-bak > /etc/ppp/chap-secrets
++$ECHO "\"$Uu\" * \"$PWD1\"" >> /etc/ppp/chap-secrets
+
+ $ECHO ""
+ $ECHO ""
diff --git a/net-dialup/rp-pppoe/rp-pppoe-3.10.ebuild b/net-dialup/rp-pppoe/rp-pppoe-3.10.ebuild
new file mode 100644
index 000000000000..616773dae1b0
--- /dev/null
+++ b/net-dialup/rp-pppoe/rp-pppoe-3.10.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-dialup/rp-pppoe/rp-pppoe-3.10.ebuild,v 1.1 2008/06/30 21:40:25 mrness Exp $
+
+WANT_AUTOCONF="latest"
+WANT_AUTOMAKE="latest"
+
+inherit eutils flag-o-matic autotools
+
+DESCRIPTION="A user-mode PPPoE client and server suite for Linux"
+HOMEPAGE="http://www.roaringpenguin.com/pppoe/"
+SRC_URI="http://www.roaringpenguin.com/files/download/${P}.tar.gz
+ ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~sh ~sparc ~x86"
+IUSE="X"
+
+DEPEND="<sys-kernel/linux-headers-2.6.24
+ net-dialup/ppp
+ X? ( dev-lang/tk )"
+
+src_unpack() {
+ unpack ${A} || die "failed to unpack"
+
+ # Patch to enable integration of pppoe-start and pppoe-stop with
+ # baselayout-1.11.x so that the pidfile can be found reliably per interface
+ epatch "${FILESDIR}/${P}-gentoo-netscripts.patch"
+
+ epatch "${FILESDIR}/${P}-username-charset.patch" # bug 82410
+ epatch "${FILESDIR}/${P}-plugin-options.patch"
+ epatch "${FILESDIR}/${P}-autotools.patch"
+ epatch "${FILESDIR}/${P}-session-offset.patch" # bug 204476
+ epatch "${FILESDIR}/${P}-linux-headers.patch"
+
+ cd "${S}"/src
+ eautoreconf
+}
+
+src_compile() {
+ addpredict /dev/ppp
+
+ cd "${S}/src"
+ econf --enable-plugin=../../ppp-2.4.4 || die "econf failed"
+ emake || die "emake failed"
+
+ if use X; then
+ make -C "${S}/gui" || die "gui make failed"
+ fi
+}
+
+src_install () {
+ cd "${S}/src"
+ emake DESTDIR="${D}" docdir=/usr/share/doc/${PF} install \
+ || die "install failed"
+
+ #Don't use compiled rp-pppoe plugin - see pkg_preinst below
+ rm "${D}/etc/ppp/plugins/rp-pppoe.so"
+
+ prepalldocs
+
+ if use X; then
+ emake -C "${S}/gui" DESTDIR="${D}" datadir=/usr/share/doc/${PF}/ install \
+ || die "gui install failed"
+ dosym /usr/share/doc/${PF}/tkpppoe /usr/share/tkpppoe
+ fi
+}
+
+pkg_preinst() {
+ # Use the rp-pppoe plugin that comes with net-dialup/pppd
+ local PPPD_VER=`best_version net-dialup/ppp`
+ PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%-*} #reduce it to ${PV}
+ if [ -n "${PPPD_VER}" ] && [ -f "${ROOT}/usr/lib/pppd/${PPPD_VER}/rp-pppoe.so" ] ; then
+ dosym /usr/lib/pppd/${PPPD_VER}/rp-pppoe.so /etc/ppp/plugins/rp-pppoe.so
+ fi
+}
+
+pkg_postinst() {
+ elog "Use pppoe-setup to configure your dialup connection."
+}
diff --git a/net-dialup/rp-pppoe/rp-pppoe-3.8-r2.ebuild b/net-dialup/rp-pppoe/rp-pppoe-3.8-r2.ebuild
index c43da8c8a2c5..bc2362d30209 100644
--- a/net-dialup/rp-pppoe/rp-pppoe-3.8-r2.ebuild
+++ b/net-dialup/rp-pppoe/rp-pppoe-3.8-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-dialup/rp-pppoe/rp-pppoe-3.8-r2.ebuild,v 1.7 2008/06/30 18:50:32 bluebird Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-dialup/rp-pppoe/rp-pppoe-3.8-r2.ebuild,v 1.8 2008/06/30 21:40:25 mrness Exp $
WANT_AUTOCONF="latest"
WANT_AUTOMAKE="latest"
@@ -17,7 +17,8 @@ SLOT="0"
KEYWORDS="alpha ~amd64 ~arm hppa ~mips ~ppc ppc64 ~sh sparc x86"
IUSE="X"
-DEPEND="net-dialup/ppp
+DEPEND="<sys-kernel/linux-headers-2.6.24
+ net-dialup/ppp
X? ( dev-lang/tk )"
src_unpack() {