--- builds_bin/build_installer 2006/06/30 00:18:36 1.4 +++ builds_bin/build_installer 2007/12/23 22:24:41 1.11 @@ -1,121 +1,74 @@ #!/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)) -distarch=i386 - -for img in product updates -do - /usr/bin/mkcramfs \ - $(pwd)/cdrom.image/$img \ - $(pwd)/cdrom.image/CentOS/base/$img.img -done +distrel=${distvers:0:1} +distarch=$(uname -i) -PYTHONPATH=/usr/lib/anaconda/ /usr/lib/anaconda-runtime/genhdlist \ +if ! [ -d $distarch ] +then + echo "No $distarch directory?" + exit 1 +fi + +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="acl anaconda anaconda-help anaconda-images anaconda-runtime ash - atk attr audiofile audit-libs bash beecrypt bitmap-fonts-cjk bogl - bogl-bterm booty busybox-anaconda bzip2 bzip2-libs comps-extras - convertdb1 coreutils cpio device-mapper dmapi dosfstools dump - e2fsprogs elfutils-libelf esound expat fedora-logos findutils - fontconfig fonts-arabic fonts-bengali fonts-ISO8859-2 fonts-ISO8859-9 - fonts-xorg-100dpi fonts-xorg-base fonts-xorg-ISO8859-15-75dpi - fonts-xorg-ISO8859-2-75dpi fonts-xorg-ISO8859-9-75dpi fonts-xorg-KOI8-R - fonts-xorg-KOI8-R-75dpi freetype ftp gdk-pixbuf glib2 glibc glibc-common - gnome-python2 gnome-python2-canvas gpm gtk2 gzip hdparm hwdata iputils - jfsutils joe kernel-pcmcia-cs kernel-utils krb5-libs kudzu less libacl - libart_lgpl libattr libgcc libgnome libgnomecanvas libjpeg libpng - libselinux libsepol libstdc++ libtermcap libxml2 libxml2-python lvm2 - man mdadm memtest86+ modutils mtools mtr mt-st ncurses net-tools newt - open openssh openssh-clients openssl pam pango parted pciutils policy - policycoreutils popt prelink procps pygtk2 pyparted python pyxf86config - raidtools readline redhat-artwork redhat-logos reiserfs-utils rhpl rpm - rpm-libs rpm-python rsh sed selinux-policy-targeted setup slang specspo - syslinux system-config-date system-config-keyboard taipeifonts tar - tcp_wrappers traceroute ttfonts-bn ttfonts-gu ttfonts-hi ttfonts-ja - ttfonts-ko ttfonts-pa ttfonts-ta ttfonts-zh_CN ttfonts-zh_TW tzdata - urw-fonts util-linux vnc-server Xconfigurator XFree86 XFree86-100dpi-fonts - XFree86-75dpi-fonts XFree86-base-fonts XFree86-ISO8859-15-75dpi-fonts - XFree86-ISO8859-2-75dpi-fonts XFree86-ISO8859-9-75dpi-fonts - XFree86-KOI8-R XFree86-KOI8-R-75dpi-fonts XFree86-libs XFree86-libs-data - XFree86-xfs xfsdump xfsprogs Xft xorg-x11 xorg-x11-100dpi-fonts - xorg-x11-base xorg-x11-base-fonts xorg-x11-ISO8859-15-75dpi - xorg-x11-ISO8859-15-75dpi-fonts xorg-x11-ISO8859-2-75dpi-fonts - xorg-x11-ISO8859-9-75dpi-fonts xorg-x11-KOI8-R xorg-x11-KOI8-R-75dpi-fonts - xorg-x11-libs xorg-x11-libs-data xorg-x11-xfs zlib" - -for PKG in $PACKAGES -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 "$distrel.0" \ --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 + + PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \ --product "$distname" \ - --version 7.0 \ - $(pwd)/cdrom.image/ + --version "$distrel.0" \ + --release "$distname" \ + --prodpath SME \ + --bugurl http://bugs.contribs.org/ \ + $(pwd)/$distarch/ +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/ + +sudo chown -R 9000:9001 $(pwd)/$distarch/ +sudo chmod -R u+rwX,g+rwX,o+rX,o-w $(pwd)/$distarch/ -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.