#!/bin/bash arch=`uname -i` echo "num of params is $#" if [ $# -eq 1 ] ; then if [ -d $1 ] ; then RPMDIR=$1 else echo "Directory $1 does not exit" exit 1 fi else RPMDIR="SRPMS" fi cd $RPMDIR RPMLIST=`echo *src.rpm` if [ $RPMLIST = "*src.rpm" ] ; then echo "No rpms to rebuild in $RPMDIR, exiting" exit fi cd .. if [ ! -e status ]; then mkdir status; fi if [ ! -e status/complete ]; then mkdir status/complete; fi if [ ! -e done.$RPMDIR ]; then mkdir done.$RPMDIR; fi # Run in the background #if [ -z "$CHILDPROC" ] #then # export CHILDPROC="true" # $0 & # exit 0 #fi rm -f status/finished #rm -f status/buildlog echo "-----------------------------" >>status/buildlog echo `date` >>status/buildlog for RPM in $RPMLIST do if [ -f done.$RPMDIR/$RPM ] ; then echo "Skipping $RPM as it was already done" rm $RPMDIR/$RPM fi echo "Rebuilding $RPM" >> status/buildlog NAME=`rpm -qp --qf "%{NAME}" $RPMDIR/$RPM` if [ $arch = "i386" ] ; then if [ $NAME = "kernel" ] ; then RPMOPTS="--target=i386,i686,athlon" else if [ $NAME = "glibc" ] ; then RPMOPTS="--target=i386,i686" else if [ $NAME = "openssl" ] ; then RPMOPTS="--target=i386,i686" else RPMOPTS="" fi fi fi else if [ $NAME = "kernel" ] ; then RPMOPTS="--target=ia32e,x86_64" else RPMOPTS="" fi fi echo "Rebuilding $RPM with $RPMOPTS" rpmbuild --rebuild $RPMOPTS $RPMDIR/$RPM >status/$RPM.out 2>&1 grep -q "^Wrote" status/$RPM.out if [ $? -eq 0 ] then mv -f status/$RPM.out status/complete mv $RPMDIR/$RPM done.$RPMDIR echo "$RPM : success" >> status/buildlog else echo "$RPM : failed" >> status/buildlog fi done echo -n "Successfull builds: " >> status/buildlog grep 'success$' status/buildlog | wc -l >> status/buildlog echo -n "Failed builds: " >> status/buildlog grep 'failed$' status/buildlog | wc -l >> status/buildlog touch status/finished