[26624] in Source-Commits

home help back first fref pref prev next nref lref last post

/svn/athena r25661 - trunk/debathena/scripts/build-server

daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Thu Jul 26 11:35:35 2012

Date: Thu, 26 Jul 2012 11:35:33 -0400
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201207261535.q6QFZXup030482@drugstore.mit.edu>
To: source-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: jdreed
Date: 2012-07-26 11:35:33 -0400 (Thu, 26 Jul 2012)
New Revision: 25661

Modified:
   trunk/debathena/scripts/build-server/make-chroot
Log:
- Deal with /run chroots
- Allow $DATA to be overridden for testing purposes
- Add -d option for debugging which won't nuke the directory
  on a failure


Modified: trunk/debathena/scripts/build-server/make-chroot
===================================================================
--- trunk/debathena/scripts/build-server/make-chroot	2012-07-25 21:20:24 UTC (rev 25660)
+++ trunk/debathena/scripts/build-server/make-chroot	2012-07-26 15:35:33 UTC (rev 25661)
@@ -6,16 +6,23 @@
 # and architecture ARCH, and sets up schroot configuration for it.
 # Assumes an approx cache is running at localhost:9999.
 
+DEBUG=0
 BZ2=0
-if [ "$1" = "-z" ]; then
-    BZ2=1
-    shift
-fi
+while getopts 'dz' opt; do
+    case "$opt" in
+	d)
+	    DEBUG=1;;
+	z)
+	    BZ2=1;;
+    esac
+done
+shift $((OPTIND-1))
 
 set -xe
 
 : ${CHROOTDIR=/srv}
 : ${MIRRORHOST=localhost:9999}
+: ${DATA="$(dirname "$0")"}
 SUITE=$1
 ARCH=$2
 CHROOT="${SUITE}-${ARCH}-sbuild"
@@ -51,8 +58,6 @@
 	exit 1
 fi
 
-DATA="$(dirname "$0")"
-
 SOURCESD="$DATA/sources.list.d"
 if [ -e "$SOURCESD/debian/$SUITE.list" ]; then
 	SOURCES="$SOURCESD/debian/$SUITE.list"
@@ -65,16 +70,29 @@
 	exit 1
 fi
 
-exittrap() { rm -rf "$TMPDIR" || :; }
+exittrap() { 
+    if [ $DEBUG -ne 1 ]; then
+	rm -rf "$TMPDIR" || :
+    else
+	echo "DEBUG MODE: Clean up $TMPDIR by hand!"
+    fi
+}
 TMPDIR=$(mktemp -d /var/tmp/make-chroot.XXXXXX)
 TARGET="$TMPDIR/root"
+SCRIPTCFG="default/config"
 debootstrap --variant=buildd --include=apt,apt-utils,gnupg,build-essential,fakeroot --arch "$ARCH" "$SUITE" "$TARGET" "$MIRROR"
 install -m a=rx,u+w "$DATA/policy-rc.d" "$TARGET/usr/sbin/"
 mkdir -p "$TARGET/dev/pts"
 # /dev/shm is a symlink to /run/shm on modern distros 
 # So if it's not a symlink, then mkdir (and fail if it's something
-# that's not a symlink or a directory)
-[ -L "$TARGET/dev/shm" ] || mkdir -p "$TARGET/dev/shm"
+# that's not a symlink or a directory) and we have to use an schroot 
+# config that bind-mounts /run/shm instead of /dev/shm
+if [ -L "$TARGET/dev/shm" ] &&
+   [ "$(readlink "$TARGET/dev/shm")" = "/run/shm" ]; then
+    SCRIPTCFG="default-slash-run/config"
+else
+    mkdir -p "$TARGET/dev/shm"
+fi
 mkdir -p "$TARGET/afs"
 mkdir -p "$TARGET/mit"
 TAROPTS="cf"
@@ -91,6 +109,7 @@
 groups=root,sbuild
 root-groups=root,sbuild
 source-groups=root
+script-config=$SCRIPTCFG
 file=$FILE
 location=/root
 personality=$PERSONALITY


home help back first fref pref prev next nref lref last post