diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-01-17 17:00:05 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2013-01-17 17:00:05 +0100 |
commit | 0c006341f3789477c429cdfb547ad5ec59819bbf (patch) | |
tree | b11eda6dc752549be59cc5406887ae4b404e4aa8 /testing/scripts/build-rootimage | |
parent | 1449e6dd55892c92e502a14dbfc3ede094aaa806 (diff) | |
parent | 737912239f625dcfa1c26924430d8ceb033184dd (diff) | |
download | strongswan-0c006341f3789477c429cdfb547ad5ec59819bbf.tar.bz2 strongswan-0c006341f3789477c429cdfb547ad5ec59819bbf.tar.xz |
Merge branch 'debian-testing'
These changes update the integration test system. It previously was based
on a pretty much unmaintainable Gentoo root image and the dated UML
virtualization technology. Among many other changes the test environment
is now based on KVM and uses reproducible Debian-based guest images.
Conflicts:
NEWS
Diffstat (limited to 'testing/scripts/build-rootimage')
-rwxr-xr-x | testing/scripts/build-rootimage | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/testing/scripts/build-rootimage b/testing/scripts/build-rootimage new file mode 100755 index 000000000..8e10ce5f3 --- /dev/null +++ b/testing/scripts/build-rootimage @@ -0,0 +1,67 @@ +#!/bin/bash +# Create guest root image +# +# Copyright (C) 2004 Eric Marchionni, Patrik Rayo +# Zuercher Hochschule Winterthur +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. + +echo "Building root image" + +DIR=$(dirname `readlink -f $0`) +. $DIR/../testing.conf +. $DIR/function.sh + +[ `id -u` -eq 0 ] || die "You must be root to run $0" +[ -f "$BASEIMG" ] || die "Base image $BASEIMG not found" + +check_commands partprobe qemu-img qemu-nbd + +load_qemu_nbd + +mkdir -p $LOOPDIR +mkdir -p $SHAREDDIR/compile +mkdir -p $IMGDIR + +log_action "Creating root image $ROOTIMG" +execute "qemu-img create -b $BASEIMG -f $IMGEXT $ROOTIMG" + +log_action "Connecting root image to NBD device $NBDEV" +execute "qemu-nbd -c $NBDEV $ROOTIMG" +do_on_exit qemu-nbd -d $NBDEV +partprobe $NBDEV + +log_action "Mounting $NBDPARTITION to $LOOPDIR" +execute "mount $NBDPARTITION $LOOPDIR" +do_on_exit umount $LOOPDIR + +log_action "Mounting proc filesystem to $LOOPDIR/proc" +execute "mount -t proc none $LOOPDIR/proc" +do_on_exit umount $LOOPDIR/proc + +mkdir -p $LOOPDIR/root/shared +log_action "Mounting $SHAREDDIR as /root/shared" +execute "mount -o bind $SHAREDDIR $LOOPDIR/root/shared" +do_on_exit umount $LOOPDIR/root/shared + +echo "Installing software from source" +RECPDIR=$DIR/recipes +RECIPES=`ls $RECPDIR/*.mk | xargs -n1 basename` +execute "cp -r $RECPDIR/patches $LOOPDIR/root/shared/compile" 0 +for r in $RECIPES +do + cp $RECPDIR/$r ${LOOPDIR}/root/shared/compile + log_action "Installing from recipe $r" + execute_chroot "make SWANVERSION=$SWANVERSION -C /root/shared/compile -f $r" +done + +log_action "Removing /etc/resolv.conf" +execute "rm -f $LOOPDIR/etc/resolv.conf" |