]> git.ozlabs.org Git - ppp.git/blobdiff - linux/mppe/mppeinstall.sh
Run ntlm_auth as the user that invoked pppd.
[ppp.git] / linux / mppe / mppeinstall.sh
index f2f17400c7d2295c0d5b5e74b694ac3d78c30b5f..52ae7d12e31661711567ccd82a0cc1263ba7b8e2 100644 (file)
@@ -1,26 +1,61 @@
 #!/bin/sh
 #
-# A quickie script to install MPPE into the 2.2.20 kernel.
-# Does no error checking!!!
+# A quickie script to install MPPE into the 2.2.19+ or 2.4.18+ kernel.
+# Does very little error checking!!!
 #
 
-mppe_files="sha1.[ch] arcfour.[ch] ppp_mppe.c"
+mppe_files="sha1.[ch] arcfour.[ch] ppp_mppe_compress.c"
 
-[ $1 ] || exit 1
-[ -d "$1" ] || exit 1
+if [ -z "$1" -o ! -d "$1" ]; then
+    echo "Usage: $0 <linux-source-dir>" >&2
+    exit 1
+fi
 
+# strip any trailing /
+set -- ${1%/}
+# strip leading /path/to/linux- and trailing -release
+ver=`echo "${1##*/}" | sed -e 's/linux-//' -e 's/-.*//'`
+if ! expr "$ver" : 2.[246] >/dev/null ; then
+    ver=`echo "${1##*/}" | sed -e 's/kernel-source-//' -e 's/-.*//'`
+    if ! expr "$ver" : 2.[246] >/dev/null ; then
+        echo "$0: Unable to determine kernel version ($ver)" >&2
+        exit 1
+    fi
+fi
+
+# build patch files list
+patchdir=`pwd`
+patchfiles=
+if expr $ver : 2.2 >/dev/null ; then
+    patchfiles=$patchdir/linux-2.2.*.patch
+elif expr $ver : 2.4 >/dev/null ; then
+    patchfiles=`echo $patchdir/linux-2.4.18-{include,make}.patch`
+    # need to differentiate a bit
+    typeset -i rel=${ver##*.}
+    if [ $rel -eq 18 ]; then
+       patchfiles="$patchfiles $patchdir/linux-2.4.18-pad.patch"
+    elif [ $rel -gt 18 ]; then
+       patchfiles="$patchfiles $patchdir/linux-2.4.19-pad.patch"
+    else
+       echo "$0: unable to determine kernel version" >&2
+       exit 1
+    fi
+elif expr $ver : 2.6 >/dev/null ; then
+    patchfiles=`echo $patchdir/linux-2.6*.patch`
+fi
+
+echo "Detected kernel version $ver"
 echo "I will now patch the kernel in directory $1"
 echo -n "Press ret to continue, CTRL-C to exit: "
 read
 
-patchdir=`pwd`
 pushd "$1" >/dev/null
-for patch in $patchdir/linux*.patch; do
+for patch in $patchfiles; do
     patch -p1 < $patch
 done
 
 for file in $mppe_files; do
-    cp $patchdir/$file drivers/net
+    cp -v $patchdir/$file drivers/net
 done
 
 popd >/dev/null