--- builds_bin/build_ISO 2007/04/14 21:21:22 1.9 +++ builds_bin/build_ISO 2008/09/27 20:18:01 1.26 @@ -1,111 +1,133 @@ #!/bin/sh -# Charlie Brady wrote on smeserver-developer: -# [I'm sure I've said this before, but ...] there's no new anaconda SRPM. -# The cdrom image I've been using comes directly from a CentOS one. - -# -# What I've done is: -# -# - add CentOS/base/updates.img, made using mkcramfs from the updates directory -# - delete unwanted RPMs -# - add wanted RPMs -# - replace comps.xml -# - add install.cfg and update.cfg -# - edit isolinux/isolinux.cfg -# -# Run this in the a 7.0alphaXX directory, containing cdrom.image -# which contains the directory tree: - - -echo "Checking packages not installed in CentOS workstation group" -for package in anaconda anaconda-runtime bogl booty createrepo mkisofs zsync -do - rpm -q $package || exit "$package must be installed" -done - -[ -d cdrom.image ] || (echo "No cdrom.image directory?"; exit 1) - distname='SME Server' disttag='smeserver' -distvers=$(basename $(pwd)) - -[ -f cdrom.image/updates/anaconda ] && chmod a+rx cdrom.image/updates/anaconda +distvers=$(basename $(readlink -f $(pwd))) +distrel=${distvers:0:1} +distarch=$(uname -i) + +exec < /dev/null +exec &> build_ISO.$distarch + +if ! [ -d $distarch ] +then + echo "No $distarch directory?" + exit 1 +fi for img in product updates do + if [ "$distrel" == "7" ] + then + rm -f $(pwd)/$distarch/SME/base/comps.rpm + cp -al $(pwd)/$distarch/SME/RPMS/comps-*.rpm $(pwd)/$distarch/SME/base/comps.rpm /usr/bin/mkcramfs \ - $(pwd)/cdrom.image/$img \ - $(pwd)/cdrom.image/CentOS/base/$img.img + $(pwd)/$distarch/$img \ + $(pwd)/$distarch/SME/base/$img.img + elif [ -d "$(pwd)/$distarch/$img" ] + then + /sbin/mksquashfs \ + $(pwd)/$distarch/$img \ + $(pwd)/$distarch/images/$img.img \ + -all-root -no-fragments -noappend + sudo chmod 664 $(pwd)/$distarch/images/$img.img + fi done -PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/genhdlist \ +if [ "$distrel" == "7" ] +then + PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/genhdlist \ + --productpath SME \ --withnumbers \ - $(pwd)/cdrom.image/ + $(pwd)/$distarch/ -PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/pkgorder \ - $(pwd)/cdrom.image \ - i386 > pkgorder + PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/pkgorder \ + --product SME \ + $(pwd)/$distarch \ + $distarch > pkgorder.$distarch -PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/genhdlist \ + PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/genhdlist \ + --productpath SME \ --withnumbers \ - --fileorder pkgorder \ - $(pwd)/cdrom.image/ - -rm -f $disttag-$distvers.iso smeserver.iso - -cd cdrom.image - -createrepo . -repoview . + --fileorder pkgorder.$distarch \ + $(pwd)/$distarch/ +fi + +rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso ../iso/$distrel/$distarch/$disttag.iso +rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.jigdo ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.template + +if [ "$distrel" == "7" ] +then + createrepo --update --database $(pwd)/$distarch/ +else + createrepo --update --database --groupfile repodata/comps.xml -u "media://$(head -1 $distarch/.discinfo)" $(pwd)/$distarch/ +fi +sync; rm -rf $(pwd)/$distarch/.olddata +repoview $(pwd)/$distarch/ +sync; rm -rf $(pwd)/$distarch/.repodata bootimg='isolinux/isolinux.bin' bootcat='isolinux/boot.cat' -#mkisopts='-r -N -L -d -D -J' -mkisopts='-r -J' +mkisopts='-v -U -J -r -T' today="$(date '+%d %b %Y')" mkisofs $mkisopts \ - -V "$distname $distvers" \ - -A "$distname created on $today" \ - -b "$bootimg" \ - -c "$bootcat" \ - -no-emul-boot -boot-load-size 4 -boot-info-table \ - -x lost+found \ - -x CVS \ - -o "../$disttag-$distvers".iso \ - . - -cd .. -/usr/lib/anaconda-runtime/implantisomd5 $disttag-$distvers.iso -dd if=/dev/zero bs=2048 count=150 >> $disttag-$distvers.iso -md5sum $disttag-$distvers.iso > $disttag-$distvers.iso.md5sum -ls -lRt > $disttag-$distvers.iso.ls-lRt -zsyncmake $disttag-$distvers.iso -mv $disttag-$distvers.iso $disttag.iso -ln -sf $disttag.iso $disttag-$distvers.iso - -echo "Building SRPMS ISO" - -rm -f $disttag-SRPMS.iso $disttag-$distvers-SRPMS.iso - -mkisofs $mkisopts \ - -V "$distname $distvers SRPMS" \ - -A "$distname SRPMS created on $today" \ - -x lost+found \ - -x CVS \ - -x cdrom.image \ - -o "$disttag-$distvers-SRPMS".iso \ - --graft-points \ - ./SRPMS=SRPMS \ - GPL=cdrom.image/GPL \ - RPM-GPG-KEY=cdrom.image/RPM-GPG-KEY \ - RPM-GPG-KEY-centos4=cdrom.image/RPM-GPG-KEY-centos4 \ - RPM-GPG-KEY-SMEServer7=cdrom.image/RPM-GPG-KEY-SMEServer7 - -md5sum $disttag-$distvers-SRPMS.iso > $disttag-$distvers-SRPMS.iso.md5sum -zsyncmake $disttag-$distvers-SRPMS.iso -mv $disttag-$distvers-SRPMS.iso $disttag-SRPMS.iso -ln -sf $disttag-SRPMS.iso $disttag-$distvers-SRPMS.iso + -V "$distname $distvers" \ + -A "$distname created on $today" \ + -b "$bootimg" \ + -c "$bootcat" \ + -no-emul-boot -boot-load-size 4 -boot-info-table \ + -x lost+found -x product -x updates -x 'buildinstall.tree.*' -x CVS \ + -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \ + $(pwd)/$distarch/ + +/usr/lib/anaconda-runtime/implantisomd5 ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso +dd if=/dev/zero bs=2048 count=150 >> ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso +md5sum ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso > ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.md5sum +sha1sum ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso > ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.sha1sum +zsyncmake -u $disttag-$distvers-$distarch.iso -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.zsync ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso +mv ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso ../iso/$distrel/$distarch/$disttag.iso +ln -sf $disttag.iso ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso + +rsync -a --delete --delete-excluded \ + --exclude 'repodata/' --exclude 'product/' --exclude 'updates/' \ + --exclude 'lost+found/' --exclude 'CVS/' --exclude 'buildinstall.tree.*/' \ + --link-dest=../$distarch/ $distarch/ $distarch.jigdo/ +jigdo-file make-template --force \ + -i ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \ + -j ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.jigdo \ + -t ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.template \ + --label SMEmirror=$distarch.jigdo/ \ + --uri SMEmirror=http://mirror.contribs.org/releases/testing/$distrel/smeos/$distarch/ \ + $distarch.jigdo// +rm -rf $distarch.jigdo/ + +if [ -d SRPMS -a "$distarch" == "i386" ] +then + rm -f ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso ../iso/$distrel/source/$disttag-SRPMS.iso + + mkisofs $mkisopts \ + -V "$distname $distvers SRPMS" \ + -A "$distname SRPMS created on $today" \ + -x lost+found -x product -x updates -x 'buildinstall.tree.*' -x CVS \ + -o ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso \ + --graft-points \ + ./SRPMS=SRPMS \ + GPL=$distarch/GPL \ + RPM-GPG-KEY-SMEServer=$distarch/RPM-GPG-KEY-SMEServer + + md5sum ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso > ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso.md5sum + sha1sum ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso > ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso.sha1sum + zsyncmake -u $disttag-$distvers-SRPMS.iso -o ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso.zsync ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso + mv ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso ../iso/$distrel/source/$disttag-SRPMS.iso + ln -sf $disttag-SRPMS.iso ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso + + jigdo-file make-template --force \ + -i ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso \ + -j ../iso/$distrel/source/$disttag-$distvers-SRPMS.jigdo \ + -t ../iso/$distrel/source/$disttag-$distvers-SRPMS.template \ + --label SMEmirror=SRPMS/ \ + --uri SMEmirror=http://mirror.contribs.org/releases/testing/$distrel/smeos/SRPMS/ \ + SRPMS// +fi # That's it. -