../locations.include if [ -f ./locations.include.site ] ; then . ./locations.include.site fi MYPWD=`pwd` export MYPWD #clean up old ones for i in 1 2 3 4 5 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 if [ -d $RELEASEDIR/$ARCH-disc0-SRPMS ] ; then rm -r $RELEASEDIR/$ARCH-disc0-SRPMS fi if [ -d $RELEASEDIR/$ARCH-disc0-CONTRIB ] ; then rm -r $RELEASEDIR/$ARCH-disc0-CONTRIB fi # Make disc0 #link $SITE and $DEFAULT together to not have to change anaconda anymore mkdir -vp $RELEASEDIR/$ARCH-disc0/$DEFAULT mkdir -vp $RELEASEDIR/$ARCH-disc0/sites cd $RELEASEDIR/$ARCH-disc0/ #ln -s $DEFAULT $SITE cd sites ln -s ../../$DEFAULT/RPMS $SITE/RPMS cd $MYPWD #copy in $SITE/base mkdir -v $RELEASEDIR/$ARCH-disc0/$SITE/base cp -a $RELEASEDIR/$ARCH/sites/$SITE/base/* $RELEASEDIR/$ARCH-disc0/$SITE/base/ #copy in $SITE/documentation mkdir $RELEASEDIR/$ARCH-disc0/documentation cp -a $RELEASEDIR/$ARCH/sites/$SITE/documentation/* $RELEASEDIR/$ARCH-disc0/documentation/ if [ -f $RELEASEDIR/$ARCH/sites/$SITE/documentation/$SITE.releasenote ] ; then cp $RELEASEDIR/$ARCH/sites/$SITE/documentation/$SITE.releasenote $RELEASEDIR/$ARCH-disc0/ fi cp $RELEASEDIR/$ARCH/$DEFAULT.*releasenote $RELEASEDIR/$ARCH-disc0/ cp $RELEASEDIR/$ARCH/README $RELEASEDIR/$ARCH-disc0/ #copy in $SITE/isolinux and special *.iso config files mkdir $RELEASEDIR/$ARCH-disc0/isolinux cp -f $RELEASEDIR/$ARCH/sites/$SITE/isolinux/* $RELEASEDIR/$ARCH-disc0/isolinux/ if [ -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/isolinux.cfg.iso ] ; then cp -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/isolinux.cfg.iso $RELEASEDIR/$ARCH-disc0/isolinux/isolinux.cfg fi if [ -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/boot.msg.iso ] ; then cp -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/boot.msg.iso $RELEASEDIR/$ARCH-disc0/isolinux/boot.msg fi #make updates.img from original area and copy in $MYPWD/../make.updates.img.sh #Copy over misc things cp $RELEASEDIR/$ARCH/sites/$SITE/.discinfo $RELEASEDIR/$ARCH-disc0/ mkdir -p $RELEASEDIR/$ARCH-disc0/$SITE/build cp -a $RELEASEDIR/$ARCH/sites/$SITE/build $RELEASEDIR/$ARCH-disc0/$SITE/ cp -a $RELEASEDIR/$ARCH/RPM-GPG-KEYs $RELEASEDIR/$ARCH-disc0/ cp -a $RELEASEDIR/$ARCH/RELEASE-NOTES*.html $RELEASEDIR/$ARCH-disc0/ #Check size of $SITE/Updates . Current limitation is that is must fit on #one cdr along with the other things that we need. So this means it has to #less than AVAIL=550 SIZE=`du -s -BM $RELEASEDIR/$ARCH-disc0 | cut -f1` echo $SIZE if [ $SIZE -gt $AVAIL ] ; then echo "Your $RELEASEDIR/sites/$SITE/Updates area is $SIZE MB big which is larger than a cdr along with the other files that we need, you need to use less than $AVAIL MB" exit 1 fi #copy in $SITE/Updates which are RPMS for $SITE mkdir $RELEASEDIR/$ARCH-disc0/$SITE/Updates ln $RELEASEDIR/$ARCH/sites/$SITE/Updates/*.rpm $RELEASEDIR/$ARCH-disc0/$SITE/Updates #copy in $DEFAULT/RPMS which are the default rpms mkdir -p $RELEASEDIR/$ARCH-disc0/$SITE/RPMS ln $RELEASEDIR/$ARCH/$DEFAULT/RPMS/*.rpm $RELEASEDIR/$ARCH-disc0/$SITE/RPMS/ # #Need to make this directory no matter what as splittree expects it mkdir -p $RELEASEDIR/$ARCH-disc0-SRPMS if [ -d $RELEASEDIR/SRPMS ] ; then ln $RELEASEDIR/SRPMS/*.src.rpm $RELEASEDIR/$ARCH-disc0-SRPMS fi if [ -d $RELEASEDIR/$ARCH/sites/$SITE/SRPMS ] ; then ln $RELEASEDIR/$ARCH/sites/$SITE/SRPMS/* $RELEASEDIR/$ARCH-disc0-SRPMS fi #Now made a temp area for contrib mkdir -p $RELEASEDIR/$ARCH-disc0-CONTRIB if [ -d $RELEASEDIR/$ARCH/contrib/RPMS ] ; then cd $RELEASEDIR/$ARCH/contrib/ find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-CONTRIB fi if [ -d $RELEASEDIR/$ARCH/sites/$SITE/contrib ] ; then cd $RELEASEDIR/$ARCH/sites/$SITE/contrib/ find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-CONTRIB fi # echo "Using $RELEASEDIR/$ARCH/sites/$SITE/base/$FILEORDER as the fileorder file" #echo "and not making a new one" #cp -v $RELEASEDIR/$ARCH/sites/$SITE/base/$FILEORDER $RELEASEDIR/$ARCH-disc0/$SITE/base/ echo "and making a new one" $ANACONDADIR/pkgorder $RELEASEDIR/$ARCH $ARCH --product sites/$SITE > $RELEASEDIR/$ARCH-disc0/$SITE/base/$FILEORDER #Run splittree.py to split the $DEFAULT/RPMS onto multiple cd's echo "Running splittree to decide on how to span the cd images" #Depending on how many RPMS you have in /Updates you might have to increase # LASTSRCDISK and LASTBINDISK , look at output and if you see messages about # rpms not fitting then you need to increase these. LASTDISC=4 BINDISC=4 TOTCD=4 TOTSRCDISC=1 $ANACONDADIR/splittree.py --arch=$ARCH --total-discs=$TOTCD --bin-discs=$BINDISC --src-discs=$TOTSRCDISC --release-string=$SITE --default=$DEFAULT --pkgorderfile=$RELEASEDIR/$ARCH-disc0/$SITE/base/$FILEORDER --distdir=$RELEASEDIR/$ARCH-disc0 --srcdir=$RELEASEDIR/$ARCH-disc0-SRPMS #Need to remake these links on $ARCH-disc0-disc1 as splittree did not preserve echo "making special directories on $RELEASEDIR/$ARCH-disc0-disc1" mkdir -vp $RELEASEDIR/$ARCH-disc0-disc1/sites cd $RELEASEDIR/$ARCH-disc0-disc1/ #ln -s $DEFAULT $SITE cd sites #ln -s ../$DEFAULT $SITE #Run genhdlist to create new hdlists with cd numbers if [ -s $RELEASEDIR/$ARCH-disc0/$SITE/base/excludedrpms.cdrom ] ; then GENHDLIST="$ANACONDADIR/genhdlist $1 --ignorefile $RELEASEDIR/$ARCH-disc0/$SITE/base/excludedrpms.cdrom --ignorelog $RELEASEDIR/$ARCH-disc0/$SITE/base/excludedrpms.cdrom.ignored " else GENHDLIST=$ANACONDADIR/genhdlist $1 fi TMPBINAREA=`echo $RELEASEDIR/$ARCH-disc0-disc[1-$BINDISC]` echo "Running genhdlist against $TMPBINAREA" cd $RELEASEDIR $GENHDLIST --withnumbers --fileorder `pwd`/$ARCH-disc0/$SITE/base/$FILEORDER --default $DEFAULT --site $SITEDIR $TMPBINAREA if [ -s $RELEASEDIR/$ARCH-disc0/$SITE/base/excludedrpms.cdrom.ignored ] ; then rm /tmp/excluded 2>/dev/null rm /tmp/excluded.asked 2>/dev/null rm /tmp/excluded.found 2>/dev/null sort ../../base/excludedrpms.cdrom | uniq >/tmp/excluded.asked sort ../../base/excludedrpms.cdrom.ignored | uniq > /tmp/excluded.found comm -3 /tmp/excluded.asked /tmp/excluded.found | grep -v "^#" > /tmp/excluded if [ -s /tmp/excluded ] ; then echo "" echo "These file entries from your excludedrpms file were not found" echo "-------------------------------------------------------------" cat /tmp/excluded echo "-------------------------------------------------------------" fi fi cd / #Have to move contrib areas to cds CDSIZE=`expr 650 \* 1024` # 650MB in k EXTRA=`expr 5 \* 1024` CONTRIBRPMS=`du -ks $RELEASEDIR/$ARCH-disc0-CONTRIB | cut -f1` IMAGES=`du -ks $TREE/sites/$SITE/images | cut -f1` SPACELEFTONBIN=`du -ks $RELEASEDIR/$ARCH-disc0-disc$BINDISC | cut -f1` SPACELEFTONLASTBIN=`expr $CDSIZE - $SPACELEFTONBIN` contrib="nope" #copy in images/ to last bin cd if it fits if [ $SPACELEFTONLASTBIN -gt $IMAGES ] ; then #copy in images mkdir -p $RELEASEDIR/$ARCH-disc0-disc$BINDISC/images cd $TREE/sites/$SITE/images/ find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$BINDISC/images/ SPACELEFTONBIN=`du -ks $RELEASEDIR/$ARCH-disc0-disc$BINDISC | cut -f1` SPACELEFTONLASTBIN=`expr $CDSIZE - $SPACELEFTONBIN` else #copy in images to last disk mkdir -p $RELEASEDIR/$ARCH-disc0-disc$LASTDISC/images cd $TREE/sites/$SITE/images/ find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$BINDISC/images/ SPACELEFTONSRPM=`du -ks $RELEASEDIR/$ARCH-disc0-disc$LASTDISC | cut -f1` SPACELEFTONLASTSRPM=`expr $CDSIZE - $SPACELEFTONSRPM` fi # maybe contrib will fit if [ $SPACELEFTONLASTBIN -gt $CONTRIBRPMS ] ; then #copy in contrib/RPMS mkdir -p $RELEASEDIR/$ARCH-disc0-disc$BINDISC/contrib cd $RELEASEDIR/$ARCH-disc0-CONTRIB/ find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$BINDISC/contrib contrib="done" echo "Put contrib rpms on cd $BINDISC" fi SPACELEFTONSRPM=`du -ks $RELEASEDIR/$ARCH-disc0-disc$LASTDISC | cut -f1` SPACELEFTONLASTSRPM=`expr $CDSIZE - $SPACELEFTONSRPM` if [ ! $contrib = "done" ] ; then # contrib didnt fit so lets try the last srpm disc if [ $SPACELEFTONLASTSRPM -gt $CONTRIBRPMS ] ; then #copy in contrib/RPMS mkdir -p $RELEASEDIR/$ARCH-disc0-disc$LASTDISC/contrib cd $RELEASEDIR/$ARCH-disc0-CONTRIB/ find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$LASTDISC/contrib/ contrib="done" echo "Put contrib rpms on cd $LASTDISC" fi fi if [ ! $contrib = "done" ] ; then # contrib did not fit on last SRPM disk either # For now just make a new disk and put contrib on it # check to see if contrib is > 1 disk - needs to handle it (later) if [ $CONTRIBRPMS -gt $CDSIZE ] ; then echo "Contribs is > 1 CD - the last iso will be too big, skipping" else TOTCD=`expr $LASTDISC + 1 ` contrib="contribonlylast" #copy in contrib/RPMS to either last or a new one mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/RPMS cd $TREE/contrib/RPMS/ find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/RPMS/ echo "Put contrib rpms on cd $TOTCD" fi fi #Now make the iso images #CHECK that $CDISOAREA exists and make if it does not if [ -d $CDISOAREA ] ; then echo "Creating CD iso images in $CDISOAREA" else mkdir -p $CDISOAREA fi CDNAME=$CDISOAREA/$DEFAULT.$SITE.$VERSION.$DATE.$ARCH # Make disc1 CDNUM=1 cd $MYPWD/subscripts $MYPWD/subscripts/makeapt.site.iso.sh $CDNUM echo "Making iso image for disc$CDNUM now" sh $MYPWD/subscripts/mkisoimage.disc$CDNUM.site.sh --subdir $ARCH-disc0-disc$CDNUM --dest $CDNAME.disc$CDNUM.iso echo "implanting md5sum in disc$CDNUM now" $ANACONDADIR/implantisomd5 $CDNAME.disc$CDNUM.iso # Make discx CDNUM=2 while [ $CDNUM -le $TOTCD ] do cd $MYPWD/subscripts $MYPWD/subscripts/makeapt.site.iso.sh $CDNUM echo "Making iso image for disc$CDNUM now" $MYPWD/subscripts/mkisoimage.discx.site.sh --subdir $ARCH-disc0-disc$CDNUM --dest $CDNAME.disc$CDNUM.iso echo "implanting md5sum in disc$CDNUM now" $ANACONDADIR/implantisomd5 $CDNAME.disc$CDNUM.iso CDNUM=`expr $CDNUM + 1` done cd $CDISOAREA echo "Making md5sums now, this will take a while" md5sum *.disc?.iso > $CDNAME.md5sum