[26632] in Source-Commits

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

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

daemon@ATHENA.MIT.EDU (Benjamin Kaduk)
Fri Jul 27 17:32:51 2012

Date: Fri, 27 Jul 2012 17:32:47 -0400 (EDT)
From: Benjamin Kaduk <kaduk@MIT.EDU>
To: Jonathan D Reed <jdreed@MIT.EDU>
cc: source-commits@MIT.EDU
In-Reply-To: <201207261535.q6QFZXup030482@drugstore.mit.edu>
Message-ID: <alpine.GSO.1.10.1207271732430.22690@multics.mit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

ACK.
-Ben

On Thu, 26 Jul 2012, Jonathan D Reed wrote:

> 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