Version 1.4. Now uses FAKECHROOT_CMD_SUBST to remove most %post warnings.
[febootstrap.git] / febootstrap.sh
index 41fc84c..b08e3c0 100755 (executable)
@@ -75,6 +75,9 @@ mirror="$3"
 # Architecture is currently always the same as the current arch.  We
 # cannot do --foreign builds.  See discussion in the manpage.
 arch=$(arch)
+case $arch in
+    i?86) arch=i386 ;;
+esac
 
 # Create a temporary directory, make sure it gets cleaned up at the end.
 tmpdir=$(mktemp -d)
@@ -114,16 +117,31 @@ target=$(cd "$target"; pwd)
 # just create this file itself.
 mkdir -p "$target"/var/cache/yum/febootstrap/packages
 
+# NB: REQUIRED for useradd/groupadd to run properly.
+#
+# However this causes 'filesystem' RPM install to give the
+# following error.  Not sure how serious the error is:
+# error: unpacking of archive failed on file /proc: cpio: utime
+export FAKECHROOT_EXCLUDE_PATH=/proc
+
+# Substitute some statically-linked commands.  This is only supported
+# in fakechroot > 2.9.  For previous versions of fakechroot it is
+# ignored.
+export FAKECHROOT_CMD_SUBST=/sbin/ldconfig=/bin/true:/usr/sbin/glibc_post_upgrade.i686=/bin/true:/usr/sbin/glibc_post_upgrade.x86_64=/bin/true
+
 # Make the device nodes inside the fake chroot.
 # (Copied from mock/backend.py)  Why isn't there a base package which
 # creates these?
 make_device_nodes ()
 {
+    mkdir "$target"/proc
+    mkdir "$target"/sys
     mkdir "$target"/dev
     (
        cd "$target"/dev
        mkdir pts
        mkdir shm
+       mkdir mapper
        mknod null c 1 3;    chmod 0666 null
        mknod full c 1 7;    chmod 0666 full
        mknod zero c 1 5;    chmod 0666 zero