Setting tag fprobe-ulog-1.1.4-3
[build.git] / vbuild-init-vserver.sh
index d28b489..301b838 100755 (executable)
@@ -85,7 +85,7 @@ function package_method () {
     fcdistro=$1; shift
     case $fcdistro in
        f[0-9]*|centos[0-9]*|sl[0-9]*) echo yum ;;
-       squeeze|wheezy|oneiric|precise|quantal) echo debootstrap ;;
+       squeeze|wheezy|oneiric|precise|quantal|raring) echo debootstrap ;;
        *) echo Unknown distro $fcdistro ;;
     esac 
 }
@@ -96,7 +96,7 @@ function debian_mirror () {
     case $fcdistro in
        squeeze|wheezy) 
            echo http://ftp2.fr.debian.org/debian/ ;;
-       oneiric|precise|quantal) 
+       oneiric|precise|quantal|raring
            echo http://mir1.ovh.net/ubuntu/ubuntu/ ;;
        *) echo unknown distro $fcdistro; exit 1;;
     esac
@@ -234,19 +234,21 @@ function setup_vserver () {
     # + exec /usr/sbin/vspace --mount --fs --new -- /usr/sbin/vserver ----nonamespace debuild09 start
     # fakerunlevel: open("/var/run/utmp"): No such file or directory
     # so instead we bluntly create empty dirs and hope for the best
-    if [ "$pkg_method" = "debootstrap" ] ; then
+#    if [ "$pkg_method" = "debootstrap" ] ; then
        [ -h /vservers/$vserver/var/run ] && [ ! -d /vservers/$vserver/var/run ] && \
 #          { rm -f /vservers/$vserver/var/run ; ln -s ../run /vservers/$vserver/var/run ; }
            { rm -f /vservers/$vserver/var/run ; mkdir /vservers/$vserver/var/run ; }
        [ -h /vservers/$vserver/var/lock ] && [ ! -d /vservers/$vserver/var/lock ] && \
 #          { rm -f /vservers/$vserver/var/lock ; ln -s ../run/lock /vservers/$vserver/var/lock ; }
            { rm -f /vservers/$vserver/var/lock ; mkdir /vservers/$vserver/var/lock ; }
-    fi
+#    fi
 
     # start the vserver so we can do the following operations
     # redirect out/err to protect against the vserver's init sequence getting stalled 
     # mostly used for f10 vservers created remotely through ssh
-    $personality vserver $VERBOSE $vserver start >& /dev/null
+    # with ubuntu/raring, somehow this fails, so ignore retcod, 
+    # as subsequent vserver exec will fail anyway
+    $personality vserver $VERBOSE $vserver start >& /dev/null || :
 
     if [ "$pkg_method" == "yum" ] ; then
        $personality vserver $VERBOSE $vserver exec sh -c "rm -f /var/lib/rpm/__db*"
@@ -274,6 +276,10 @@ function setup_vserver () {
 
        # try the simple way, if that fails try to cross fix the rpm hashes
        $personality vserver $VERBOSE $vserver exec rpm --rebuilddb || translate_rpm_hashes $personality $vserver
+      
+    elif [ "$pkg_method" == "debootstrap" ] ; then
+       # just check the vm is running
+       $personality vserver $VERBOSE $vserver exec arch 
     fi
 
     # check if the vserver kernel is using VSERVER_DEVICE (vdevmap) support
@@ -296,14 +302,6 @@ function setup_vserver () {
 
 }
 
-# debugging
-# on precise it looks like at some point when installing additional packages we're losing /etc/resolv.conf
-function status_resolv () {
-    echo "xxxxxxxxxxxxxxxxxxxx" status_resolv "$@"
-    ls -l /etc/resolv.conf* || :
-    echo "xxxxxxxxxxxxxxxxxxxx" status_resolv "$@"
-}
-
 function devel_or_vtest_tools () {
 
     set -x 
@@ -319,8 +317,6 @@ function devel_or_vtest_tools () {
 
     pkgsfile=$(pl_locateDistroFile $DIRNAME $pldistro $PREINSTALLED)
 
-    status_resolv "entering devel_or_vtest_tools"
-
     ### install individual packages, then groups
     # get target arch - use uname -i here (we want either x86_64 or i386)
     vserver_arch=$($personality vserver $vserver exec uname -i)
@@ -349,14 +345,14 @@ function devel_or_vtest_tools () {
                # also adding a link to updates sounds about right
                ( cd /vservers/$vserver/etc/apt ; head -1 sources.list | sed -e 's, main,-updates main,' > sources.list.d/updates.list )
            fi
-           status_resolv "before apt-get update & upgrade"
            $personality vserver $vserver exec apt-get update
-           $personality vserver $vserver exec apt-get -y upgrade
+           # ignore result because that one failed on precise
+sc         $personality vserver $vserver exec apt-get -y upgrade ||:
            # handle this one firt off to be sure; mostly cosmetic but avoid a huge amount of warnings
            $personality vserver $vserver exec apt-get install -y locales
+           $personality vserver $vserver exec locale-gen en_US.UTF-8
            # install required packages
            # all in a single batch 
-           status_resolv "before apt-get install all packages"
            [ -n "$packages" ] && $personality vserver $vserver exec apt-get install -y --ignore-missing $packages || :
            # of course, on ubuntu apt-get --ignore-missing .. does not ignore missing packages !
            # check it up a bit 
@@ -365,7 +361,6 @@ function devel_or_vtest_tools () {
                    echo "==========(debian) package $package OK (1)"
                else
                    # try to install it individually - so this is for ubuntu
-                   status_resolv "before apt-get install specific to $package"
                    $personality vserver $vserver exec apt-get install -y $package || :
                    # still not there ?
                    if $personality vserver $vserver exec dpkg -l $package >& /dev/null ; then
@@ -375,7 +370,6 @@ function devel_or_vtest_tools () {
                    fi
                fi
            done
-           status_resolv "Done"
            ### xxx todo install groups with apt..
            ;;
        *)