libimcv: Fixed processing of PTS Simple Component Evidence
[strongswan.git] / testing / scripts / build-strongswan
1 #!/bin/bash
2
3 echo "Preparing root image"
4
5 DIR=$(dirname `readlink -f $0`)
6 . $DIR/../testing.conf
7 . $DIR/function.sh
8
9 SWANDIR=${1:+$(readlink -f $1)}
10 : ${SWANDIR:=$(readlink -f $DIR/../..)}
11
12 [ `id -u` -eq 0 ] || die "You must be root to run $0"
13 [ -f "$BASEIMG" ] || die "Base image $BASEIMG not found"
14 [ -f "$ROOTIMG" ] || die "Root image $ROOTIMG not found"
15 running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"
16
17 [ -f $SWANDIR/src/libstrongswan/asn1/oid.txt ] || die "strongSwan not found in $SWANDIR"
18
19 SRCUID=${SUDO_UID:-$(id -u)}
20 SRCGID=${SUDO_GID:-$(id -g)}
21
22 check_commands partprobe qemu-img qemu-nbd bindfs
23
24 load_qemu_nbd
25
26 mkdir -p $LOOPDIR
27 mkdir -p $IMGDIR
28
29 log_action "Connecting root image to NBD device $NBDEV"
30 execute "qemu-nbd -c $NBDEV $ROOTIMG"
31 do_on_exit qemu-nbd -d $NBDEV
32 partprobe $NBDEV
33
34 log_action "Mounting $NBDPARTITION to $LOOPDIR"
35 execute "mount $NBDPARTITION $LOOPDIR"
36 do_on_exit umount $LOOPDIR
37
38 log_action "Mounting proc filesystem to $LOOPDIR/proc"
39 execute "mount -t proc none $LOOPDIR/proc"
40 do_on_exit umount $LOOPDIR/proc
41
42 mkdir -p $LOOPDIR/root/shared
43 log_action "Mounting $SHAREDDIR as /root/shared"
44 execute "mount -o bind $SHAREDDIR $LOOPDIR/root/shared"
45 do_on_exit umount $LOOPDIR/root/shared
46
47 mkdir -p $LOOPDIR/root/strongswan
48 log_action "Mounting $SWANDIR as /root/strongswan"
49 execute "bindfs -u $SRCUID -g $SRCGID $SWANDIR $LOOPDIR/root/strongswan"
50 do_on_exit umount $LOOPDIR/root/strongswan
51
52 log_action "Remove SWID tags of previous versions"
53 execute_chroot "find /usr/local/share -path '*strongswan*' -name *.swidtag -delete"
54
55 echo "Building and installing strongSwan"
56
57 log_action "Determine strongSwan version"
58 desc=`git -C $SWANDIR describe --dirty`
59 if [ $? -eq 0 ]; then
60         SWANVERSION="$desc (`git -C $SWANDIR rev-parse --abbrev-ref HEAD`)"
61 else
62         SWANVERSION="`cat $SWANDIR/configure.ac | sed -n '/^AC_INIT/{ s/.*,\[\(.*\)\])$/\1/p }'`"
63 fi
64 echo "$SWANVERSION" > $SHAREDDIR/.strongswan-version
65 log_status 0
66
67 log_action "Preparing source tree"
68 execute_chroot 'autoreconf -i /root/strongswan'
69
70 RECPDIR=$DIR/recipes
71 RECIPE=`ls $RECPDIR/*strongswan.mk | xargs -n1 basename`
72 mkdir -p $SHAREDDIR/build-strongswan
73 cp $RECPDIR/$RECIPE $SHAREDDIR/build-strongswan
74 log_action "Installing from recipe $RECIPE"
75 execute_chroot "make SRCDIR=/root/strongswan BUILDDIR=/root/shared/build-strongswan -f /root/shared/build-strongswan/$RECIPE"
76
77 # cleanup before mounting guest images
78 on_exit
79
80 $DIR/build-guestimages