network/xl2tpd: Added (L2TP daemon)

This commit is contained in:
gshep 2010-04-16 22:05:37 -04:00 committed by David Somero
parent d09ff52f2a
commit 8956172163
6 changed files with 207 additions and 0 deletions

21
network/xl2tpd/README Normal file
View File

@ -0,0 +1,21 @@
xl2tpd is an implementation of the Layer 2 Tunnelling Protocol (RFC 2661).
L2TP allows you to tunnel PPP over UDP. Some ISPs use L2TP to tunnel user
sessions from dial-in servers (modem banks, ADSL DSLAMs) to back-end PPP
servers. Another important application is Virtual Private Networks where
the IPsec protocol is used to secure the L2TP connection (L2TP/IPsec,
RFC 3193). The L2TP/IPsec protocol is mainly used by Windows and
Mac OS X clients. On Linux, xl2tpd can be used in combination with IPsec
implementations such as Openswan.
Example configuration files for such a setup are included in this RPM.
xl2tpd works by opening a pseudo-tty for communicating with pppd.
It runs completely in userspace but supports kernel mode L2TP.
xl2tpd supports IPsec SA Reference tracking to enable overlapping internak
NAT'ed IP's by different clients (eg all clients connecting from their
linksys internal IP 192.168.1.101) as well as multiple clients behind
the same NAT router.
xl2tpd supports the pppol2tp kernel mode operations on 2.6.23 or higher,
or via a patch in contrib for 2.4.x kernels. Note that kernel mode and
IPsec SA Reference tracking do not yet work together.

17
network/xl2tpd/doinst.sh Normal file
View File

@ -0,0 +1,17 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/xl2tpd/xl2tpd.conf.new
config etc/ppp/options.xl2tpd.new
config etc/ppp/chap-secrets.new

View File

@ -0,0 +1,44 @@
--- Makefile-orig 2010-04-09 20:02:02.000000000 +0400
+++ Makefile 2010-04-09 20:02:39.000000000 +0400
@@ -53,8 +53,8 @@
# but we use a local copy if we don't find it.
#
#KERNELSRC=/lib/modules/`uname -r`/build/
-KERNELSRC?=./linux
-OSFLAGS?= -DLINUX -I$(KERNELSRC)/include/
+KERNELSRC=/usr/src/linux
+OSFLAGS= -DLINUX -I$(KERNELSRC)/include/
#
# Uncomment the following to use the kernel interface under Linux
# This requires the pppol2tp-linux-2.4.27.patch patch from contrib
@@ -62,7 +62,7 @@
# are packages seperately (eg kernel-headers on Fedora)
# Note: 2.6.23+ support still needs some changes in the xl2tpd source
#
-#OSFLAGS+= -DUSE_KERNEL
+OSFLAGS+= -DUSE_KERNEL
#
#
# Uncomment the next line for FreeBSD
@@ -97,10 +97,10 @@
#LIBS= $(OSLIBS) # -lefence # efence for malloc checking
EXEC=xl2tpd
-PREFIX?=/usr/local
+PREFIX?=/usr
SBINDIR?=$(DESTDIR)${PREFIX}/sbin
BINDIR?=$(DESTDIR)${PREFIX}/bin
-MANDIR?=$(DESTDIR)${PREFIX}/share/man
+MANDIR?=$(DESTDIR)${PREFIX}/man
all: $(EXEC) pfc
@@ -113,7 +113,7 @@
pfc:
$(CC) $(CFLAGS) -c contrib/pfc.c
- $(CC) $(LDFLAGS) -lpcap $(LDLIBS) -o pfc pfc.o
+ $(CC) pfc.o $(LDFLAGS) -lpcap $(LDLIBS) -o pfc
romfs:
$(ROMFSINST) /bin/$(EXEC)

19
network/xl2tpd/slack-desc Normal file
View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
xl2tpd: xl2tpd (L2TP daemon)
xl2tpd:
xl2tpd: Xelerance Corporation currently maintains a version of the Layer 2
xl2tpd: Tunneling Protocol (L2TP) daemon.
xl2tpd:
xl2tpd: This version contains many patches that have not yet been integrated
xl2tpd: into the mainstream release. These patches are needed to run on
xl2tpd: modern distributions with DEVFS, or to support L2TP over IPsec, when
xl2tpd: used in conjunction with Openswan.
xl2tpd:
xl2tpd: Homepage: http://www.xelerance.com/software/xl2tpd/

View File

@ -0,0 +1,96 @@
#!/bin/sh
PRGNAM=xl2tpd
VERSION=1.2.4
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# patching make file
patch -p0 -i $CWD/makefile.patch
# build the program
make
make install DESTDIR=$PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
( cd $PKG/usr/man
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
)
# Add some sample config files
mkdir -p $PKG/etc/{xl2tpd,ppp}
cat examples/xl2tpd.conf > $PKG/etc/xl2tpd/xl2tpd.conf.new
cat examples/ppp-options.xl2tpd > $PKG/etc/ppp/options.xl2tpd.new
cat examples/chapsecrets.sample > $PKG/etc/ppp/chap-secrets.new
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
DOCFILES=`ls --color=never examples/xl2tpd-L2TP*`;
if [ "$?" = "0" ]; then
mkdir $PKG/usr/doc/$PRGNAM-$VERSION/examples
for doc_file in $DOCFILES; do
if [ -f $doc_file ]; then
cat $doc_file > $PKG/usr/doc/$PRGNAM-$VERSION/$doc_file
fi
done
fi
cd doc
DOCFILES="ipsecsaref.png l2tp.png l2tp.svg l2tpd.conf.sample \
l2tp-secrets.sample origREADME README.passwordfd README.patents rfc2661.txt"
for doc_file in $DOCFILES; do
if [ -f $doc_file ]; then
cp -a $doc_file $PKG/usr/doc/$PRGNAM-$VERSION/
fi
done
cd ..
DOCFILES="BUGS CHANGES CREDITS LICENSE README.xl2tpd TODO"
for doc_file in $DOCFILES; do
if [ -f $doc_file ]; then
cp -a $doc_file $PKG/usr/doc/$PRGNAM-$VERSION/
fi
done
find $PKG/usr/doc -type f -exec chmod 0644 {} \;
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@ -0,0 +1,10 @@
PRGNAM="xl2tpd"
VERSION="1.2.4"
HOMEPAGE="http://www.xelerance.com/software/xl2tpd/"
DOWNLOAD="http://www.xelerance.com/software/xl2tpd/xl2tpd-1.2.4.tar.gz"
MD5SUM="d94fc8a13596f12a561240dfcea9f977"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="gshep"
EMAIL="shepelev.georgy@googlemail.com"
APPROVED="dsomero"