#!/bin/sh # wander through an Libreswan linux directory, creating a patch file (to stdout) # that will apply the code to a kernel source directory. # # $Id: kernelpatch,v 1.14 2005/09/26 02:37:53 mcr Exp $ # KERN=$1 shift patch20=false patch22=false patch24=false patch26=false . packaging/utils/kernelpatching.sh case $KERN in 2.4) patchname=os2_4; altname=fs2_4; patch24=true ;; 2.6) patchname=os2_6; altname=fs2_6; patch26=true ;; *) echo "Invalid kernel patch target: $KERN"; exit 1;; esac # make sure that sort gets the right locale. LANG=C export LANG LC_ALL=C export LC_ALL find linux -type f -print | grep -v CVS | egrep -v 'linux/Makefile' | sort | while read file do base=`basename $file` pname=`echo $file | sed -e 's,\.fs._.$,,' -e 's,\.os._.$,,'` case $base in TAGS) ;; tags) ;; .cvsignore) ;; .*.o.flags) ;; .\#*);; *.o) ;; *~) ;; version.in.c) doversion $file ;; tagsfile.mak) ;; *.${patchname}.patch) cat $file;; *.${altname}.patch) cat $file;; *.patch) ;; *.fs2_4) fakeallpatch $patch24 $file $pname ;; *.fs2_6) fakeallpatch $patch26 $file $pname ;; *.os2_4) fakeallpatch $patch24 $file $pname ;; *.os2_6) fakeallpatch $patch26 $file $pname ;; *) fakeallpatch true $file $file ;; esac done # # finally, we have to produce a diff for linux/net/linux/Makefile.ver, # a file which is generated at runtime, so there is nothing in CVS. # echo '--- /dev/null Fri May 10 13:59:54 2002' echo '+++ linux/net/ipsec/Makefile.ver Wed Dec 31 19:00:00 1969' echo '@@ -0,0 +1 @@' echo -n '+' (cd ${LIBRESWANSRCDIR} && make env ) | grep IPSECVERSION exit 0