kupgrade revision 153877
153024Sguido#!/bin/sh 253024Sguido# 353024SguidoPATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH 4145510Sdarrenrargv0=`basename $0` 553024Sguido 6145510Sdarrenros=`uname -s` 7145510Sdarrenrrev=`uname -r` 8145510Sdarrenrmaj=`expr $rev : '\([0-9]*\)\.'` 9145510Sdarrenrmin=`expr $rev : '[0-9]*\.\([0-9]*\)'` 10145510Sdarrenrsub=`expr $rev : '[0-9]*\.[0-9]*\.\([0-9]*\)'` 11145510Sdarrenr 1253024Sguido# try to bomb out fast if anything fails.... 1353024Sguidoset -e 14145510Sdarrenr 15145510Sdarrenrfullrev=`printf '%02d%02d%02d' $maj $min $sub` 1653024Sguidodir=`pwd` 1753024Sguidokarch=`uname -m` 1853024Sguidoarchdir="/sys/arch/$karch" 1992686Sdarrenripfdir=/sys/netinet 2092686Sdarrenrif [ -d /sys/contrib/ipfilter ] ; then 2192686Sdarrenr ipfdir=/sys/contrib/ipfilter/netinet 2292686Sdarrenrfi 23145510Sdarrenrif [ -d /sys/dist/ipf ] ; then 24145510Sdarrenr ipfdir=/sys/dist/ipf/netinet 25145510Sdarrenrfi 2653024Sguidoconfdir="$archdir/conf" 27145510Sdarrenrif [ -f /dev/ipnat ] ; then 28145510Sdarrenr major=`ls -l /dev/ipnat | sed -e 's/.* \([0-9]*\),.*/\1/'` 29145510Sdarrenr echo "Major number for IP Filter is $major" 30145510Sdarrenrelse 31145510Sdarrenr major=x 32145510Sdarrenrfi 3353024Sguido 34153877Sguidoif [ ! -f ip_rules.c -o ! -f ip_rules.h ] ; then 35153877Sguido echo "Please do a build of ipfilter and then run the following" 36153877Sguido echo "command to build extra files:" 37153877Sguido echo 38153877Sguido echo "make ip_rules.c" 39153877Sguido exit 1 40153877Sguidofi 41153877Sguido 4253024Sguidoecho -n "Installing " 43145510Sdarrenrfor j in auth frag nat proxy scan state sync pool htable lookup rules; do 44145510Sdarrenr for i in ip_$j.[ch]; do 45145510Sdarrenr if [ -f "$i" ] ; then 46145510Sdarrenr echo -n " $i" 47145510Sdarrenr cp $i $ipfdir 48145510Sdarrenr chmod 644 $ipfdir/$i 49145510Sdarrenr fi 50145510Sdarrenr done 51145510Sdarrenrdone 52145510Sdarrenr 53145510Sdarrenrcase $os in 54145510SdarrenrSunOS) 55145510Sdarrenr case `uname -r` in 56145510Sdarrenr 5.*) 57145510Sdarrenr filc=ip_fil_solaris.c 58145510Sdarrenr ;; 59145510Sdarrenr 4.*) 60145510Sdarrenr filc=ip_fil_sunos.c 61145510Sdarrenr ;; 62145510Sdarrenr esac 63145510Sdarrenr ;; 64145510Sdarrenr*BSD) 65145510Sdarrenr filc=ip_fil_`echo $os | tr A-Z a-z`.c 66145510Sdarrenr case $os in 67145510Sdarrenr FreeBSD) 68145510Sdarrenr cp mlfk_ipl.c $ipfdir/ 69145510Sdarrenr ;; 70145510Sdarrenr *) 71145510Sdarrenr ;; 72145510Sdarrenr esac 73145510Sdarrenr ;; 74145510Sdarrenresac 75145510Sdarrenr 76145510Sdarrenrif [ -f $ipfdir/$filc ] ; then 77145510Sdarrenr echo -n "$filc -> $ipfdir/$filc " 78145510Sdarrenr cp $filc $ipfdir/$filc 79145510Sdarrenr chmod 644 $ipfdir/$filc 80145510Sdarrenrfi 81145510Sdarrenrif [ -f $ipfdir/ip_fil.c ] ; then 82145510Sdarrenr echo -n "$filc -> $ipfdir/ip_fil.c " 83145510Sdarrenr cp $filc $ipfdir/ip_fil.c 84145510Sdarrenr chmod 644 $ipfdir/ip_fil.c 85145510Sdarrenrfi 86145510Sdarrenr 87145510Sdarrenrfor i in ip_fil.h fil.c ip_log.c ip_compat.h ipl.h ip_*_pxy.c; do 88145510Sdarrenr echo -n " $i" 8992686Sdarrenr cp $i $ipfdir 9092686Sdarrenr chmod 644 $ipfdir/$i 9153024Sguidodone 9253024Sguidoecho "" 93110917Sdarrenrecho -n "Installing into /usr/include/netinet" 94145510Sdarrenrfor j in auth compat fil frag nat proxy scan state sync pool htable lookup; do 95110917Sdarrenr i=ip_$j.h 96110917Sdarrenr if [ -f "$i" ] ; then 97110917Sdarrenr echo -n " $i" 98110917Sdarrenr cp $i /usr/include/netinet/$i 99110917Sdarrenr chmod 644 /usr/include/netinet/$i 100110917Sdarrenr fi 101110917Sdarrenrdone 102110917Sdarrenrfor j in ipl.h; do 103110917Sdarrenr if [ -f "$j" ] ; then 104110917Sdarrenr echo -n " $j" 105110917Sdarrenr cp $j /usr/include/netinet/$j 106110917Sdarrenr chmod 644 /usr/include/netinet/$j 107110917Sdarrenr fi 108110917Sdarrenrdone 109110917Sdarrenrecho 110110917Sdarrenr 11153024Sguidoif [ -f /sys/netinet/ip_fil_compat.h ] ; then 11253024Sguido echo "Linking /sys/netinet/ip_compat.h to /sys/netinet/ip_fil_compat.h" 11353024Sguido rm /sys/netinet/ip_fil_compat.h 11453024Sguido ln -s /sys/netinet/ip_compat.h /sys/netinet/ip_fil_compat.h 11553024Sguidofi 116145510Sdarrenr 117145510Sdarrenrif [ $major != x ] ; then 118145510Sdarrenr if [ ! -e /dev/ipsync ] ; then 119145510Sdarrenr echo "Creating /dev/ipsync" 120145510Sdarrenr mknod /dev/ipsync c $major 4 121145510Sdarrenr fi 122145510Sdarrenr 123145510Sdarrenr if [ ! -e /dev/ipsync ] ; then 124145510Sdarrenr echo "Creating /dev/ipscan" 125145510Sdarrenr mknod /dev/ipsync c $major 5 126145510Sdarrenr fi 127145510Sdarrenr 128145510Sdarrenr if [ ! -e /dev/iplookup ] ; then 129145510Sdarrenr echo "Creating /dev/iplookup" 130145510Sdarrenr mknod /dev/iplookup c $major 6 131145510Sdarrenr fi 132145510Sdarrenrfi 133145510Sdarrenr 134145510Sdarrenrset +e 135145510Sdarrenros=`uname -s` 136145510Sdarrenrif [ $os = FreeBSD -a -f /sys/conf/files ] ; then 137145510Sdarrenr cd /sys/conf 138145510Sdarrenr if [ -f options ] ; then 139145510Sdarrenr if [ ! -f options.preipf4 ] ; then 140145510Sdarrenr mv options options.preipf4 141145510Sdarrenr cp -p options.preipf4 options 142145510Sdarrenr fi 143145510Sdarrenr for i in SCAN SYNC LOOKUP COMPILED; do 144145510Sdarrenr grep IPFILTER_$i options >/dev/null 2>&1 145145510Sdarrenr if [ $? -ne 0 ] ; then 146145510Sdarrenr echo >> options 147145510Sdarrenr echo "# extra option for IP Filter" >> options 148145510Sdarrenr echo "IPFILTER_$i opt_ipfilter.h" >> options 149145510Sdarrenr fi 150145510Sdarrenr done 151145510Sdarrenr fi 152145510Sdarrenr if [ ! -f files.preipf4 ] ; then 153145510Sdarrenr mv files files.preipf4 154145510Sdarrenr cp -p files.preipf4 files 155145510Sdarrenr fi 156145510Sdarrenr for i in htable pool lookup; do 157145510Sdarrenr grep ip_$i.c files >/dev/null 2>&1 158145510Sdarrenr if [ $? -ne 0 ] ; then 159145510Sdarrenr echo "contrib/ipfilter/netinet/ip_$i.c optional ipfilter inet ipfilter_lookup" >> files 160145510Sdarrenr fi 161145510Sdarrenr done 162145510Sdarrenr grep ip_sync.c files >/dev/null 2>&1 163145510Sdarrenr if [ $? -ne 0 ] ; then 164145510Sdarrenr echo 'contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet ipfilter_sync' >> files 165145510Sdarrenr fi 166145510Sdarrenr grep ip_scan.c files >/dev/null 2>&1 167145510Sdarrenr if [ $? -ne 0 ] ; then 168145510Sdarrenr echo 'contrib/ipfilter/netinet/ip_scan.c optional ipfilter inet ipfilter_scan' >> files 169145510Sdarrenr fi 170145510Sdarrenr grep ip_rules.c files >/dev/null 2>&1 171145510Sdarrenr if [ $? -ne 0 ] ; then 172145510Sdarrenr echo 'contrib/ipfilter/netinet/ip_rules.c optional ipfilter inet ipfilter_compiled' >> files 173145510Sdarrenr fi 174145510Sdarrenrfi 175145510Sdarrenrif [ $os = NetBSD -a -f /sys/conf/files ] ; then 176145510Sdarrenr cd /sys/conf 177145510Sdarrenr if [ ! -f files.preipf4 ] ; then 178145510Sdarrenr mv files files.preipf4 179145510Sdarrenr cp -p files.preipf4 files 180145510Sdarrenr fi 181145510Sdarrenr if [ $fullrev -ge 010600 -a $fullrev -lt 020000 ] ; then 182145510Sdarrenr for i in htable pool lookup; do 183145510Sdarrenr grep ip_$i.c files >/dev/null 2>&1 184145510Sdarrenr if [ $? -ne 0 ] ; then 185145510Sdarrenr echo "file netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files 186145510Sdarrenr fi 187145510Sdarrenr done 188145510Sdarrenr grep ip_sync.c files >/dev/null 2>&1 189145510Sdarrenr if [ $? -ne 0 ] ; then 190145510Sdarrenr echo 'file netinet/ip_sync.c ipfilter & ipfilter_sync' >> files 191145510Sdarrenr fi 192145510Sdarrenr grep ip_scan.c files >/dev/null 2>&1 193145510Sdarrenr if [ $? -ne 0 ] ; then 194145510Sdarrenr echo 'file netinet/ip_scan.c ipfilter & ipfilter_scan' >> files 195145510Sdarrenr fi 196145510Sdarrenr grep ip_rules.c files >/dev/null 2>&1 197145510Sdarrenr if [ $? -ne 0 ] ; then 198145510Sdarrenr echo 'file netinet/ip_rules.c ipfilter & ipfilter_compiled' >> files 199145510Sdarrenr fi 200145510Sdarrenr fi 201145510Sdarrenrfi 202145510Sdarrenrif [ $os = OpenBSD -a -f /sys/conf/files ] ; then 203145510Sdarrenr cd /sys/conf 204145510Sdarrenr if [ ! -f files.preipf4 ] ; then 205145510Sdarrenr mv files files.preipf4 206145510Sdarrenr cp -p files.preipf4 files 207145510Sdarrenr fi 208145510Sdarrenr if [ $fullrev -ge 030400 ] ; then 209145510Sdarrenr for i in htable pool lookup; do 210145510Sdarrenr grep ip_$i.c files >/dev/null 2>&1 211145510Sdarrenr if [ $? -ne 0 ] ; then 212145510Sdarrenr echo "file netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files 213145510Sdarrenr fi 214145510Sdarrenr done 215145510Sdarrenr grep ip_sync.c files >/dev/null 2>&1 216145510Sdarrenr if [ $? -ne 0 ] ; then 217145510Sdarrenr echo 'file netinet/ip_sync.c ipfilter & ipfilter_sync' >> files 218145510Sdarrenr fi 219145510Sdarrenr grep ip_scan.c files >/dev/null 2>&1 220145510Sdarrenr if [ $? -ne 0 ] ; then 221145510Sdarrenr echo 'file netinet/ip_scan.c ipfilter & ipfilter_scan' >> files 222145510Sdarrenr fi 223145510Sdarrenr grep ip_rules.c files >/dev/null 2>&1 224145510Sdarrenr if [ $? -ne 0 ] ; then 225145510Sdarrenr echo 'file netinet/ip_rules.c ipfilter & ipfilter_compiled' >> files 226145510Sdarrenr fi 227145510Sdarrenr fi 228145510Sdarrenrfi 229145510Sdarrenr 230145510Sdarrenrif [ -f /usr/src/sys/modules/ipfilter/Makefile -a \ 231145510Sdarrenr ! -f /usr/src/sys/modules/ipfilter/Makefile.orig ] ; then 232145510Sdarrenrcat | (cd /usr/src/sys/modules/ipfilter; patch) <<__EOF__ 233145510Sdarrenr*** Makefile.orig Mon Mar 28 09:10:11 2005 234145510Sdarrenr--- Makefile Mon Mar 28 09:12:51 2005 235145510Sdarrenr*************** 236145510Sdarrenr*** 5,13 **** 237145510Sdarrenr KMOD= ipl 238145510Sdarrenr SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\ 239145510Sdarrenr! ip_log.c ip_fil.c fil.c 240145510Sdarrenr 241145510Sdarrenr .if !defined(NOINET6) 242145510Sdarrenr CFLAGS+= -DUSE_INET6 243145510Sdarrenr .endif 244145510Sdarrenr CFLAGS+= -I$${.CURDIR}/../../contrib/ipfilter 245145510Sdarrenr! CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS 246145510Sdarrenr--- 5,15 ---- 247145510Sdarrenr KMOD= ipl 248145510Sdarrenr SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\ 249145510Sdarrenr! ip_log.c ip_fil.c fil.c ip_lookup.c ip_pool.c ip_htable.c \\ 250145510Sdarrenr! ip_sync.c ip_scan.c ip_rules.c 251145510Sdarrenr 252145510Sdarrenr .if !defined(NOINET6) 253145510Sdarrenr CFLAGS+= -DUSE_INET6 254145510Sdarrenr .endif 255145510Sdarrenr CFLAGS+= -I$${.CURDIR}/../../contrib/ipfilter 256145510Sdarrenr! CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS \\ 257145510Sdarrenr! -DIPFILTER_LOOKUP -DIPFILTER_COMPILED 258145510Sdarrenr__EOF__ 259145510Sdarrenrfi 26053024Sguidoexit 0 261