Annotation of embedaddon/strongswan/testing/scripts/build-strongswan, revision 1.1.1.1

1.1       misho       1: #!/bin/bash
                      2: 
                      3: DIR=$(dirname `readlink -f $0`)
                      4: . $DIR/../testing.conf
                      5: . $DIR/function.sh
                      6: 
                      7: SWANDIR=${1:+$(readlink -f $1)}
                      8: : ${SWANDIR:=$(readlink -f $DIR/../..)}
                      9: 
                     10: [ `id -u` -eq 0 ] || die "You must be root to run $0"
                     11: [ -f "$BASEIMG" ] || die "Base image $BASEIMG not found"
                     12: [ -f "$ROOTIMG" ] || die "Root image $ROOTIMG not found"
                     13: running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"
                     14: 
                     15: [ -f $SWANDIR/src/libstrongswan/asn1/oid.txt ] || die "strongSwan not found in $SWANDIR"
                     16: 
                     17: SRCUID=${SUDO_UID:-$(id -u)}
                     18: SRCGID=${SUDO_GID:-$(id -g)}
                     19: 
                     20: check_commands partprobe qemu-img qemu-nbd bindfs
                     21: 
                     22: load_qemu_nbd
                     23: 
                     24: mkdir -p $LOOPDIR
                     25: mkdir -p $IMGDIR
                     26: 
                     27: case "$2" in
                     28: "")
                     29:        log_action "Connecting root image to NBD device $NBDEV"
                     30:        execute "qemu-nbd -c $NBDEV $ROOTIMG"
                     31:        ;;
                     32: *)
                     33:        echo $STRONGSWANHOSTS | grep -q "\b$2\b" || die "Guest $2 not found"
                     34:        GUESTIMG="$IMGDIR/$2.$IMGEXT"
                     35:        [ -f "$GUESTIMG" ] || die "Guest image $GUESTIMG not found"
                     36:        log_action "Connecting guest image to NBD device $NBDEV"
                     37:        execute "qemu-nbd -c $NBDEV $GUESTIMG"
                     38:        ;;
                     39: esac
                     40: 
                     41: do_on_exit qemu-nbd -d $NBDEV
                     42: partprobe $NBDEV
                     43: 
                     44: log_action "Mounting $NBDPARTITION to $LOOPDIR"
                     45: execute "mount $NBDPARTITION $LOOPDIR"
                     46: do_on_exit umount $LOOPDIR
                     47: 
                     48: log_action "Mounting proc filesystem to $LOOPDIR/proc"
                     49: execute "mount -t proc none $LOOPDIR/proc"
                     50: do_on_exit umount $LOOPDIR/proc
                     51: 
                     52: mkdir -p $LOOPDIR/root/shared
                     53: log_action "Mounting $SHAREDDIR as /root/shared"
                     54: execute "mount -o bind $SHAREDDIR $LOOPDIR/root/shared"
                     55: do_on_exit umount $LOOPDIR/root/shared
                     56: 
                     57: mkdir -p $LOOPDIR/root/strongswan
                     58: log_action "Mounting $SWANDIR as /root/strongswan"
                     59: execute "bindfs -u $SRCUID -g $SRCGID --create-for-user=$SRCUID --create-for-group=$SRCGID $SWANDIR $LOOPDIR/root/strongswan"
                     60: do_on_exit umount $LOOPDIR/root/strongswan
                     61: 
                     62: log_action "Copy /etc/resolv.conf"
                     63: execute "cp /etc/resolv.conf $LOOPDIR/etc/resolv.conf"
                     64: do_on_exit rm $LOOPDIR/etc/resolv.conf
                     65: 
                     66: log_action "Remove SWID tags of previous versions"
                     67: execute_chroot "find /usr/local/share -path '*strongswan*' -name *.swidtag -delete"
                     68: 
                     69: echo "Building and installing strongSwan"
                     70: 
                     71: log_action "Determine strongSwan version"
                     72: desc=`git -C $SWANDIR describe --dirty`
                     73: if [ $? -eq 0 ]; then
                     74:        SWANVERSION="$desc (`git -C $SWANDIR rev-parse --abbrev-ref HEAD`)"
                     75: else
                     76:        SWANVERSION="`cat $SWANDIR/configure.ac | sed -n '/^AC_INIT/{ s/.*,\[\(.*\)\])$/\1/p }'`"
                     77: fi
                     78: echo "$SWANVERSION" > $SHAREDDIR/.strongswan-version
                     79: log_status 0
                     80: 
                     81: log_action "Preparing source tree"
                     82: execute_chroot 'autoreconf -i /root/strongswan'
                     83: 
                     84: RECPDIR=$DIR/recipes
                     85: RECIPE=`ls $RECPDIR/*strongswan.mk | xargs -n1 basename`
                     86: mkdir -p $SHAREDDIR/build-strongswan
                     87: cp $RECPDIR/$RECIPE $SHAREDDIR/build-strongswan
                     88: log_action "Installing from recipe $RECIPE"
                     89: execute_chroot "make SRCDIR=/root/strongswan BUILDDIR=/root/shared/build-strongswan -f /root/shared/build-strongswan/$RECIPE"
                     90: 
                     91: # rebuild the guest images after we modified the root image
                     92: if [ -z "$2" ]; then
                     93:        # cleanup before mounting guest images
                     94:        on_exit
                     95:        # building the guest images without certificates fails on winnetou
                     96:        if [ ! -f "$DIR/../hosts/winnetou/etc/ca/strongswanCert.pem" ]; then
                     97:                # this also re-builds the guest images
                     98:                $DIR/build-certs
                     99:        else
                    100:                $DIR/build-guestimages
                    101:        fi
                    102: fi

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>