--- builds_bin/build_installer 2007/05/19 21:55:09 1.5 +++ builds_bin/build_installer 2010/04/08 20:03:57 1.20 @@ -1,108 +1,87 @@ #!/bin/sh -[ -d cdrom.image ] || (echo "No cdrom.image directory?"; exit 1) - distname='SME Server' -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 - -PACKAGES="glibc glibc-common setup openssl python newt slang libselinux - libsepol libtermcap zlib ash e2fsprogs util-linux raidtools popt mdadm - procps rpm rpm-libs XFree86 Xconfigurator anaconda tzdata - anaconda-runtime kudzu hwdata bzip2 beecrypt ncurses readline - bzip2-libs dosfstools pciutils reiserfs-utils parted sed - busybox-anaconda rpm-python booty hdparm lvm2 beecrypt device-mapper - rhpl pyxf86config libxml2 libxml2-python glib2 audit-libs - elfutils-libelf bogl-bterm bogl krb5-libs convertdb1 jfsutils - xfsprogs xfsdump dmapi libacl libattr attr acl bogl-devel - policy policycoreutils pyparted xorg-x11 selinux-policy-targeted - kernel-pcmcia-cs kernel-utils" - -PACKAGESGR="anaconda XFree86-libs libpng XFree86-75dpi-fonts - XFree86-ISO8859-2-75dpi-fonts gtk2 - XFree86-ISO8859-9-75dpi-fonts esound audiofile libgnome - XFree86-100dpi-fonts fonts-ISO8859-2 fonts-ISO8859-9 - XFree86-xfs e2fsprogs coreutils glibc glibc-common - readline popt specspo util-linux rpm rpm-libs tzdata - procps ncurses bash cpio gpm - XFree86 Xconfigurator gnome-python2 pygtk2 gdk-pixbuf - XFree86-KOI8-R XFree86-KOI8-R-75dpi-fonts pam - reiserfs-utils atk pango freetype gnome-python2-canvas - libgnomecanvas libart_lgpl libgcc libacl libattr libstdc++ expat - anaconda-images anaconda-help XFree86-base-fonts - ttfonts-ko taipeifonts XFree86-ISO8859-15-75dpi-fonts rhpl - system-config-keyboard Xft fontconfig redhat-artwork audit-libs - ttfonts-ja ttfonts-zh_TW bitmap-fonts-cjk urw-fonts fonts-arabic - comps-extras XFree86-libs-data convertdb1 fonts-bengali - vnc-server libjpeg tcp_wrappers system-config-date - xfsprogs xfsdump dmapi attr acl policy policycoreutils - selinux-policy-targeted ttfonts-zh_CN - xorg-x11-libs xorg-x11-ISO8859-2-75dpi-fonts - xorg-x11-ISO8859-9-75dpi-fonts xorg-x11-100dpi-fonts - xorg-x11-xfs xorg-x11 xorg-x11-KOI8-R xorg-x11-KOI8-R-75dpi-fonts - xorg-x11-base-fonts xorg-x11-ISO8859-15-75dpi-fonts - fonts-xorg-ISO8859-2-75dpi fonts-xorg-ISO8859-15-75dpi - fonts-xorg-ISO8859-9-75dpi fonts-xorg-100dpi - fonts-xorg-KOI8-R fonts-xorg-KOI8-R-75dpi fonts-xorg-base - xorg-x11-base xorg-x11-ISO8859-15-75dpi - xorg-x11-libs-data xorg-x11-xfs prelink redhat-logos fedora-logos - ttfonts-ta ttfonts-bn ttfonts-gu ttfonts-hi ttfonts-pa - syslinux memtest86+" - -PACKAGESRESCUE="bzip2 bzip2-libs dump - findutils ftp gzip iputils joe krb5-libs less man - modutils mtools mt-st mtr net-tools open - openssh openssh-clients pciutils rsh traceroute tar" - -for PKG in $PACKAGES $PACKAGESGR $PACKAGESRESCUE -do - PACKAGEFILES=$(rpm --qf "%{NAME} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm\n" --nodigest --nosignature -qp /mirrors/centos/4/updates/$distarch/RPMS/$PKG*.rpm | grep "^$PKG " | sed 's/.* //') - if [ -n "$PACKAGEFILES" ]; - then - for PKGFILE in $PACKAGEFILES - do - if [ ! -f $(pwd)/cdrom.image/CentOS/RPMS/$PKGFILE ]; - then - ln -sf /mirrors/centos/4/updates/$distarch/RPMS/$PKGFILE $(pwd)/cdrom.image/CentOS/RPMS/$PKGFILE - fi - done - else - PACKAGEFILES=$(rpm --qf "%{NAME} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm\n" --nodigest --nosignature -qp /mirrors/centos/4/os/$distarch/CentOS/RPMS/$PKG*.rpm | grep "^$PKG " | sed 's/.* //') - if [ -n "$PACKAGEFILES" ]; - then - for PKGFILE in $PACKAGEFILES - do - if [ ! -f $(pwd)/cdrom.image/CentOS/RPMS/$PKGFILE ]; - then - ln -sf /mirrors/centos/4/os/$distarch/CentOS/RPMS/$PKGFILE $(pwd)/cdrom.image/CentOS/RPMS/$PKGFILE - fi - done + 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 - fi -done + done -PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ - --comp dist-4.3 \ - --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/ + + 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 -f /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.