Exclude iptables from debootstrap
[strongswan.git] / testing / scripts / build-baseimage
1 #!/bin/bash
2
3 echo "Building base image"
4
5 . $PWD/scripts/function.sh
6
7 [ `id -u` -eq 0 ] || die "You must be root to run $0"
8
9 check_commands debootstrap mkfs.ext3 partprobe qemu-img qemu-nbd sfdisk
10
11 # package includes/excludes
12 INC=build-essential,gperf,libgmp-dev,libldap2-dev,libcurl4-openssl-dev
13 INC=$INC,libxml2-dev,libtspi-dev,libsqlite3-dev,openssh-server,tcpdump,psmisc
14 INC=$INC,openssl,vim,sqlite3,conntrack,gdb,cmake,libxerces-c2-dev,libltdl-dev
15 INC=$INC,liblog4cxx10-dev,libboost-thread-dev,libboost-system-dev,git-core
16 SERVICES="isc-dhcp-server apache2 slapd"
17 INC=$INC,${SERVICES// /,}
18 EXC=iptables
19
20 CACHEDIR=$BUILDDIR/cache
21 APTCACHE=$LOOPDIR/var/cache/apt/archives
22
23 mkdir -p $LOOPDIR
24 mkdir -p $BUILDDIR
25 mkdir -p $CACHEDIR
26 rm -f $ROOTFS
27
28 echo "`date`, building $ROOTFS" >>$LOGFILE
29
30 load_qemu_nbd
31
32 log_action "Creating image $ROOTFS"
33 execute "qemu-img create -f qcow2 $ROOTFS ${ROOTFSSIZE}M"
34
35 log_action "Connecting image to NBD device $NBDEV"
36 execute "qemu-nbd -c $NBDEV $ROOTFS"
37 do_on_exit qemu-nbd -d $NBDEV
38
39 log_action "Partitioning disk"
40 sfdisk /dev/nbd0 -D -uM >>$LOGFILE 2>&1 << EOF
41 ;
42 EOF
43 if [ $? != 0 ]
44 then
45         log_status 1
46         exit 1
47 else
48         log_status 0
49 fi
50 partprobe $NBDEV
51
52 log_action "Creating ext3 filesystem"
53 execute "mkfs.ext3 $NBDPARTITION"
54
55 log_action "Mounting $NBDPARTITION to $LOOPDIR"
56 execute "mount $NBDPARTITION $LOOPDIR"
57 do_on_exit graceful_umount $LOOPDIR
58
59 log_action "Using $CACHEDIR as archive for apt"
60 mkdir -p $APTCACHE
61 execute "mount -o bind $CACHEDIR $APTCACHE"
62 do_on_exit graceful_umount $APTCACHE
63
64 log_action "Running debootstrap ($ROOTFSSUITE, $ROOTFSARCH)"
65 execute "debootstrap --arch=$ROOTFSARCH --include=$INC --exclude $EXC $ROOTFSSUITE $LOOPDIR $ROOTFSMIRROR"
66
67 for service in $SERVICES
68 do
69         log_action "Stopping service $service"
70         execute_chroot "/etc/init.d/$service stop"
71         log_action "Disabling service $service"
72         execute_chroot "update-rc.d -f $service remove"
73 done
74
75 log_action "Disabling root password"
76 execute_chroot "passwd -d root"