applied http://savannah.nongnu.org/patch/?func=detailitem&item_id=4814
[util-vserver.git] / util-vserver / scripts / vserver-build.functions.yum
index 56b6db6..1006687 100644 (file)
@@ -22,7 +22,7 @@ function yum.installBasePackages
 
     test "$dir" != / || return 0
     for filelist in "$dir"/*; do
-       test -f "$filelist" || continue
+       isRegularFile "$filelist" || continue
        local idx=0
        local can_fail=false
        local flags=
@@ -43,31 +43,44 @@ function yum.installBasePackages
 function yum.initVariables
 {
     findDir  YUMREPOSDEFAULT \
-       "$CONFDIR/.distributions/$DISTRIBUTION/yum.repos.d" \
-       "$DISTRIBDIR/$DISTRIBUTION/yum.repos.d" \
+       "$__CONFDIR/.distributions/$DISTRIBUTION/yum.repos.d" \
+       "$__DISTRIBDIR/$DISTRIBUTION/yum.repos.d" \
        ''
 }
 
-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;
                  s!@YUMLOGDIR@!$prefix$PKGCFGDIR/yum!g;
+                 s!@YUMLOCKDIR@!$prefix$PKGCFGDIR/yum!g;
                  " "$f" >"$f.tmp"
        $_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"