3 # build all of openafs for all the various kernels installed on this system.
5 # Written by: Derek Atkins <warlord@MIT.EDU>
10 # Define where the Specfile is located.
11 specdir=/usr/src/redhat/SPECS
13 # Define the rpmbuild options you want to supply.
16 ############################################################################
17 # Figure out the release version
18 [ -f /etc/redhat-release ] && rhrel=`cat /etc/redhat-release`
19 [ -f /etc/SuSE-release ] && rhrel=`head -1 /etc/SuSE-release`
21 if [ `echo $rhrel | grep -c 'Fedora Core'` = 1 ] ; then
23 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
24 elif [ `echo $rhrel | grep -c 'Fedora'` = 1 ] ; then
26 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
27 elif [ `echo $rhrel | grep -c 'Red Hat Enterprise Linux'` = 1 ] ; then
30 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
31 elif [ `echo $rhrel | grep -c 'CentOS'` = 1 ] ; then
34 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
35 elif [ `echo $rhrel | grep -c 'Red Hat Linux'` = 1 ] ; then
37 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
38 elif [ `echo $rhrel | grep -c 'SUSE LINUX'` = 1 ] ; then
40 specdir=/usr/src/packages/SPECS
41 osrel=`grep VERSION /etc/SuSE-release|awk '{print $3}'`
43 echo "Unknown Linux Release: $rhrel"
46 osvers="$ostype$osrel"
48 ############################################################################
49 # Now figure out the kernel version. We assume that the running
50 # kernel version is "close enough" to tell us whether it's a
60 [ -d /usr/src/kernels ] && kbase=/usr/src/kernels/
64 echo "I don't know how to build for kernel $kvers"
68 ############################################################################
69 # Now build the packages and all the kernel modules
71 echo "Building OpenAFS for $osvers"
72 rpmbuild -ba $buildopts --define "osvers $osvers" $specdir/openafs.spec || \
75 kernels=`ls -d ${kbase}${kv}*`
77 for kerndir in $kernels ; do
79 if [ ! -h $kerndir ] ; then
80 vers=`echo $kerndir | sed -e "s^${kbase}^^g" -e 's/-smp/smp/g' \
81 -e 's/-hugemem/hugemem/g' -e 's/-largesmp/largesmp/g'`
82 if [ $kv = "2.4." ] ; then
85 i386|i486|i586|i686|athlon) archlist="i586 i686 athlon" ;;
86 *) archlist=`uname -m` ;;
88 for a in $excludearch ; do
89 archlist=`echo $archlist | sed -e s/$a//`
93 karch=`echo $vers | sed 's/.*-//'`
94 kvers=`echo $vers | sed s/-$karch//`
99 for arch in $archlist ; do
100 echo "Building for $kerndir, $kvers, $arch"
101 rpmbuild -bb $buildopts \
102 --define "osvers $osvers" \
103 --define "kernvers $kvers" \
104 --define "ksrcdir $kerndir" \
105 --define "build_modules 1" \
107 $specdir/openafs.spec || exit 1