Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / ipfilter / FreeBSD / kinstall
1 #!/bin/csh -f
2 #
3 set dir=`pwd`
4 set karch=`uname -m`
5 if ( -d /sys/arch/$karch ) set archdir="/sys/arch/$karch"
6 if ( -d /sys/$karch ) set archdir="/sys/$karch"
7 set confdir="$archdir/conf"
8
9 if ( $dir =~ */FreeBSD ) cd ..
10 echo -n "Installing "
11 foreach i (ip_fil.[ch] ip_nat.[ch] ip_frag.[ch] ip_state.[ch] fil.c \
12            ip_proxy.[ch] ip_auth.[ch] ip_*_pxy.c ip_compat.h ip_log.c)
13         echo -n "$i ";
14         cp $i /sys/netinet
15         chmod 644 /sys/netinet/$i
16         switch ( $i )
17         case *.h:
18                 /bin/cp $i /usr/include/netinet/$i
19                 chmod 644 /usr/include/netinet/$i
20                 breaksw
21         endsw
22 end
23 echo ""
24 grep iplopen $archdir/$karch/conf.c >& /dev/null
25 if ( $status != 0 ) then
26         echo "Patching $archdir/$karch/conf.c"
27         cat FreeBSD/conf.c.diffs | (cd $archdir/$karch; patch)
28 endif
29 grep fr_checkp /sys/netinet/ip_input.c >& /dev/null
30 if ( $status != 0 ) then
31         echo "Patching ip_input.c, ip_output.c and in_proto.c"
32         cat FreeBSD/ip_{in,out}put.c.diffs FreeBSD/in_proto.c.diffs | \
33         (cd /sys/netinet; patch)
34 endif
35 if ( -f /sys/conf/files.newconf ) then
36         echo "Patching /sys/conf/files.newconf"
37         cat FreeBSD/files.newconf.diffs | (cd /sys/conf; patch)
38         echo "Patching /sys/conf/files"
39         cat FreeBSD/files.diffs | (cd /sys/conf; patch)
40 endif
41 if ( -f /sys/conf/files.oldconf ) then
42         echo "Patching /sys/conf/files.oldconf"
43         cat FreeBSD/files.oldconf.diffs | (cd /sys/conf; patch)
44         echo "Patching /sys/conf/files"
45         cat FreeBSD/filez.diffs | (cd /sys/conf; patch)
46 endif
47
48 set config=`(cd $confdir; /bin/ls -1t [0-9A-Z_]*) | head -1`
49 echo -n "Kernel configuration to update [$config] "
50 set newconfig=$<
51 if ( "$newconfig" != "" ) then
52         set config="$confdir/$newconfig"
53 else
54         set newconfig=$config
55 endif
56 echo "Re-config'ing $newconfig..."
57 if ( -f $confdir/$newconfig ) then
58         mv $confdir/$newconfig $confdir/$newconfig.bak
59 endif
60 if ( -d $archdir/../compile/$newconfig ) then
61         set bak=".bak"
62         set dot=0
63         while ( -d $archdir/../compile/${newconfig}.${bak} )
64                 set bak=".bak.$dot"
65                 set dot=`expr 1 + $dot`
66         end
67         mv $archdir/../compile/$newconfig $archdir/../compile/${newconfig}.${bak}
68 endif
69 awk '{print $0;if($2=="INET"){print"options IPFILTER"}}' \
70         $confdir/$newconfig.bak > $confdir/$newconfig
71 echo 'You will now need to run "config" and build a new kernel.'
72 exit 0