. ../locations.include MYPWD=`pwd` export MYPWD if [ $ARCH != `uname -i` ] ; then echo "You seem to be trying to build arch $ARCH , on a `uname -i` system" echo "exiting" exit 1 fi MEDIA=$1 if [ -z $MEDIA ] ; then echo "You must pass either \"CD\" or \"DVD\" " exit 1 fi if [ $MEDIA = "dvd" -o $MEDIA = "DVD" ] ; then echo "You selected to create DVD iso images" TOTBINISO=$TOTBINDVD TOTISO=$TOTDVD TOTSRCISO=$TOTSRCDVD DISCSIZE=$DISCSIZEDVD MEDIA="DVD" else if [ $MEDIA = "cd" -o $MEDIA = "CD" ] ; then echo "You selected to create CD iso images" TOTBINISO=$TOTBINCD TOTISO=$TOTCD TOTSRCISO=$TOTSRCCD DISCSIZE=$DISCSIZECD MEDIA="CD" else echo "You must pass either \"CD\" or \"DVD\" " exit 1 fi fi #clean up old ones echo "Cleaning up old directories" for i in $(seq $TOTCD) do if [ -d $RELEASEDIR/$ARCH-disc0-disc$i ] ; then rm -r $RELEASEDIR/$ARCH-disc0-disc$i fi done if [ -d $RELEASEDIR/$ARCH-disc0 ] ; then rm -r $RELEASEDIR/$ARCH-disc0 fi mkdir -p $RELEASEDIR/$ARCH-disc0 # Make disc0 #copy in isolinux and special *.iso config files #sh $MYPWD/subscripts/fix.isolinux.sh mkdir -p $RELEASEDIR/$ARCH-disc0/isolinux cp -fa $RELEASEDIR/$ARCH/$SITEDIR/isolinux/* $RELEASEDIR/$ARCH-disc0/isolinux/ if [ -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/isolinux.cfg.iso ] ; then cp -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/isolinux.cfg.iso $RELEASEDIR/$ARCH-disc0/isolinux/isolinux.cfg fi if [ -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/boot.msg.iso ] ; then cp -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/boot.msg.iso $RELEASEDIR/$ARCH-disc0/isolinux/boot.msg fi if [ ! -d $RELEASEDIR/$ARCH/$SITEDIR ] ; then mkdir -p $RELEASEDIR/$ARCH/$SITEDIR fi if [ -d $RELEASEDIR/$ARCH/$SITEDIR/RHupdates ] ; then cp -a $RELEASEDIR/$ARCH/$SITEDIR/RHupdates $RELEASEDIR/$ARCH-disc0/$SITEDIR/ fi #make updates.img from original area and copy in cd $MYPWD/.. ./make.updates.img.sh #Copy over misc things cp $RELEASEDIR/$ARCH/.discinfo $RELEASEDIR/$ARCH-disc0/ #copy in $SITEDIR/RPMS which are RPMS echo "Copying over the rpms" mkdir -p $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS cd $RELEASEDIR/$ARCH/$SITEDIR/RPMS ln *.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS cd $RELEASEDIR/$ARCH/$SITEDIR/updates/security echo "Adding in security rpms now" ln *.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS cd $RELEASEDIR/$ARCH/$SITEDIR/SITERPMS echo "Adding in SITERPMS rpms now" ln -f *.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS cd $RELEASEDIR/$ARCH/$SITEDIR/workgroups echo "Adding in workgroup rpms now" find . -name "*.rpm" -print | xargs cp -av --target-directory=$RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS/ cd - mkdir $RELEASEDIR/$ARCH-disc0/repodata/ mkdir -p $RELEASEDIR/$ARCH-disc0/build/base/ cp -av $RELEASEDIR/$ARCH/$SITEDIR/build/base/* $RELEASEDIR/$ARCH-disc0/build/base/ cp -av $RELEASEDIR/$ARCH/$SITEDIR/SITERPMS/repodata/comps-site.xml $RELEASEDIR/$ARCH-disc0/repodata/ # echo "Doing a createrepo of $RELEASEDIR/$ARCH-disc0 in quiet mode" cd $RELEASEDIR/$ARCH-disc0 createrepo -q -g $RELEASEDIR/$ARCH-disc0/repodata/comps-site.xml . cd - echo "Using $RELEASEDIR/$ARCH-disc0/build/base/pkgorder as the fileorder file" #echo "and not making a new one" echo "and making a new one" $MYPWD/pkgorder.site $RELEASEDIR/$ARCH-disc0/ $ARCH $SITEDIR > /tmp/pkgorder #openafs-kernel-source is not getting on the cd so adding it manually grep openafs-kernel-source /tmp/pkgorder if [ $? -eq 1 ] ; then cd $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS ls openafs-kernel-source* >> /tmp/pkgorder cd - fi cp -v /tmp/pkgorder $RELEASEDIR/$ARCH-disc0/build/base/pkgorder #Run splittree.py to split the $SITEDIR/RPMS onto multiple cd's echo "Total Binary dvd is $TOTBINISO, Total SRC dvd is $TOTSRCISO" echo "Running splittree to decide on how to span the DVD/CD iso images" echo "$MYPWD/splittree.py --arch=$ARCH --total-discs=$TOTISO " \ "--bin-discs=$TOTBINISO --src-discs=$TOTSRCISO --release-string=$SITE " \ "--pkgorderfile=/tmp/pkgorder " \ "--disc-size=$DISCSIZE " \ "--srcdir=$RELEASEDIR/SRPMS/$SITEDIR/ --distdir=$RELEASEDIR/$ARCH-disc0 " \ "--productpath=$SITEDIR --reserve-size=$ISO1RESERVESIZE" $MYPWD/splittree.py --arch=$ARCH --total-discs=$TOTISO \ --bin-discs=$TOTBINISO --src-discs=$TOTSRCISO --release-string=$SITEDIR \ --pkgorderfile=/tmp/pkgorder \ --disc-size=$DISCSIZE \ --srcdir=$RELEASEDIR/SRPMS/$SITEDIR/ --distdir=$RELEASEDIR/$ARCH-disc0 \ --productpath=$SITEDIR --reserve-size=$ISO1RESERVESIZE cd $RELEASEDIR mkdir -p $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/SITERPMS/repodata cp -av $RELEASEDIR/$ARCH/$SITEDIR/SITERPMS/repodata/comps-site.xml $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/SITERPMS/repodata #The following is because the x86_64 version needs a rpm in the repo, or it dies ln $RELEASEDIR/$ARCH/$SITEDIR/SITERPMS/yum-conf-5x* $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/SITERPMS/ cd $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/SITERPMS/ echo "running createrepo with the quite option" createrepo -q -g repodata/comps-site.xml . cd $MYPWD TMPBINAREA=`echo $ARCH-disc0-disc[1-$TOTBINISO]/$SITEDIR/RPMS $ARCH-disc0-disc1/$SITEDIR/SITERPMS` echo "Running createrepo against $TMPBINAREA in quiet mode" MDATE=`date "+%s"` echo "/usr/bin/createrepo " \ "--groupfile $RELEASEDIR/$ARCH/$SITEDIR/RPMS/repodata/comps-sl.xml " \ "--baseurl media://$MDATE.836690 " \ "--outputdir $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/ " \ "--basedir $RELEASEDIR " \ "--split $TMPBINAREA" cd $RELEASEDIR /usr/bin/createrepo -q \ --groupfile $RELEASEDIR/$ARCH/$SITEDIR/RPMS/repodata/comps-sl.xml \ --baseurl media://$MDATE.836690 \ --outputdir $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/ \ --basedir $RELEASEDIR \ --split $TMPBINAREA if [ -d $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/repodata ] ; then mv $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/repodata $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/RPMS fi echo "Copying things to disc1" mkdir -p $RELEASEDIR/$ARCH-disc0-disc1/images echo "CCC" if [ -d $TREE/$SITEDIR/images ] ; then echo "CCD" cd $TREE/$SITEDIR/images find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc1/images cd $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/ ln -s ../../images images fi echo $TREE mkdir $RELEASEDIR/$ARCH-disc0-disc1/RPM-GPG-KEYs cp -a $RELEASEDIR/$ARCH/RPM-GPG-KEYs $RELEASEDIR/$ARCH-disc0-disc1/RPM-GPG-KEYs #copy in the documentation if [ -d $RELEASEDIR/$ARCH/$DEFAULT.documentation ] ; then mkdir $RELEASEDIR/$ARCH-disc0-disc1/$DEFAULT.documentation cp -ra $RELEASEDIR/$ARCH/$DEFAULT.documentation/ $RELEASEDIR/$ARCH-disc0-disc1/ fi cp -p $RELEASEDIR/$ARCH/$SITEDIR/$SITE.releasenote* $RELEASEDIR/$ARCH-disc0-disc1/ cp -p $RELEASEDIR/$ARCH/README $RELEASEDIR/$ARCH-disc0-disc1/ ln -f $RELEASEDIR/$ARCH/GPL $RELEASEDIR/$ARCH-disc0-disc1/ cp -p $RELEASEDIR/$ARCH/RELEASE-NOTES*.html $RELEASEDIR/$ARCH-disc0-disc1/ #workgroups need the comps files and repomd.xml mkdir -p $RELEASEDIR/$ARCH-disc0/$ARCH-disc0-disc1/$SITEDIR/workgroups/ cd $RELEASEDIR/$ARCH/$SITEDIR/workgroups find . -name "comps*" -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/workgroups/ find . -name "repomd.xml" -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/workgroups/ cd $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/workgroups/ for i in * do cd $i createrepo -g repodata/comps-workgroup.xml . cd - done cd $MYPWD if [ -d $TREE/updates/fastbugs/ ] ; then mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/fastbugs/ cd $TREE/updates/fastbugs/ ln $TREE/updates/fastbugs/*.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTISO/fastbugs/ createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTISO/fastbugs fi if [ -d $TREE/$SITEDIR/updates/security/ ] ; then mkdir -p $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/updates/security/ # cd $TREE/$SITEDIR/updates/security/ # ln $TREE/$SITEDIR/updates/security/*.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTISO/security/ createrepo $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/updates/security fi if [ -d $RELEASEDIR/$ARCH-disc0/$SITEDIR/build/ ] ; then mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/build/ cp -a $TREE/$SITEDIR/build/* $RELEASEDIR/$ARCH-disc0-disc$TOTISO/build/ mv -f $RELEASEDIR/$ARCH-disc0/build/base/* $RELEASEDIR/$ARCH-disc0-disc$TOTISO/build/base/ if [ -d $RELEASEDIR/$ARCH-disc0-disc1/build/base ] ; then rm -r $RELEASEDIR/$ARCH-disc0-disc1/build/base rmdir $RELEASEDIR/$ARCH-disc0-disc1/build fi fi if [ -d $RELEASEDIR/$ARCH/$SITEDIR/contrib/ ] ; then mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/ cd $RELEASEDIR/$ARCH/$SITEDIR//contrib/ for i in * do if [ ! $i = "headers" ] ; then if [ -d $i ] ; then mkdir $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/$i ln $RELEASEDIR/$ARCH/$SITEDIR/contrib/$i/* $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/$i/ fi fi done cd $RELEASEDIR/$ARCH/$SITEDIR/contrib/SRPMS/ for i in * do if [ -d $i ] ; then mkdir $RELEASEDIR/$ARCH-disc0-disc$TOTISO/SRPMS ln $RELEASEDIR/$ARCH/$SITEDIR/contrib/SRPMS/$i/*.src.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTISO/SRPMS/ fi done createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib fi if [ -d $SLRELEASEDIR/SRPMS/SL ] ; then ln $SLRELEASEDIR/SRPMS/SL/*.src.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTISO/SRPMS/ fi if [ -d $RELEASEDIR/$ARCH-disc0-disc1/repodata ] ; then rm -r $RELEASEDIR/$ARCH-disc0-disc1/repodata fi echo `date` > $RELEASEDIR/$ARCH-disc0-disc1/.$MEDIA