-i|--install)
packages[i++]="$2"
shift 2;;
- --groupinstall|--group-install)
+ -g|--groupinstall|--group-install)
packages[i++]="@$2"
shift 2;;
-p|--proxy)
# Architecture is currently always the same as the current arch. We
# cannot do --foreign builds. See discussion in the manpage.
-arch=$(arch)
+arch=$(uname -m)
case $arch in
i?86) arch=i386 ;;
esac
# Add the updates repository if asked.
case "$updates" in
- none|no)
+ ""|none|no)
;;
*://*)
cat >> $tmpdir/febootstrap.repo <<EOF
$proxy
baseurl=$updates
EOF
+addrepo=febootstrap-updates
;;
*)
cat >> $tmpdir/febootstrap.repo <<EOF
$proxy
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=$updates&arch=$arch
EOF
+addrepo=febootstrap-updates
;;
esac
mkdir "$target"
# Target must be an absolute path.
-target=$(cd "$target"; pwd)
+target=$(cd "$target" > /dev/null; pwd)
# This is necessary to keep yum happy. It's not clear why yum can't
# just create this file itself.
# 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:/usr/sbin/build-locale-archive=/bin/true:/usr/sbin/libgcc_post_upgrade=/bin/true
+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:/usr/sbin/build-locale-archive=/bin/true:/usr/sbin/libgcc_post_upgrade=/bin/true:/sbin/new-kernel-pkg=/bin/true:/usr/sbin/nscd=/bin/true
+
+# Use the libraries inside the chroot.
+export LD_LIBRARY_PATH="$target"/usr/lib64:"$target"/usr/lib:"$target"/lib64:"$target"/usr/lib
# Make the device nodes inside the fake chroot.
# (Copied from mock/backend.py) Why isn't there a base package which
make_device_nodes
fi
+repos=febootstrap
+if [ -n "$addrepo" ]; then
+ repos="$repos,$addrepo"
+fi
+
# Run yum.
run_yum ()
{
yum \
-y -c "$tmpdir"/febootstrap.repo \
- --disablerepo=* --enablerepo=febootstrap \
+ --disablerepo=* --enablerepo=$repos \
--noplugins --nogpgcheck \
--installroot="$target" \
install "$@"
}
export -f run_yum
export tmpdir
+export repos
if [ $(id -u) -ne 0 ]; then
# Bash doesn't support exporting array variables, hence this
# Clean up the yum repository.
if [ "$clean" = "yes" ]; then
- rm -rf "$target"/var/cache/yum/febootstrap
+ febootstrap-run "$target" -- rm -rf /var/cache/yum/febootstrap
+ febootstrap-run "$target" -- rm -rf /var/cache/yum/febootstrap-updates
fi