added 'novlandev' interface flag
[util-vserver.git] / util-vserver / scripts / vserver-build.debootstrap
index 27fb8d2..af0cc93 100644 (file)
@@ -29,11 +29,11 @@ function init
 
 function initVariables
 {
-    base.initVariables
+    base.init
 
     test -n "${mirror-unset}" || {
        local aux
-       findFile aux "$CONFDIR"/.defaults/apps/debootstrap/mirror ''
+       findFile aux "$__CONFDIR"/.defaults/apps/debootstrap/mirror ''
        test -z "$aux" || read mirror <"$aux"
     }
 }
@@ -54,16 +54,19 @@ function findDebootstrap
         workdir=$dir
         dst=$dir/debootstrap.deb
         
-        findFile DEBOOTSTRAP_URI "$CONFDIR"/.defaults/apps/debootstrap/uri "$PKGLIBDEFAULTDIR"/debootstrap.uri
+        findFile DEBOOTSTRAP_URI "$__CONFDIR"/.defaults/apps/debootstrap/uri "$__PKGLIBDEFAULTDIR"/debootstrap.uri
         read tmp <$DEBOOTSTRAP_URI
         case "$tmp" in
        (/*)                    ln -s "$tmp" "$dst";;
        (http://*|ftp://*)
+           echo $"\
+Could not find local version of 'debootstrap'; downloading it from
+${tmp}..."
            $_WGET -nv -O "$dst" "$tmp" || {
                $_CAT <<EOF >&2
 ERROR: Could not download the debootstrap package from
 
-   $dst
+   $tmp
 
 Usually, this means that Debian released a new version which is unknown
 to util-vserver and removed the known ones. To fix this, go to
@@ -73,7 +76,7 @@ to util-vserver and removed the known ones. To fix this, go to
 (or a nearby mirror) and search the URL for the most recent *.deb
 package matching your platform. Then, put this URL into
 
-   $CONFDIR/.defaults/apps/debootstrap/uri
+   $__CONFDIR/.defaults/apps/debootstrap/uri
 
 and retry the vserver-build command again.
 EOF
@@ -88,6 +91,18 @@ EOF
         tar xzf data.tar.gz
         export DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap
         DEBOOTSTRAP=`pwd`/usr/sbin/debootstrap
+
+       local arch
+       arch=$(uname -i 2>/dev/null) || \
+           arch=$(arch 2>/dev/null) ||
+           arch=
+
+       ## Wash the calculated architecture
+       case $arch in
+           (i?86|athlon)       arch=i386;;
+       esac
+
+       test -z "$arch" || echo "$arch" >$DEBOOTSTRAP_DIR/arch
     }
     popd &>/dev/null
 
@@ -111,18 +126,18 @@ init
 
 while true; do
     case "$1" in
-       -d)             DISTRIBUTION=$2; shift;;
-       -m)             mirror=$2;       shift;;
-       --debug)        set -x;;
-       --)             shift; break ;;
-       *)              echo "vserver-build.debootstrap: internal error: unrecognized option '$1'" >&2
+       (-d)            DISTRIBUTION=$2; shift;;
+       (-m)            mirror=$2;       shift;;
+       (--debug)       set -x;;
+       (--)            shift; break ;;
+       (*)             echo "vserver-build.debootstrap: internal error: unrecognized option '$1'" >&2
                        exit 1
                        ;;
     esac
     shift
 done
 
-getDistribution
+getDistribution '' 1
 
 initVariables  
 initFilesystem "$OPTION_FORCE"
@@ -137,3 +152,5 @@ mv "$VDIR"/dev "$VDIR"/dev.X
 "$DEBOOTSTRAP" "$@" "$DISTRIBUTION" "$VDIR" "$mirror" || :     ## HACK: ignore all errors...
 fixupDebian "$VDIR"
 test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+
+base.setSuccess