]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/schroot/files/setup-dchroot
setup-dchroot: use linux32 personality on mips/mipsel
[dsa-puppet.git] / modules / schroot / files / setup-dchroot
index 3f6179d9b9ccb54ecd0f420259ca1d4b70689b5b..92b210f1372cb1b301234d16e7706711c6554df3 100755 (executable)
@@ -106,7 +106,7 @@ EOF
         echo "aliases=$suite"
     fi
     case "$arch" in
-        armel|armhf|i386|powerpc|s390|sparc)
+        armel|armhf|i386|mips|mipsel|powerpc|s390|sparc)
             echo "personality=linux32"
             ;;
     esac
@@ -116,7 +116,6 @@ EOF
         sid)
             genschrootconf "experimental" "$arch" "$target"
             ;;
-        #experimental|jessie)
         experimental)
             :
             ;;
@@ -124,11 +123,13 @@ EOF
             if [ -z "$extra" ] && [ -z "$ubuntu" ]; then
                 genschrootconf "$suite" "$arch" "$target" "backports"
                 [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "backports-sloppy"
+                [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "kfreebsd"
                 [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "lts"
                 [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "proposed-updates"
                 [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "security"
             fi
     esac
+    return 0
 }
 
 do_config() {
@@ -149,7 +150,7 @@ arch="$THISARCH"
 if [ -e /etc/schroot/dsa/default-mirror ]; then
     mirror=$(cat /etc/schroot/dsa/default-mirror )
 fi
-mirror="${mirror:-http://cdn.debian.net/debian}"
+mirror="${mirror:-http://ftp.debian.org/debian}"
 configonly=""
 force=""
 basedir="/srv/chroot"
@@ -158,8 +159,9 @@ keyring=/usr/share/keyrings/debian-archive-keyring.gpg
 personality="dsa"
 sbuildnames=""
 ubuntu=""
-groupuser="Debian,guest"
+groupuser="Debian,guest,d-i"
 grouproot=""
+include="apt,fakeroot"
 users=""
 usersroot=""
 bare=""
@@ -170,7 +172,7 @@ cleanup+=(":")
 trap do_cleanup EXIT
 buildd=""
 
-while getopts "a:b:Bcd:Dfg:hKk:m:o:O:p:r:sS:u" OPTION
+while getopts "a:b:Bcd:Dfg:hI:Kk:m:o:O:p:r:sS:u" OPTION
 do
     case $OPTION in
         a)
@@ -191,8 +193,8 @@ do
             bare="1"
             groupuser=""
             grouproot=""
-            users="buildd"
-            usersroot="buildd"
+            users="buildd,buildd2"
+            usersroot="buildd,buildd2"
             personality="buildd"
             suffix="sbuild"
             ;;
@@ -209,6 +211,9 @@ do
             usage
             exit 0
             ;;
+        I)
+            include="$include,$OPTARG"
+            ;;
         K)
             keep="4"
             ;;
@@ -254,7 +259,17 @@ fi
 suite="$1"; shift
 tuple="${suite}_${arch}"
 
-builddir=${builddir:-$basedir}
+if [ -z "${builddir:-}" ]; then
+  builddir=${builddir:-$basedir}
+  for u in schroot-unpack unpack; do
+    # if one of these directories exists and is on a different filesystem, prefer it.
+    candidate="$builddir/$u"
+    if [ -e "$candidate" ] &&
+       [ "$(stat -f --printf '%i\n' "$builddir" )" != "$(stat -f --printf '%i\n' "$candidate")" ]; then
+      builddir="$candidate"
+    fi
+  done
+fi
 [ -d "$basedir" ] || die "Error: $basedir does not exist (or is not a directory)."
 [ -d "$builddir" ] || die "Error: $builddir does not exist (or is not a directory)."
 
@@ -264,6 +279,17 @@ target="$basedir/$tuple.tar.gz"
 schrootconfig="/etc/schroot/chroot.d/${tuple}-$suffix"
 ! [ -e "$schrootconfig" ] || [ -n "$force" ] || die "Error: $schrootconfig already exists."
 
+suite_alias="$suite"
+case "$arch" in
+    kfreebsd-*)
+        case "$suite" in
+            jessie)
+                suite_alias="$suite-kfreebsd"
+                ;;
+        esac
+        ;;
+esac
+
 
 #
 # let's go
@@ -289,10 +315,10 @@ fi
 set -x
 debootstrap \
     --keyring "$keyring" \
-    --include="apt" \
+    --include="$include" \
     --variant=buildd \
     --arch="$arch" \
-    "$suite" "$rootdir" "$mirror" "$script"
+    "$suite_alias" "$rootdir" "$mirror" "$script"
 echo "$tuple" > "$rootdir/etc/debian_chroot"
 echo "force-unsafe-io" > "$rootdir/etc/dpkg/dpkg.cfg.d/force-unsafe-io"
 echo "force-confnew" > "$rootdir/etc/dpkg/dpkg.cfg.d/force-confnew"
@@ -311,7 +337,7 @@ esac
 
 
 chroot "$rootdir" apt-get update
-chroot "$rootdir" apt-get install -y --force-yes --no-install-recommends policyrcd-script-zg2
+chroot "$rootdir" apt-get install -y --no-install-recommends policyrcd-script-zg2
 cat > "$rootdir/usr/local/sbin/policy-rc.d" << 'EOF'
 #!/bin/sh
 
@@ -330,9 +356,9 @@ while true; do
 done
 EOF
 chmod +x "$rootdir/usr/local/sbin/policy-rc.d"
-[ -z "$bare" ] && [ -z "$ubuntu" ] && chroot "$rootdir" apt-get install -y --force-yes --no-install-recommends locales-all
-chroot "$rootdir" apt-get install -y --force-yes --no-install-recommends build-essential
-[ -z "$bare" ] && chroot "$rootdir" apt-get install -y --force-yes --no-install-recommends zsh less vim fakeroot devscripts gdb
+[ -z "$bare" ] && [ -z "$ubuntu" ] && chroot "$rootdir" apt-get install -y --no-install-recommends locales-all
+chroot "$rootdir" apt-get install -y --no-install-recommends build-essential
+[ -z "$bare" ] && chroot "$rootdir" apt-get install -y --no-install-recommends zsh less vim fakeroot devscripts gdb
 rm -f "$rootdir/etc/apt/sources.list" "$rootdir/etc/apt/sources.list.d/*"
 chroot "$rootdir" apt-get clean
 umount "$rootdir/dev" 2>/dev/null || true