3 echo "Building base image"
5 DIR
=$
(dirname `readlink -f $0`)
9 [ `id -u` -eq 0 ] || die
"You must be root to run $0"
10 running_any
$STRONGSWANHOSTS && die
"Please stop test environment before running $0"
12 check_commands debootstrap mkfs.ext3 partprobe qemu-img qemu-nbd sfdisk
14 # package includes/excludes
15 INC
=automake
,autoconf
,libtool
,bison
,flex
,gperf
,pkg-config
,gettext,less,locales
16 INC
=$INC,build-essential
,libgmp-dev
,libldap2-dev
,libcurl4-openssl-dev
,ethtool
17 INC
=$INC,libxml2-dev
,libtspi-dev
,libsqlite3-dev
,openssh-server
,tcpdump
,psmisc
18 INC
=$INC,openssl
,vim
,sqlite3
,conntrack
,gdb
,cmake
,libltdl-dev
,liblog4cxx10-dev
19 INC
=$INC,libboost-thread-dev
,libboost-system-dev
,git-core
,iperf
,htop
20 INC
=$INC,gnat
,gprbuild
,acpid
,acpi-support-base
,libldns-dev
,libunbound-dev
21 INC
=$INC,dnsutils
,libsoup2.4
-dev,ca-certificates
,unzip,libsystemd-dev
22 INC
=$INC,python
,python-setuptools
,python-dev
,python-pip
,apt-transport-https
23 INC
=$INC,libjson-c-dev
,libxslt1-dev
,libapache2-mod-wsgi
,iptables-dev
24 INC
=$INC,libxerces-c-dev
,libgcrypt20-dev
,traceroute
25 case "$BASEIMGSUITE" in
27 INC
=$INC,libahven4-dev
,libxmlada5-dev
,libgmpada5-dev
31 INC
=$INC,libahven5-dev
,libxmlada-schema6-dev
,libgmpada6-dev
35 echo_warn
"Package list for '$BASEIMGSUITE' might has to be updated"
37 SERVICES
="apache2 dbus isc-dhcp-server slapd bind9 freeradius"
38 INC
=$INC,${SERVICES// /,}
39 # packages to install via APT, for SWIMA tests
41 # additional services to disable
42 SERVICES
="$SERVICES systemd-timesyncd.service"
44 CACHEDIR
=$BUILDDIR/cache
45 APTCACHE
=$LOOPDIR/var
/cache
/apt
/archives
52 echo "`date`, building $BASEIMG" >>$LOGFILE
56 log_action
"Creating base image $BASEIMG"
57 execute
"qemu-img create -f $IMGEXT $BASEIMG ${BASEIMGSIZE}M"
59 log_action
"Connecting image to NBD device $NBDEV"
60 execute
"qemu-nbd -c $NBDEV $BASEIMG"
61 do_on_exit qemu-nbd
-d $NBDEV
63 log_action
"Partitioning disk"
64 sfdisk
/dev
/nbd0
>>$LOGFILE 2>&1 << EOF
76 log_action
"Creating ext3 filesystem"
77 execute
"mkfs.ext3 $NBDPARTITION"
79 log_action
"Mounting $NBDPARTITION to $LOOPDIR"
80 execute
"mount $NBDPARTITION $LOOPDIR"
81 do_on_exit graceful_umount
$LOOPDIR
83 log_action
"Using $CACHEDIR as archive for apt"
85 execute
"mount -o bind $CACHEDIR $APTCACHE"
86 do_on_exit graceful_umount
$APTCACHE
88 log_action
"Running debootstrap ($BASEIMGSUITE, $BASEIMGARCH)"
89 execute
"debootstrap --arch=$BASEIMGARCH --include=$INC $BASEIMGSUITE $LOOPDIR $BASEIMGMIRROR"
91 execute
"mount -t proc none $LOOPDIR/proc" 0
92 do_on_exit graceful_umount
$LOOPDIR/proc
94 log_action
"Generating locales"
95 cat > $LOOPDIR/etc
/locale.gen
<< EOF
99 execute_chroot
"locale-gen"
101 log_action
"Downloading signing key for custom apt repo"
102 execute_chroot
"wget -q $BASEIMGEXTKEY -O /tmp/key"
103 log_action
"Installing signing key for custom apt repo"
104 execute_chroot
"apt-key add /tmp/key"
106 log_action
"Enabling custom apt repo"
107 cat > $LOOPDIR/etc
/apt
/sources.list.d
/strongswan.list
<< EOF
108 deb $BASEIMGEXTREPO $BASEIMGSUITE main
112 log_action
"Prioritize custom apt repo"
113 cat > $LOOPDIR/etc
/apt
/preferences.d
/strongswan.pref
<< EOF
115 Pin: origin "$BASEIMGEXTREPOHOST"
120 log_action
"Update package sources"
121 execute_chroot
"apt-get update"
122 log_action
"Install packages via APT"
123 execute_chroot
"apt-get -y install $APT"
124 log_action
"Install packages from custom repo"
125 execute_chroot
"apt-get -y upgrade"
127 for service
in $SERVICES
129 log_action
"Disabling service $service"
130 execute_chroot
"systemctl disable $service"
133 log_action
"Disabling root password"
134 execute_chroot
"passwd -d root"