]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/ipfilter/BSD/kupgrade
This commit was generated by cvs2svn to compensate for changes in r169691,
[FreeBSD/FreeBSD.git] / contrib / ipfilter / BSD / kupgrade
1 #!/bin/sh
2 #
3 PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH
4 argv0=`basename $0`
5  
6 os=`uname -s`
7 rev=`uname -r`
8 maj=`expr $rev : '\([0-9]*\)\.'`
9 min=`expr $rev : '[0-9]*\.\([0-9]*\)'`
10 sub=`expr $rev : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
11
12 # try to bomb out fast if anything fails....
13 set -e
14
15 fullrev=`printf '%02d%02d%02d' $maj $min $sub`
16 dir=`pwd`
17 karch=`uname -m`
18 archdir="/sys/arch/$karch"
19 ipfdir=/sys/netinet
20 if [ -d /sys/contrib/ipfilter ] ; then
21         ipfdir=/sys/contrib/ipfilter/netinet
22 fi
23 if [ -d /sys/dist/ipf ] ; then
24         ipfdir=/sys/dist/ipf/netinet
25 fi
26 confdir="$archdir/conf"
27 if [ -f /dev/ipnat ] ; then
28         major=`ls -l /dev/ipnat | sed -e 's/.* \([0-9]*\),.*/\1/'`
29         echo "Major number for IP Filter is $major"
30 else
31         major=x
32 fi
33  
34 if [ ! -f ip_rules.c -o ! -f ip_rules.h ] ; then
35         echo "Please do a build of ipfilter and then run the following"
36         echo "command to build extra files:"
37         echo
38         echo "make ip_rules.c"
39         exit 1
40 fi
41
42 echo -n "Installing "
43 for j in auth frag nat proxy scan state sync pool htable lookup rules; do
44         for i in ip_$j.[ch]; do
45                 if [ -f "$i" ] ; then
46                         echo -n " $i"
47                         cp $i $ipfdir
48                         chmod 644 $ipfdir/$i
49                 fi
50         done
51 done
52
53 case $os in
54 SunOS)
55         case `uname -r` in
56         5.*)
57                 filc=ip_fil_solaris.c
58                 ;;
59         4.*)
60                 filc=ip_fil_sunos.c
61                 ;;
62         esac
63         ;;
64 *BSD)
65         filc=ip_fil_`echo $os | tr A-Z a-z`.c
66         case $os in
67         FreeBSD)
68                 cp mlfk_ipl.c $ipfdir/
69                 ;;
70         *)
71                 ;;
72         esac
73         ;;
74 esac
75
76 if [ -f $ipfdir/$filc ] ; then
77         echo -n "$filc -> $ipfdir/$filc "
78         cp $filc $ipfdir/$filc
79         chmod 644 $ipfdir/$filc
80 fi
81 if [ -f $ipfdir/ip_fil.c ] ; then
82         echo -n "$filc -> $ipfdir/ip_fil.c "
83         cp $filc $ipfdir/ip_fil.c
84         chmod 644 $ipfdir/ip_fil.c
85 fi
86
87 for i in ip_fil.h fil.c ip_log.c ip_compat.h ipl.h ip_*_pxy.c; do
88         echo -n " $i"
89         cp $i $ipfdir
90         chmod 644 $ipfdir/$i
91 done
92 echo ""
93 echo -n "Installing into /usr/include/netinet"
94 for j in auth compat fil frag nat proxy scan state sync pool htable lookup; do
95         i=ip_$j.h
96         if [ -f "$i" ] ; then
97                 echo -n " $i"
98                 cp $i /usr/include/netinet/$i
99                 chmod 644 /usr/include/netinet/$i
100         fi
101 done
102 for j in ipl.h; do
103         if [ -f "$j" ] ; then
104                 echo -n " $j"
105                 cp $j /usr/include/netinet/$j
106                 chmod 644 /usr/include/netinet/$j
107         fi
108 done
109 echo
110
111 if [ -f /sys/netinet/ip_fil_compat.h ] ; then
112         echo "Linking /sys/netinet/ip_compat.h to /sys/netinet/ip_fil_compat.h"
113         rm /sys/netinet/ip_fil_compat.h
114         ln -s /sys/netinet/ip_compat.h /sys/netinet/ip_fil_compat.h
115 fi
116
117 if [ $major != x ] ; then
118         if [ ! -e /dev/ipsync ] ; then
119                 echo "Creating /dev/ipsync"
120                 mknod /dev/ipsync c $major 4
121         fi
122
123         if [ ! -e /dev/ipsync ] ; then
124                 echo "Creating /dev/ipscan"
125                 mknod /dev/ipsync c $major 5
126         fi
127
128         if [ ! -e /dev/iplookup ] ; then
129                 echo "Creating /dev/iplookup"
130                 mknod /dev/iplookup c $major 6
131         fi
132 fi
133
134 set +e
135 os=`uname -s`
136 if [ $os = FreeBSD -a -f /sys/conf/files ] ; then
137         cd /sys/conf
138         if [ -f options ] ; then
139                 if [ ! -f options.preipf4 ] ; then
140                         mv options options.preipf4
141                         cp -p options.preipf4 options
142                 fi
143                 for i in SCAN SYNC LOOKUP COMPILED; do
144                         grep IPFILTER_$i options >/dev/null 2>&1
145                         if [ $? -ne 0 ] ; then
146                                 echo >> options
147                                 echo "# extra option for IP Filter" >> options
148                                 echo "IPFILTER_$i       opt_ipfilter.h" >> options
149                         fi
150                 done
151         fi
152         if [ ! -f files.preipf4 ] ; then
153                 mv files files.preipf4
154                 cp -p files.preipf4 files
155         fi
156         for i in htable pool lookup; do
157                 grep ip_$i.c files >/dev/null 2>&1
158                 if [ $? -ne 0 ] ; then
159                         echo "contrib/ipfilter/netinet/ip_$i.c  optional ipfilter inet ipfilter_lookup" >> files
160                 fi
161         done
162         grep ip_sync.c files >/dev/null 2>&1
163         if [ $? -ne 0 ] ; then
164                 echo 'contrib/ipfilter/netinet/ip_sync.c        optional ipfilter inet ipfilter_sync' >> files
165         fi
166         grep ip_scan.c files >/dev/null 2>&1
167         if [ $? -ne 0 ] ; then
168                 echo 'contrib/ipfilter/netinet/ip_scan.c        optional ipfilter inet ipfilter_scan' >> files
169         fi
170         grep ip_rules.c files >/dev/null 2>&1
171         if [ $? -ne 0 ] ; then
172                 echo 'contrib/ipfilter/netinet/ip_rules.c       optional ipfilter inet ipfilter_compiled' >> files
173         fi
174 fi
175 if [ $os = NetBSD -a -f /sys/conf/files ] ; then
176         cd /sys/conf
177         if [ ! -f files.preipf4 ] ; then
178                 mv files files.preipf4
179                 cp -p files.preipf4 files
180         fi
181         if [ $fullrev -ge 010600 -a $fullrev -lt 020000 ] ; then
182                 for i in htable pool lookup; do
183                         grep ip_$i.c files >/dev/null 2>&1
184                         if [ $? -ne 0 ] ; then
185                                 echo "file      netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files
186                         fi
187                 done
188                 grep ip_sync.c files >/dev/null 2>&1
189                 if [ $? -ne 0 ] ; then
190                         echo 'file      netinet/ip_sync.c       ipfilter & ipfilter_sync' >> files
191                 fi
192                 grep ip_scan.c files >/dev/null 2>&1
193                 if [ $? -ne 0 ] ; then
194                         echo 'file      netinet/ip_scan.c       ipfilter & ipfilter_scan' >> files
195                 fi
196                 grep ip_rules.c files >/dev/null 2>&1
197                 if [ $? -ne 0 ] ; then
198                         echo 'file      netinet/ip_rules.c      ipfilter & ipfilter_compiled' >> files
199                 fi
200         fi
201 fi
202 if [ $os = OpenBSD -a -f /sys/conf/files ] ; then
203         cd /sys/conf
204         if [ ! -f files.preipf4 ] ; then
205                 mv files files.preipf4
206                 cp -p files.preipf4 files
207         fi
208         if [ $fullrev -ge 030400 ] ; then
209                 for i in htable pool lookup; do
210                         grep ip_$i.c files >/dev/null 2>&1
211                         if [ $? -ne 0 ] ; then
212                                 echo "file      netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files
213                         fi
214                 done
215                 grep ip_sync.c files >/dev/null 2>&1
216                 if [ $? -ne 0 ] ; then
217                         echo 'file      netinet/ip_sync.c       ipfilter & ipfilter_sync' >> files
218                 fi
219                 grep ip_scan.c files >/dev/null 2>&1
220                 if [ $? -ne 0 ] ; then
221                         echo 'file      netinet/ip_scan.c       ipfilter & ipfilter_scan' >> files
222                 fi
223                 grep ip_rules.c files >/dev/null 2>&1
224                 if [ $? -ne 0 ] ; then
225                         echo 'file      netinet/ip_rules.c      ipfilter & ipfilter_compiled' >> files
226                 fi
227         fi
228 fi
229
230 if [ -f /usr/src/sys/modules/ipfilter/Makefile -a \
231    ! -f /usr/src/sys/modules/ipfilter/Makefile.orig ] ; then
232 cat | (cd /usr/src/sys/modules/ipfilter; patch) <<__EOF__
233 *** Makefile.orig       Mon Mar 28 09:10:11 2005
234 --- Makefile    Mon Mar 28 09:12:51 2005
235 ***************
236 *** 5,13 ****
237   KMOD= ipl
238   SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\
239 !       ip_log.c ip_fil.c fil.c
240   
241   .if !defined(NOINET6)
242   CFLAGS+= -DUSE_INET6
243   .endif
244   CFLAGS+=  -I$${.CURDIR}/../../contrib/ipfilter
245 ! CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS
246 --- 5,15 ----
247   KMOD= ipl
248   SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\
249 !       ip_log.c ip_fil.c fil.c ip_lookup.c ip_pool.c ip_htable.c \\
250 !       ip_sync.c ip_scan.c ip_rules.c
251   
252   .if !defined(NOINET6)
253   CFLAGS+= -DUSE_INET6
254   .endif
255   CFLAGS+=  -I$${.CURDIR}/../../contrib/ipfilter
256 ! CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS \\
257 !       -DIPFILTER_LOOKUP -DIPFILTER_COMPILED
258 __EOF__
259 fi
260 exit 0