--- builds_bin/build_installer 2005/11/10 19:43:51 1.2 +++ builds_bin/build_installer 2010/07/24 15:28:38 1.21 @@ -1,111 +1,88 @@ #!/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 \ - xorg-x11-font-utils netpbm-progs netpbm -do - rpm -q $package || exit "$package must be installed" -done - distname='SME Server' -distvers=$(basename $(pwd)) - -for img in product updates -do - /usr/bin/mkcramfs \ - $(pwd)/cdrom.image/$img \ - $(pwd)/cdrom.image/CentOS/base/$img.img -done - -PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/genhdlist \ +distvers=$(basename $(readlink -f $(pwd))) +distrel=${distvers:0:1} +distarch=$(uname -i) + +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 \ + --product SME \ + $(pwd)/$distarch \ + $distarch > pkgorder.$distarch + + for PKG in /releases/$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/ /usr/lib/anaconda-runtime/pkgorder \ - $(pwd)/cdrom.image \ - i386 > pkgorder - -# Link to necessary rpms to rebuild installer -for rpm in anaconda-10.1.1.19-1.centos4.i386.rpm \ - anaconda-help-10.1.0-1.centos4.noarch.rpm \ - anaconda-runtime-10.1.1.19-1.centos4.i386.rpm \ - atk-1.8.0-2.i386.rpm \ - audiofile-0.2.6-1.i386.rpm \ - bogl-0.1.18-4.i386.rpm \ - bogl-bterm-0.1.18-4.i386.rpm \ - booty-0.44-1.i386.rpm \ - busybox-anaconda-1.00.rc1-5.i386.rpm \ - comps-extras-10.1-1.noarch.rpm \ - esound-0.2.35-2.i386.rpm \ - fonts-arabic-1.5-3.noarch.rpm \ - fonts-bengali-0.1-3.noarch.rpm \ - fonts-xorg-base-6.8.1.1-1.EL.1.noarch.rpm \ - gdk-pixbuf-0.22.0-16.el4.i386.rpm \ - gnome-python2-2.6.0-3.i386.rpm \ - gnome-python2-applet-2.6.0-3.i386.rpm \ - gnome-python2-canvas-2.6.0-3.i386.rpm \ - gnome-python2-nautilus-2.6.0-3.i386.rpm \ - gtk2-2.4.13-14.i386.rpm \ - joe-3.1-6.i386.rpm \ - libart_lgpl-2.3.16-3.i386.rpm \ - libgnomecanvas-2.8.0-1.i386.rpm \ - memtest86+-1.26-2.i386.rpm \ - open-1.4-21.i386.rpm \ - pango-1.6.0-9.i386.rpm \ - parted-1.6.19-1.EL.i386.rpm \ - pygtk2-2.4.0-1.i386.rpm \ - pyparted-1.6.8-2.i386.rpm \ - redhat-artwork-0.120-1.1E.centos4.1.i386.rpm \ - redhat-logos-1.1.25-1.centos4.3.noarch.rpm \ - rsh-0.17-25.3.i386.rpm \ - system-config-date-1.7.15-0.RHEL4.1.noarch.rpm \ - ttfonts-bn-1.8-1.noarch.rpm \ - ttfonts-gu-1.8-1.noarch.rpm \ - ttfonts-hi-1.8-1.noarch.rpm \ - ttfonts-ja-1.2-36.EL4.0.noarch.rpm \ - ttfonts-ko-1.0.11-32.2.noarch.rpm \ - ttfonts-pa-1.8-1.noarch.rpm \ - ttfonts-ta-1.8-1.noarch.rpm \ - ttfonts-zh_CN-2.14-6.noarch.rpm \ - ttfonts-zh_TW-2.11-28.noarch.rpm \ - urw-fonts-2.2-6.noarch.rpm \ - vnc-server-4.0-8.1.i386.rpm \ - xorg-x11-6.8.2-1.EL.13.6.i386.rpm; do - ln -fs /mirrors/centos/4.1/os/i386/CentOS/RPMS/$rpm $(pwd)/cdrom.image/CentOS/RPMS/ -done - -PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ - --comp dist-4.1 \ - --pkgorder pkgorder \ + PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ + --product "$distname" \ + --version "${distvers/[^0-9.]*/}" \ --release "$distname" \ + --prodpath SME \ + --pkgorder pkgorder.$distarch \ + $(pwd)/$distarch/ + + sed -i 's@1,2,3@1@' $(pwd)/$distarch/.discinfo +else + for PKG in /releases/testing/$distrel/smeextras/$distarch/RPMS/*.rpm + do + PKGFILE=$(basename $PKG) + if [ ! -f $(pwd)/$distarch/SME/$PKGFILE ] + then + ln -sf $PKG $(pwd)/$distarch/SME/ + fi + done + + sed "/installforallkernels/ised -i 's|\\\\(enabled\\\\) = 1|\\\\1 = 0|' \$DEST/etc/yum/pluginconf.d/kmod.conf" \ + /usr/lib/anaconda-runtime/upd-instroot > upd-instroot + chmod 755 upd-instroot + sudo chown root:root upd-instroot + + PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ --product "$distname" \ - --version 7.0 \ - $(pwd)/cdrom.image/ + --version "${distvers/[^0-9.]*/}" \ + --release "$distname" \ + --prodpath SME \ + --bugurl http://bugs.contribs.org/ \ + $(pwd)/$distarch/ + sed -i 's/ALL/1/' $distarch/.discinfo + + rm -rf $distarch/buildinstall.tree.*/ + sudo rm 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 -fR /builds/isolinux/* $(pwd)/cdrom.image/isolinux/ +sudo cp -f /stage/extra/isolinux/$distrel/* $(pwd)/$distarch/isolinux/ + +find $(pwd)/$distarch -\( -not -user 9000 -o -not -group 9000 -\) -print0 | sudo xargs -r0 chown 9000:9000 +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 /stage/bin/build_ISO as non-root" # That's it.