''
}
-function yum.initFilesystem
+function yum.__substituteConf
{
- mkdir -p "$PKGCFGDIR"/yum/{etc,cache}
-
- populateDirectory "$PKGCFGDIR/yum/etc" \
- "$DISTRIBDIR/defaults/yum" \
- "$DISTRIBDIR/$DISTRIBUTION/yum" \
- "$CONFDIR/.distributions/$DISTRIBUTION/yum"
+ local f=$1
+ local prefix=$2
- ## workaround for yum's automatism to search the configuration in the chroot
- local prefix='/../../../../../../../../../../../../'
- local f="$PKGCFGDIR"/yum/etc/yum.conf
if test -e "$f"; then
$_SED -e "s!@YUMETCDIR@!$prefix$PKGCFGDIR/yum/etc!g;
s!@YUMCACHEDIR@!$prefix$PKGCFGDIR/yum/cache!g;
$_CMP -s "$f" "$f.tmp" || $_CAT "$f.tmp" >"$f"
$_RM -f "$f.tmp"
fi
+}
+
+function yum.initFilesystem
+{
+ mkdir -p "$PKGCFGDIR"/yum/{etc,cache}
+
+ populateDirectory "$PKGCFGDIR/yum/etc" \
+ "$DISTRIBDIR/defaults/yum" \
+ "$DISTRIBDIR/$DISTRIBUTION/yum" \
+ "$CONFDIR/.distributions/$DISTRIBUTION/yum"
+
+ ## workaround for yum's automatism to search the configuration in the chroot
+
+ local f0="$PKGCFGDIR"/yum/etc/yum.conf
+ local f1="$PKGCFGDIR"/yum/etc/yum-hack.conf
+ cp -a "$f0" "$f1"
+
+ yum.__substituteConf "$f0" 'hostfs://'
+ yum.__substituteConf "$f1" '/../../../../../../../../../../../../'
test -z "$YUMREPOSDEFAULT" -o -e "$PKGCFGDIR/yum/etc/yum.repos.d" || \
$_LN_S "$YUMREPOSDEFAULT" "$PKGCFGDIR/yum/etc/yum.repos.d"
pkgInit "$vserver" rpm yum
rpmFake.init "$vserver"
-rpmFake.exec ${_YUM:-yum} \
- -c "$YUMETCDIR/yum.conf" \
+yum=${YUM:-yum}
+case $(yum --version) in
+ (2.[0123]*) conf=yum-hack.conf;;
+ (*) conf=yum.conf;;
+esac
+
+rpmFake.exec $yum \
+ -c "$YUMETCDIR/${YUM_CONF:-$conf}" \
--installroot="$VDIR" \
"$@"