#! /bin/bash export PYTHONPATH=/usr/lib/anaconda VERSION=build8 BUILDDIR=/home/centos/build2 DISTDIR=/centos-3/$VERSION BUILDTIME=`date +%Y%m%d%H%M` LOGFILE=$DISTDIR/build.$BUILDTIME.log echo "Starting Build ... - logging to $LOGFILE" echo "Starting Build" > $LOGFILE #run as root ... ## Clean out build area rm -f $BUILDDIR/SRPMS/* rm -f $BUILDDIR/RPMS/i386/* rm -f $BUILDDIR/RPMS/noarch/* rm -f $BUILDDIR/RPMS/athlon/* rm -f $BUILDDIR/RPMS/i686/* rm -f $BUILDDIR/RPMS/i486/* rm -f $BUILDDIR/RPMS/i586/* rm -rf $BUILDDIR/BUILD/* ## Build comps echo "Building Comps" rpmbuild -ba $BUILDDIR/SPECS/comps-centos.spec >> $LOGFILE 2>&1 cp $BUILDDIR/SRPMS/comps* $DISTDIR/SRPMS.centos/ >> $LOGFILE 2>&1 rm -f $DISTDIR/i386/RedHat/RPMS/comps-3* >> $LOGFILE 2>&1 cp $BUILDDIR/RPMS/i386/comps* $DISTDIR/i386/RedHat/RPMS/ >> $LOGFILE 2>&1 cp -f $BUILDDIR/RPMS/i386/comps* $DISTDIR/i386/RedHat/base/comps.rpm >> $LOGFILE 2>&1 ## Build centos-yumcache echo "Building Yumcache" rpmbuild -ba $BUILDDIR/SPECS/centos-yumcache-3.1.spec >> $LOGFILE 2>&1 cp $BUILDDIR/SRPMS/centos-yumcache* $DISTDIR/SRPMS.centos/ >> $LOGFILE 2>&1 rm -f $DISTDIR/i386/RedHat/RPMS/centos-yumcache* >> $LOGFILE 2>&1 cp $BUILDDIR/RPMS/noarch/centos-yumcache* $DISTDIR/i386/RedHat/RPMS/ >> $LOGFILE 2>&1 ## Build rpmdb echo "Building Rpmdb" # remove in case it is installed rpm -e rpmdb-redhat >> $LOGFILE 2>&1 echo "error rpmdb-redhat not installed is good !!" >> $LOGFILE echo "cos otherwise rpmdb-redhat wont build properly" >> $LOGFILE rpmbuild -ba $BUILDDIR/SPECS/rpmdb-redhat.spec >> $LOGFILE 2>&1 cp $BUILDDIR/SRPMS/rpmdb-redhat* $DISTDIR/SRPMS.centos/ >> $LOGFILE 2>&1 rm -f $DISTDIR/i386/RedHat/RPMS/rpmdb-redhat* >> $LOGFILE 2>&1 cp $BUILDDIR/RPMS/i386/rpmdb-redhat* $DISTDIR/i386/RedHat/RPMS/ >> $LOGFILE 2>&1 cd $DISTDIR/ ## Run genhd first time echo "Running genhdlist" /usr/lib/anaconda-runtime/genhdlist \ --fileorder $DISTDIR/i386/pkgorder-i386.txt \ $DISTDIR/i386 >> $LOGFILE 2>&1 ## then pkgorder echo "Getting pkgorder" /usr/lib/anaconda-runtime/pkgorder \ $DISTDIR/i386 i386 \ >$DISTDIR/i386/pkgorder-i386.txt 2>> $LOGFILE ## then genhd again echo "Running genhdlist again" /usr/lib/anaconda-runtime/genhdlist \ --fileorder $DISTDIR/i386/pkgorder-i386.txt \ $DISTDIR/i386 >> $LOGFILE 2>&1 ## then build installer echo "Building Installer" /usr/lib/anaconda-runtime/buildinstall --comp dist-3.0 \ --pkgorder $DISTDIR/i386/pkgorder-i386.txt \ --release final \ --product CentOS-3 \ --version 3.0 $DISTDIR/i386/ >> $LOGFILE 2>&1 echo "Making srpm repo" cd $DISTDIR/scripts >> $LOGFILE 2>&1 ./mksrpms >> $LOGFILE 2>&1 cd $DISTDIR >> $LOGFILE 2>&1 echo "Splitting Tree" /usr/lib/anaconda-runtime/splittree.py --arch=i386 --total-discs=6 \ --bin-discs=3 --src-discs=3 \ --release-string=CentOS-3 \ --pkgorderfile=$DISTDIR/i386/pkgorder-i386.txt \ --distdir=$DISTDIR/i386/ \ --srcdir=$DISTDIR/SRPMS/ >> $LOGFILE 2>&1 rm -rf $DISTDIR/i386-disc* >> $LOGFILE 2>&1 mv $DISTDIR/i386/-disc1/ $DISTDIR/i386-disc1 >> $LOGFILE 2>&1 mv $DISTDIR/i386/-disc2/ $DISTDIR/i386-disc2 >> $LOGFILE 2>&1 mv $DISTDIR/i386/-disc3/ $DISTDIR/i386-disc3 >> $LOGFILE 2>&1 mv $DISTDIR/i386/-disc4/ $DISTDIR/i386-disc4 >> $LOGFILE 2>&1 mv $DISTDIR/i386/-disc5/ $DISTDIR/i386-disc5 >> $LOGFILE 2>&1 mv $DISTDIR/i386/-disc6/ $DISTDIR/i386-disc6 >> $LOGFILE 2>&1 ## run genhd on isos echo "Running genhdlist on isos" rm $DISTDIR/i386-disc1/RedHat/base/hdlist* >> $LOGFILE 2>&1 /usr/lib/anaconda-runtime/genhdlist \ --withnumbers --fileorder $DISTDIR/i386/pkgorder-i386.txt \ $DISTDIR/i386-disc[123] >> $LOGFILE 2>&1 echo "Building final comps" ## build final comps rm -f $BUILDDIR/RPMS/i386/comps* >> $LOGFILE 2>&1 rpmbuild -ba $BUILDDIR/SPECS/comps-centos.spec >> $LOGFILE 2>&1 cp $BUILDDIR/SRPMS/comps* $DISTDIR/SRPMS.centos/ >> $LOGFILE 2>&1 rm -f $DISTDIR/i386-disc1/RedHat/RPMS/comps-3* >> $LOGFILE 2>&1 cp $BUILDDIR/RPMS/i386/comps* $DISTDIR/i386-disc1/RedHat/RPMS/ >> $LOGFILE 2>&1 rm -f $DISTDIR/i386-disc1/RedHat/base/comps.rpm >> $LOGFILE 2>&1 cp -f $BUILDDIR/RPMS/i386/comps* $DISTDIR/i386-disc1/RedHat/base/comps.rpm >> $LOGFILE 2>&1 ## copy extra repos into disc 3 ## WARNING - at the moment there is space there - may not always be cp -al $DISTDIR/addons $DISTDIR/i386-disc3/ >> $LOGFILE 2>&1 cp -al $DISTDIR/extras $DISTDIR/i386-disc3/ >> $LOGFILE 2>&1 cp -al $DISTDIR/updates $DISTDIR/i386-disc3/ >> $LOGFILE 2>&1 echo "Writing isos" ## write the isos publisher='Caos Project' bootimg='isolinux/isolinux.bin' bootcat='isolinux/boot.cat' distname='CentOS' distvers='3.1' #mkisopts='-r -N -L -d -D -J' mkisopts='-r -J' today="$(date '+%d %b %Y')" mkisofs $mkisopts \ -V "CentOS-3 Disk 1" \ -A "CentOS-3 created on $today" \ -P "$publisher" \ -p "$publisher" \ -b "$bootimg" \ -c "$bootcat" \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -x lost+found \ -o "$distname"-1.iso \ i386-disc1 >> $LOGFILE 2>&1 /usr/lib/anaconda-runtime/implantisomd5 "$distname"-1.iso >> $LOGFILE 2>&1 for i in 2 3 4 5 6 ; do mkisofs $mkisopts \ -V "CentOS-3 Disk $i" \ -A "CentOS-3 created $today" \ -P "$publisher" \ -p "$publisher" \ -x lost+found \ -o "$distname"-${i}.iso \ i386-disc${i} >> $LOGFILE 2>&1 /usr/lib/anaconda-runtime/implantisomd5 "$distname"-${i}.iso >> $LOGFILE 2>&1 done echo "Finished - log is $LOGFILE"