--- builds_bin/build_installer 2007/07/03 18:02:03 1.8 +++ builds_bin/build_installer 2014/06/30 19:05:27 1.28 @@ -1,47 +1,118 @@ #!/bin/sh -[ -d cdrom.image ] || (echo "No cdrom.image directory?"; exit 1) - distname='SME Server' -distrel=7 -distvers=$(basename $(pwd)) +distvers=$(basename $(readlink -f $(pwd))) +distrel=${distvers:0:1} distarch=$(uname -i) -PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/genhdlist \ +exec < /dev/null +exec &> build_installer.$distarch + +if ! [ -d $distarch ] +then + echo "No $distarch directory?" + exit 1 +fi + +rm -rf $(pwd)/$distarch/{images,isolinux} $(pwd)/$distarch/SME/base/{hdlist*,*.img} + +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 \ - $distarch > pkgorder - -for PKG in /releases/$distrel/smeextras/$distarch/RPMS/*.rpm -do - PKGFILE=$(basename $PKG) - if [ ! -f $(pwd)/cdrom.image/SME/$PKGFILE ] - then - ln -sf $PKG $(pwd)/cdrom.image/CentOS/RPMS/ - fi -done + PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/pkgorder \ + --product SME \ + $(pwd)/$distarch \ + $distarch > pkgorder.$distarch + + for PKG in /build/smeserver/repo/$distrel/smeextras/$distarch/RPMS/*.rpm + do + PKGFILE=$(basename $PKG) + if [ ! -f $(pwd)/$distarch/SME/RPMS/$PKGFILE ] + then + ln -sf $PKG $(pwd)/$distarch/SME/RPMS/ + fi + done -PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ + PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ --product "$distname" \ - --version "$distrel.0" \ + --version "${distvers/[^0-9.]*/}" \ --release "$distname" \ - --pkgorder pkgorder \ - $(pwd)/cdrom.image/ + --prodpath SME \ + --pkgorder pkgorder.$distarch \ + $(pwd)/$distarch/ + + sed -i 's@1,2,3@1@' $(pwd)/$distarch/.discinfo +elif [ "$distrel" == "8" ] +then + for PKG in /build/smeserver/repo/$distrel/smeextras/$distarch/RPMS/*.rpm + do + PKGFILE=$(basename $PKG) + if [ ! -f $(pwd)/$distarch/SME/$PKGFILE ] + then + ln -sf $PKG $(pwd)/$distarch/SME/ + fi + done + + cp /usr/lib/anaconda-runtime/mk-images* . + sed -i -e 's/count=12/count=15/' mk-images.* + sed -e "/installforallkernels/ised -i 's|\\\\(enabled\\\\) = 1|\\\\1 = 0|' \$DEST/etc/yum/pluginconf.d/kmod.conf" \ + -e 's|^usr/\(.*/libz.*\)|&\n\1|' /usr/lib/anaconda-runtime/upd-instroot > upd-instroot + chmod 644 mk-images.* + chmod 755 mk-images upd-instroot + sudo chown root:root mk-images* upd-instroot + + PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ + --product "$distname" \ + --version "${distvers/[^0-9.]*/}" \ + --release "$distname" \ + --prodpath SME \ + --bugurl http://bugs.contribs.org/ \ + $(pwd)/$distarch/ + sed -i 's/ALL/1/' $distarch/.discinfo + + sudo rm -rf $distarch/buildinstall.tree.*/ mk-images* upd-instroot +elif [ "$distrel" == "9" ] +then + sed -e '/anaconda.repos.d/arm -f $DEST/etc/anaconda.repos.d/*' /usr/lib/anaconda-runtime/upd-instroot > upd-instroot + chmod 755 upd-instroot + sudo chown root:root upd-instroot + + rm -rf $(pwd)/$distarch/{repodata,repoview}/ + mkdir -p $(pwd)/$distarch/repodata/ + /bin/cp -af $(pwd)/$distarch/Packages/base/comps.xml $(pwd)/$distarch/repodata/ + + createrepo --quiet --database --skip-symlinks --simple-md-filenames --groupfile repodata/comps.xml $(pwd)/$distarch/ + sync; rm -rf $(pwd)/$distarch/.olddata + + # add --final when we have final product + PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ + --product "$distname" \ + --version "${distvers/[^0-9.]*/}" \ + --release "$distname" \ + --brand "centos" \ + --final \ + --bugurl http://bugs.contribs.org/ \ + --output $(pwd)/$distarch/ \ + /build/smeserver/repo/testing/$distrel/smeextras/$distarch/ \ + $(pwd)/$distarch/ + /bin/sed -i -e "s|packagedir =.*|packagedir = Packages|" $(pwd)/$distarch/.treeinfo + + sudo rm -f awk ../pci.ids *-logos-*.rpm grub-*.rpm upd-instroot +fi # Remove previous linked files -find $(pwd)/cdrom.image/CentOS/RPMS/ -type l | xargs rm -f +find $(pwd)/$distarch/SME/ -type l | xargs rm -f # Copy updated isolinux files -sudo cp -f /builds/isolinux/* $(pwd)/cdrom.image/isolinux/ - -sed -i 's@1,2,3@1@' $(pwd)/cdrom.image/.discinfo +sudo cp -f /build/smeserver/stage/extra/isolinux/$distrel/* $(pwd)/$distarch/isolinux/ -sudo chown -R buildcvs:developers $(pwd)/cdrom.image/ -sudo chmod -R g+w $(pwd)/cdrom.image/ +find $(pwd)/$distarch -\( -not -user 10020 -o -not -group 10020 -\) -print0 | sudo xargs -r0 chown 10020:10020 +find $(pwd)/$distarch -\( -type f -not -perm -0664 -o -type d -not -perm -0775 -\) -print0 | sudo xargs -r0 chmod u+rwX,g+rwX,o+rX,o-w -echo "You now need to run /builds/bin/build_ISO as non-root" +echo "You now need to run /build/smeserver/stage/bin/build_ISO as non-root" # That's it.