#!/bin/bash if [ -z "$1" -o ! -d "$1" ]; then echo "$0: updates instimage from a Red Hat RPMS directory" echo "usage: $0 " exit 1 fi pythondeps() { DIR=$1 cp /usr/bin/strace $DIR (cd $DIR; \ chroot . strace -o straceout.$$ \ usr/bin/anaconda -m dir://mnt/source --test --text --traceonly ) ((cat $DIR/straceout.$$ | grep ^open | grep '= [0-9]' | sed 's/[^"]*"//' | sed 's/".*//' | sort -u | grep /usr/lib/python ) ; \ (cd $DIR; find usr/lib/python* -type f | sed 's,^,/,' \ )) | sort | uniq -u | \ sed s,^,./, | while read fn; do [ ! -d $DIR/$fn ] && rm $DIR/$fn done rm -f $DIR/strace $DIR/straceout.$$ } SRC=$1/RedHat/RPMS cd ../trees/hdimage DEST=$PWD cd - cd ../../../RedHat/instimage DESTGR=$PWD cd - echo "DEST is $DEST" echo "DESTGR is $DESTGR" PACKAGES="glibc-2 ldconfig setup e2fsprogs-1 XFree86-libs XFree86-SVGA XFree86-FBDev XFree86-75dpi-fonts XFree86-3. xpm-3 glib- gtk+- gnome-libs slang python-1 newt imlib-1 libpng libtiff libjpeg- libtermcap-2 zlib rpm rpm-devel ash- bash- pygtk- pygnome- util-linux procps esound-0 audiofile-0 bzip2 strace" KEEPFILE=/tmp/keepfile.$$ cat > $KEEPFILE <> $KEEPFILEGR < /dev/null; then RPMS="$RPMS $J" fi else RPMS="$RPMS $J" fi done done rm -rf $DEST; mkdir -p $DEST/usr/sbin rm -rf $DESTGR; mkdir -p $DESTGR/usr/sbin for n in $RPMS; do echo "expanding $n" rpm2cpio $n | (cd $DEST; cpio -E $KEEPFILE --quiet -iumd) rpm2cpio $n | (cd $DESTGR; cpio -E $KEEPFILEGR --quiet -iumd) done rm -f $KEEPFILE $KEEPFILEGR for p in $DEST $DESTGR; do find $p -type d | xargs chmod 755 if [ -f $p/bin/bash ]; then rm -f $p/bin/ash ln -s bash $p/bin/sh else ln -s ash $p/bin/sh fi (cd $p/bin; tar cSpf - .) | (cd $p/usr/bin; tar xSpf -) (cd $p/sbin; tar cSpf - .) | (cd $p/usr/sbin; tar xSpf -) rm -rf $p/bin rm -rf $p/sbin rm -rf $p/boot $p/home $p/root $p/tmp cp /sbin/ldconfig $p (cd $p; chroot $p ./ldconfig \ $([ -d $p/usr/X11R6/lib ] && echo /usr/X11R6/lib) ) rm -f $p/ldconfig find $p -name "*.so" | xargs strip find $p -name "*.py" | while read fn; do if [ -f ${fn}c ]; then rm -f $fn fi done done # Xserver needs a place to put the compiled xkb maps. rm -rf $DESTGR/usr/X11R6/lib/X11/xkb/compiled ln -s /tmp $DESTGR/usr/X11R6/lib/X11/xkb/compiled make install DESTDIR=$DEST > /dev/null make install DESTDIR=$DESTGR > /dev/null pythondeps $DEST # this is only for the minimal second stage cd $DEST/usr/lib find python1.5 | cpio --quiet -H crc -o | gzip -9 > python1.5.cgz rm -rf python1.5 ls libnewt* libslang* | cpio --quiet -H crc -o | gzip -9 > slang-newt.cgz rm -f libnewt* libslang* cd - cd $DEST/usr/bin echo python1.5 | cpio --quiet -H crc -o | gzip -9 > python1.5.cgz rm -f python python1.5 ln -s python1.5 python mv anaconda anaconda.real cd - cp -a anaconda-stub $DEST/usr/bin/anaconda