[26272] in Source-Commits
/svn/athena r25482 - trunk/debathena/scripts/build-server
daemon@ATHENA.MIT.EDU (Geoffrey Thomas)
Mon May 7 17:50:44 2012
Date: Mon, 7 May 2012 17:50:43 -0400
From: Geoffrey Thomas <geofft@MIT.EDU>
Message-Id: <201205072150.q47LohtU030340@drugstore.mit.edu>
To: source-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: geofft
Date: 2012-05-07 17:50:43 -0400 (Mon, 07 May 2012)
New Revision: 25482
Modified:
trunk/debathena/scripts/build-server/make-chroot
Log:
make-chroot: Minor cleanups
Among other things, switch to /var/tmp since /tmp is often mounted
nodev.
Modified: trunk/debathena/scripts/build-server/make-chroot
===================================================================
--- trunk/debathena/scripts/build-server/make-chroot 2012-05-07 21:48:09 UTC (rev 25481)
+++ trunk/debathena/scripts/build-server/make-chroot 2012-05-07 21:50:43 UTC (rev 25482)
@@ -8,9 +8,12 @@
set -xe
+: ${CHROOTDIR=/srv}
+: ${MIRROR=localhost:9999}
SUITE=$1
ARCH=$2
CHROOT="${SUITE}-${ARCH}-sbuild"
+FILE="$CHROOTDIR"/"$CHROOT".tar.bz2
SIZE=4G
exittrap() { :; }
@@ -21,6 +24,10 @@
echo "Chroot $CHROOT already exists." >&2
exit 1
fi
+if [ -e "$FILE" ]; then
+ echo "Chroot tarball $FILE already exists." >&2
+ exit 1
+fi
if [ -d /etc/schroot/chroot.d ]; then
CONF=/etc/schroot/chroot.d/$CHROOT
@@ -42,25 +49,26 @@
SOURCESD="$DATA/sources.list.d"
if [ -e "$SOURCESD/debian/$SUITE.list" ]; then
SOURCES="$SOURCESD/debian/$SUITE.list"
- MIRROR=http://localhost:9999/debian
+ MIRROR="http://$MIRROR/debian"
elif [ -e "$SOURCESD/ubuntu/$SUITE.list" ]; then
SOURCES="$SOURCESD/ubuntu/$SUITE.list"
- MIRROR=http://localhost:9999/ubuntu
+ MIRROR="http://$MIRROR/ubuntu"
else
echo "Unrecognized suite $SUITE." >&2
exit 1
fi
-exittrap() { umount "$TARGET" || :; rmdir "$TARGET" || :; }
-TARGET=$(mktemp -dt make-chroot.XXXXXX)
+exittrap() { rm -rf "$TMPDIR" || :; }
+TMPDIR=$(mktemp -d /var/tmp/make-chroot.XXXXXX)
+TARGET="$TMPDIR/root"
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"
mkdir -p "$TARGET/dev/shm"
mkdir -p "$TARGET/afs"
mkdir -p "$TARGET/mit"
-tar cjf /srv/"$CHROOT".tar.bz2 "$TARGET"
-rm -rf "$TARGET"
+(cd "$TMPDIR" && tar cjf "$FILE" --numeric-owner root)
+rm -rf "$TMPDIR"
exittrap() { :; }
! [ -s "$CONF" ] || echo >> "$CONF"
@@ -71,8 +79,8 @@
groups=root,sbuild
root-groups=root,sbuild
source-groups=root
-file=/srv/$CHROOT.tar.bz2
-location=$TARGET
+file=$FILE
+location=root
personality=$PERSONALITY
EOF