X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=febootstrap.sh;h=b08e3c027e01199f99cd8ac68abb340cf0eeb83b;hb=68f63f58f0999b126c14d127e6ece499bffa51db;hp=41fc84c35ec29c1b840b332e9be4a13c44d79f21;hpb=1b640fb0bd84f88d378b6c4a74088ac22c8f7d75;p=febootstrap.git diff --git a/febootstrap.sh b/febootstrap.sh index 41fc84c..b08e3c0 100755 --- a/febootstrap.sh +++ b/febootstrap.sh @@ -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