--- /dev/null
+#! /bin/bash
+# Bootstrap for: RawHide
+# $Id$
+# Latest:
+# http://cvs.jankratochvil.net/viewcvs/nethome/src/rawhide-bootstrap?rev=HEAD
+
+
+###RPMS_URL_BASE=http://sunsite.mff.cuni.cz/pub/fedora/development/`uname -i`/os
+RPMS_URL_BASE=http://localhost/redhat/devel/rawhide-latest/rawhide-latest/latest/`uname -i`/os
+
+
+if test $# != 1;then echo >&2 "Syntax: $0 <target-root-directory(DELETED!)>";exit 1;fi
+ROOT="$1"
+if test "${ROOT#/}" = "$ROOT";then echo >&2 "Absolute pathname required: $ROOT";exit 1;fi
+
+cd /
+umount $ROOT/proc
+umount $ROOT/sys
+set -ex
+
+set +x;pkgs="`set -x;wget -q -O - $RPMS_URL_BASE/Fedora/RPMS/ | sed -n 's/^.*<a href="\([^/?][^/]*\)">.*$/\1/p'`";set -x
+function pkg
+{
+ for arch in `uname -m` `uname -i` noarch;do
+ r="`set +x;echo "$pkgs"|(set +e;grep -P '^\Q'"$1"'\E-[^-]+-[^-]+'".$arch.rpm"'$')`"
+ if [ `echo "$r"|wc -l` -ge 2 ];then break;fi
+ if [ -n "$r" ];then
+ echo "$RPMS_URL_BASE/Fedora/RPMS/$r"
+ return
+ fi
+ done
+ echo >&2 "ERROR: $1"
+ echo >&2 "$r"
+ kill $$
+}
+
+KEY=/tmp/fedora-bootstrap-$$-key
+rm -rf $KEY
+trap 'rm -f $KEY' EXIT
+mkdir $KEY
+cd $KEY
+# wget(1) due to: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167483
+wget -q -O - `pkg fedora-release` | rpm2cpio | cpio -id
+
+rm -rf $ROOT
+mkdir -p $ROOT/{etc,dev,var/log,sys}
+awk '/^[ \t]*[^#]/ { if ($2 == "/" || $2 == "/sys" || $2 == "/proc") { print; }}' </etc/fstab >$ROOT/etc/fstab
+if grep -q '^LABEL=' $ROOT/etc/fstab;then
+ awk <$ROOT/etc/fstab >$ROOT/etc/fstab2 '{ if ($2 == "/") $1="/dev/root"; }{ print; }'
+ mv -f $ROOT/etc/fstab2 $ROOT/etc/fstab
+fi
+cp -a /dev/{null,urandom,random} `awk '/^[ \t]*[^#]/ { if ($2 == "/") { print $1; }}' <$ROOT/etc/fstab` $ROOT/dev/
+touch $ROOT/{etc/mtab,var/log/lastlog}
+mount -tsysfs sysfs $ROOT/sys
+rpm --root=$ROOT --initdb
+rpm --root=$ROOT --import $KEY/etc/pki/rpm-gpg/RPM-GPG-KEY*
+rm -rf $KEY
+cd $RPMS
+# For rpm(1) http:// downloads:
+mkdir -p $ROOT/var/tmp
+RPM=rpm
+while read -r key val;do
+ if test -n "$val";then RPM="$RPM $key $val";fi
+ done <<EOH
+--httpproxy `echo $http_proxy|sed -n 's#^[^/]*//\([^:/]*\).*$#\1#p'`
+--httpport `echo $http_proxy|sed -n 's#^[^/]*//[^:/]*:\([^/]*\).*$#\1#p'`
+ --ftpproxy `echo $ftp_proxy|sed -n 's#^[^/]*//\([^:/]*\).*$#\1#p'`
+ --ftpport `echo $ftp_proxy|sed -n 's#^[^/]*//[^:/]*:\([^/]*\).*$#\1#p'`
+EOH
+
+# Workaround coreutils: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=199840
+mkdir -p $ROOT/bin
+cp -p /bin/{cat,rm} $ROOT/bin/
+
+# Prevent:
+# matchpathcon(/var/log/lastlog) failed: No such file or directory
+# error: %post(util-linux-2.13-0.33.x86_64) scriptlet failed, exit status 1
+ln -s true $ROOT/bin/chcon
+
+# update package: V:!grep ^`sed 's/-[^-]*-[^-]*$//'`'-[^-]*-[^-]*$' /tmp/43<cr>j
+
+# rpm(8)
+DOWNLOAD=/tmp/fedora-bootstrap-$$-download
+rm -rf $DOWNLOAD
+trap 'rm -rf $DOWNLOAD $KEY' EXIT
+mkdir $DOWNLOAD
+cd $DOWNLOAD
+wget `set +x;while read -r line;do pkg $line;done <<EOH
+coreutils
+rpm
+bash
+glibc
+beecrypt
+mktemp
+libgcc
+basesystem
+filesystem
+setup
+glibc-common
+popt
+shadow-utils
+pam
+libselinux
+sed
+cracklib
+db4
+initscripts
+kernel
+sysklogd
+util-linux
+grep
+gawk
+libstdc++
+glib2
+module-init-tools
+mkinitrd
+net-tools
+e2fsprogs
+findutils
+ncurses
+ethtool
+tzdata
+pcre
+gzip
+lvm2
+less
+chkconfig
+cpio
+device-mapper
+tar
+readline
+info
+zlib
+fedora-release
+cracklib-dicts
+mingetty
+iputils
+rpm-libs
+bzip2-libs
+libacl
+libtermcap
+libattr
+termcap
+elfutils-libelf
+psmisc
+iproute
+procps
+SysVinit
+libsepol
+udev
+MAKEDEV
+usbutils
+hwdata
+wget
+openssl
+krb5-libs
+audit-libs
+audit
+python
+e2fsprogs-libs
+dmraid
+expat
+neon
+sqlite
+libusb
+gdbm
+mcstrans
+libcap
+EOH
+`
+$RPM --root=$ROOT -i *
+rm -f *
+cd
+rm -rf $DOWNLOAD
+
+chroot $ROOT /bin/rpm --rebuilddb
+
+# Do not install yum(8) just by 'rpm --root', later --rebuilddb would:
+# rpmdb: Program version 4.2 doesn't match environment version
+# FIXME: Analyse and bugreport:
+# On "http" installation AND using --httpproxy: CentOS-4.1 rpm-4.3.3-9_nonptl would crash:
+# warning: package yum = 2.2.1-1.centos4 was already added, replacing with yum <= 2.2.1-1.centos4
+# ...
+# error: Failed dependencies:
+# /usr/bin/python is needed by yum-2.2.1-1.centos4.noarch
+# ...
+# while with FC4 rpm-4.4.1-22 it would work fine (it would just corrupt 'rpmdb' here).
+# yum(8)
+lines="`cat <<EOH
+yum
+rpm-python
+libxml2-python
+gmp
+libxml2
+elfutils
+binutils
+python-elementtree
+python-sqlite
+python-urlgrabber
+yum-metadata-parser
+elfutils-libs
+EOH
+`"
+chroot $ROOT /usr/bin/wget `set +x;for line in $lines;do pkg $line;done`
+chroot $ROOT /bin/rpm -i `set +x;for line in $lines;do basename $(pkg $line);done`
+chroot $ROOT /bin/rm -f `set +x;for line in $lines;do basename $(pkg $line);done`
+
+for repo in $ROOT/etc/yum.repos.d/*.repo;do
+ mv -f $repo $repo-orig
+ sed -e 's/^mirrorlist=/#&/' -e 's/^#\(baseurl=\)/\1/' \
+ -e 's#^\(baseurl=\)http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/os/$#\1'"$RPMS_URL_BASE"'#' \
+ <$repo-orig >$repo
+done
+
+chroot $ROOT mount /proc
+# Prevent: socket.error: (2, 'No such file or directory')
+patch $ROOT/usr/lib/python2.4/site-packages/yum/logginglevels.py <<EOH
+--- usr/lib/python2.4/site-packages/yum/logginglevels.py-orig 2006-07-12 21:23:31.000000000 +0200
++++ usr/lib/python2.4/site-packages/yum/logginglevels.py 2006-07-23 08:17:36.000000000 +0200
+@@ -107,7 +107,7 @@
+ logger.propagate = False
+ logger.addHandler(console_stderr)
+
+- syslog = logging.handlers.SysLogHandler('/dev/log')
++ syslog = logging.StreamHandler(sys.stderr)
+ syslog.setFormatter(plainformatter)
+ filelogger = logging.getLogger("yum.filelogging")
+ filelogger.setLevel(logging.INFO)
+EOH
+chroot $ROOT /usr/bin/yum -y update
+
+# For: kernel-2.6.9-11.EL.src.rpm
+chroot $ROOT /usr/bin/yum -y install `cat <<EOH
+rpm-build
+bzip2
+m4
+make
+gnupg
+kernel-utils
+gcc
+redhat-rpm-config
+diffutils
+EOH
+`
+
+umount $ROOT/sys
+
+echo OK