#! /bin/bash # Bootstrap for: RawHide # $Id$ # Latest: # http://cvs.jankratochvil.net/viewcvs/nethome/src/rawhide-bootstrap?rev=HEAD uname_i=`uname -i|sed 's/^ppc64$/ppc/'` RPMS_URL_BASE=http://armstrong.rhts.boston.redhat.com/distros/rawhide-$uname_i wget -q -O - $RPMS_URL_BASE/GPL >/dev/null || \ RPMS_URL_BASE=http://sunsite.mff.cuni.cz/pub/fedora/development/$uname_i/os if test $# != 1;then echo >&2 "Syntax: $0 ";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/selinux umount $ROOT/sys set -ex set +x;pkgs="`set -x;wget -q -O - $RPMS_URL_BASE/Fedora/RPMS/ | sed -n 's/^.*.*$/\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" if [ "$arch" != ppc64 ];then return fi fi done echo >&2 "ERROR: $1" echo >&2 "$r" kill $$ } KEY=/tmp/fedora-bootstrap-$$-key rm -rf $KEY trap 'rm -rf $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` >/dev/null wget -q -O - `pkg fedora-release` | rpm2cpio | cpio -id rm -rf $ROOT mkdir -p $ROOT/{etc,dev,var/log,sys} cp -p /etc/resolv.conf $ROOT/etc awk '/^[ \t]*[^#]/ { if ($2 == "/" || $2 == "/sys" || $2 == "/proc") { print; }}' $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 echo 'none /selinux selinuxfs defaults 0 0' >>$ROOT/etc/fstab 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 <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 if [ -n "$line" ];then pkg $line;fi;done <$repo done chroot $ROOT /usr/bin/yum -y update # For: kernel-2.6.9-11.EL.src.rpm chroot $ROOT /usr/bin/yum -y install `cat <