X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=linux%2Fmppe%2Fmppeinstall.sh;h=52ae7d12e31661711567ccd82a0cc1263ba7b8e2;hb=98b641cbee0c4489e83320962ddf652eb9070f03;hp=5a81ffd0305cdde62924a70332d8e14672d81e9e;hpb=ca1af9f74dc0f333c80eb2fa10a4b80306dc4040;p=ppp.git diff --git a/linux/mppe/mppeinstall.sh b/linux/mppe/mppeinstall.sh index 5a81ffd..52ae7d1 100644 --- a/linux/mppe/mppeinstall.sh +++ b/linux/mppe/mppeinstall.sh @@ -1,23 +1,56 @@ #!/bin/sh # -# A quickie script to install MPPE into the 2.2.19+ or 2.4.18 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_compress.c" -[ $1 ] || exit 1 -[ -d "$1" ] || exit 1 +if [ -z "$1" -o ! -d "$1" ]; then + echo "Usage: $0 " >&2 + exit 1 +fi -echo -n "Is this a 2.2 kernel or 2.4 kernel: " -read ver +# 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-$ver.*.patch; do +for patch in $patchfiles; do patch -p1 < $patch done