Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / packaging / RedHat / openafs-buildall.sh
CommitLineData
805e021f
CE
1#!/bin/sh
2#
3# build all of openafs for all the various kernels installed on this system.
4#
5# Written by: Derek Atkins <warlord@MIT.EDU>
6#
7# $Revision$
8#
9
10# Define where the Specfile is located.
11specdir=/usr/src/redhat/SPECS
12
13# Define the rpmbuild options you want to supply.
14buildopts=
15
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`
20
21if [ `echo $rhrel | grep -c 'Fedora Core'` = 1 ] ; then
22 ostype='fc'
23 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
24elif [ `echo $rhrel | grep -c 'Fedora'` = 1 ] ; then
25 ostype='fc'
26 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
27elif [ `echo $rhrel | grep -c 'Red Hat Enterprise Linux'` = 1 ] ; then
28 ostype='rhel'
29 excludearch=i586
30 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
31elif [ `echo $rhrel | grep -c 'CentOS'` = 1 ] ; then
32 ostype='rhel'
33 excludearch=i586
34 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
35elif [ `echo $rhrel | grep -c 'Red Hat Linux'` = 1 ] ; then
36 ostype='rh'
37 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
38elif [ `echo $rhrel | grep -c 'SUSE'` = 1 ] ; then
39 ostype='suse'
40 specdir=/usr/src/packages/SPECS
41 osrel=`grep VERSION /etc/SuSE-release|awk '{print $3}'`
42else
43 echo "Unknown Linux Release: $rhrel"
44 exit 1
45fi
46osvers="$ostype$osrel"
47
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
51# 2.4 or 2.6 kernel.
52kvers=`uname -r`
53kbase=/usr/src/linux-
54
55case $kvers in
56 2.4.*)
57 kv=2.4.
58 ;;
59 2.6.*)
60 [ -d /usr/src/kernels ] && kbase=/usr/src/kernels/
61 kv=2.6.
62 ;;
63 *)
64 echo "I don't know how to build for kernel $kvers"
65 exit 1
66 ;;
67esac
68############################################################################
69# Now build the packages and all the kernel modules
70
71echo "Building OpenAFS for $osvers"
72rpmbuild -ba $buildopts --define "osvers $osvers" $specdir/openafs.spec || \
73 exit 1
74
75kernels=`ls -d ${kbase}${kv}*`
76
77for kerndir in $kernels ; do
78 # Ignore symlinks
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
83 kvers=$vers
84 case `uname -m` in
85 i386|i486|i586|i686|athlon) archlist="i586 i686 athlon" ;;
86 *) archlist=`uname -m` ;;
87 esac
88 for a in $excludearch ; do
89 archlist=`echo $archlist | sed -e s/$a//`
90 done
91 kend="''"
92 else
93 karch=`echo $vers | sed 's/.*-//'`
94 kvers=`echo $vers | sed s/-$karch//`
95 archlist=$karch
96 kend=-$karch
97 fi
98
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" \
106 --target=$arch \
107 $specdir/openafs.spec || exit 1
108 done
109 fi
110done