#!/bin/bash

echo "Building base image"

DIR=$(dirname `readlink -f $0`)
. $DIR/../testing.conf
. $DIR/function.sh

[ `id -u` -eq 0 ] || die "You must be root to run $0"
running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"

check_commands debootstrap mkfs.ext3 partprobe qemu-img qemu-nbd sfdisk

# package includes/excludes
INC=automake,autoconf,libtool,bison,flex,gperf,pkg-config,gettext,less,locales
INC=$INC,build-essential,libgmp-dev,libldap2-dev,libcurl4-openssl-dev,ethtool
INC=$INC,libxml2-dev,libtspi-dev,libsqlite3-dev,openssh-server,tcpdump,psmisc
INC=$INC,openssl,vim,sqlite3,conntrack,gdb,cmake,libltdl-dev,wget,gnupg,man-db
INC=$INC,libboost-thread-dev,libboost-system-dev,git,iperf,htop,valgrind,strace
INC=$INC,gnat,gprbuild,acpid,acpi-support-base,libldns-dev,libunbound-dev
INC=$INC,dnsutils,libsoup2.4-dev,ca-certificates,unzip,libsystemd-dev
INC=$INC,python3,python3-setuptools,python3-dev,python3-pip,apt-transport-https
INC=$INC,libjson-c-dev,libxslt1-dev,libapache2-mod-wsgi-py3
INC=$INC,libxerces-c-dev,libgcrypt20-dev,traceroute,iptables
case "$BASEIMGSUITE" in
bullseye)
	INC=$INC,libiptc-dev
	;;
*)
	INC=$INC,iptables-dev
	;;
esac
case "$BASEIMGSUITE" in
stretch)
	INC=$INC,libahven5-dev,libxmlada-schema6-dev,libgmpada6-dev
	INC=$INC,libalog2-dev
	;;
buster)
	INC=$INC,libahven7-dev,libxmlada-schema8-dev,libgmpada8-dev
	INC=$INC,libalog4-dev,dbus-user-session
	;;
bullseye)
	INC=$INC,libahven9-dev,libxmlada-schema10-dev,libgmpada10-dev
	INC=$INC,libalog6-dev,dbus-user-session
	# workaround for dependency issue gdb -> libsource-highlight4v5 -> virtual
	# package (libboost-regex1.74.0-icu67), which debootstrap can't resolve (#878961)
	INC=$INC,libboost-regex1.74.0
	;;
*)
	echo_warn "Package list for '$BASEIMGSUITE' might has to be updated"
	;;
esac
SERVICES="apache2 dbus isc-dhcp-server slapd bind9 freeradius"
INC=$INC,${SERVICES// /,}
# packages to install via APT, for SWIMA tests
APT="tmux"
# additional services to disable
SERVICES="$SERVICES systemd-timesyncd.service"

CACHEDIR=$BUILDDIR/cache
APTCACHE=$LOOPDIR/var/cache/apt/archives

mkdir -p $LOOPDIR
mkdir -p $CACHEDIR
mkdir -p $IMGDIR
rm -f $BASEIMG

echo "`date`, building $BASEIMG" >>$LOGFILE

load_qemu_nbd

log_action "Creating base image $BASEIMG"
execute "qemu-img create -f $IMGEXT $BASEIMG ${BASEIMGSIZE}M"

log_action "Connecting image to NBD device $NBDEV"
execute "qemu-nbd -c $NBDEV $BASEIMG"
do_on_exit qemu-nbd -d $NBDEV

log_action "Partitioning disk"
sfdisk /dev/nbd0 >>$LOGFILE 2>&1 << EOF
;
EOF
if [ $? != 0 ]
then
	log_status 1
	exit 1
else
	log_status 0
fi
partprobe $NBDEV

log_action "Creating ext3 filesystem"
execute "mkfs.ext3 $NBDPARTITION"

log_action "Mounting $NBDPARTITION to $LOOPDIR"
execute "mount $NBDPARTITION $LOOPDIR"
do_on_exit graceful_umount $LOOPDIR

log_action "Using $CACHEDIR as archive for apt"
mkdir -p $APTCACHE
execute "mount -o bind $CACHEDIR $APTCACHE"
do_on_exit graceful_umount $APTCACHE

log_action "Running debootstrap ($BASEIMGSUITE, $BASEIMGARCH)"
execute "debootstrap --arch=$BASEIMGARCH --include=$INC $BASEIMGSUITE $LOOPDIR $BASEIMGMIRROR"

execute "mount -t proc none $LOOPDIR/proc" 0
do_on_exit graceful_umount $LOOPDIR/proc

log_action "Generating locales"
cat > $LOOPDIR/etc/locale.gen << EOF
de_CH.UTF-8 UTF-8
en_US.UTF-8 UTF-8
EOF
execute_chroot "locale-gen"

log_action "Downloading signing key for custom apt repo"
execute_chroot "wget -q $BASEIMGEXTKEY -O /tmp/key"
log_action "Installing signing key for custom apt repo"
execute_chroot "apt-key add /tmp/key"

log_action "Enabling custom apt repo"
cat > $LOOPDIR/etc/apt/sources.list.d/strongswan.list << EOF
deb $BASEIMGEXTREPO $BASEIMGSUITE main
EOF
log_status $?

log_action "Prioritize custom apt repo"
cat > $LOOPDIR/etc/apt/preferences.d/strongswan.pref << EOF
Package: *
Pin: origin "$BASEIMGEXTREPOHOST"
Pin-Priority: 1001
EOF
log_status $?

log_action "Update package sources"
execute_chroot "apt-get update"
log_action "Install packages via APT"
execute_chroot "apt-get -y install $APT"
log_action "Install packages from custom repo"
execute_chroot "apt-get -y upgrade"

for service in $SERVICES
do
	log_action "Disabling service $service"
	execute_chroot "systemctl disable $service"
done

case "$BASEIMGSUITE" in
buster|bullseye)
	log_action "Switching from iptables-nft to iptables-legacy"
	execute_chroot "update-alternatives --set iptables /usr/sbin/iptables-legacy" 0
	execute_chroot "update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy" 0
	log_status 0
	;;
esac

log_action "Disabling root password"
execute_chroot "passwd -d root"
