diff --git a/debian/changelog b/debian/changelog index 482044a8..a4421abc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,13 @@ livecd-rootfs (2.441) UNRELEASED; urgency=medium + [ Balint Reczey ] + * Add a basic but configurable autopkgtest. + + [ Mathieu Trudel-Lapierre ] * Add ubuntu-server-live for a subiquity-based server image. * Refactor functions out of ubuntu-cpc and ubuntu-server hooks. - -- Mathieu Trudel-Lapierre Thu, 23 Mar 2017 16:20:16 -0400 + -- Steve Langasek Mon, 10 Apr 2017 16:35:03 -0700 livecd-rootfs (2.440) zesty; urgency=medium diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 00000000..a37a5d79 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,3 @@ +Tests: default-bootstraps +Depends: @, lsb-release +Restrictions: needs-root diff --git a/debian/tests/default-bootstraps b/debian/tests/default-bootstraps new file mode 100755 index 00000000..47c9ae13 --- /dev/null +++ b/debian/tests/default-bootstraps @@ -0,0 +1,95 @@ +#!/bin/sh +# autopkgtest check: Build default rootfs for all supported project:subproject pairs +# (C) 2017 Canonical Ltd. +# Author: Balint Reczey + +set -e + +if [ -z "$SUITE" ]; then + SUITE=$(lsb_release -c -s) +fi + +# Known project:subproject:template combinations. +# Listed subprojects can be combined with other projects as well, +# but this list gives reasonable coverage. +ALL_TRIPLETS=" + base:: + edubuntu:: + edubuntu-dvd:: + kubuntu:: + kubuntu-active:: + kubuntu-dvd:: + kubuntu-plasma5:: + lubuntu:: + lubuntu-next:: + mythbuntu:: + ubuntu:: + ubuntu-base:: + ubuntu-budgie:: + ubuntu-budgie-desktop:: + ubuntu-budgie-live:: + ubuntu-core:system-image:ubuntu-core + ubuntu-cpc::ubuntu-cpc + ubuntu-desktop-next:system-image:ubuntu-desktop-next + ubuntu-desktop-next::ubuntu-desktop-next + ubuntu-dvd:: + ubuntu-gnome:: + ubuntukylin:: + ubuntu-mate:: + ubuntu-mate-core:: + ubuntu-mate-desktop:: + ubuntu-mate-live:: + ubuntu-netbook:: + ubuntu-server:: + ubuntu-server:ubuntu-rtm: + ubuntu-server:ubuntu-rtm/foo: + ubuntu-server:wubi: + ubuntu-touch-custom::ubuntu-touch-custom + ubuntu-touch::ubuntu-touch + xubuntu::" + +if [ -z "$SELECTED_TRIPLETS" ]; then + SELECTED_TRIPLETS=" + ubuntu-base:: + ubuntu-cpc::ubuntu-cpc +" +fi + +live_build_rootfs() { + PROJECT=${1%%:*} + local SUBPROJECT_TMP=${1%:*} + SUBPROJECT=${SUBPROJECT_TMP#*:} + TEMPLATE=${1##*:} + ARCH=$(dpkg --print-architecture) + echo "Building rootfs for project: '$PROJECT' subproject: '$SUBPROJECT' template: '$TEMPLATE' in $PWD" + cp -a /usr/share/livecd-rootfs/live-build/auto . + if [ -n "$TEMPLATE" ]; then + cp -a /usr/share/livecd-rootfs/live-build/$TEMPLATE . + fi + env PROJECT=$PROJECT \ + SUBPROJECT=$SUBPROJECT \ + SUITE=$SUITE \ + ARCH=$ARCH \ + lb config + mkdir chroot + # this part needs root rights, but right now the whole script ran as root by autopkgtest + env PROJECT=$PROJECT \ + SUBPROJECT=$SUBPROJECT \ + ARCH=$ARCH \ + lb build + echo "Build results for project: '$PROJECT' subproject: '$SUBPROJECT' template: '$TEMPLATE' in $PWD" + du -sh * + echo "" +} + +WORKDIR=$(mktemp -d) +trap "RET=\$?; rm -rf $WORKDIR; exit \$RET" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR + +for i in $SELECTED_TRIPLETS; do + mkdir $i + (cd $i && live_build_rootfs $i) + # clean up after build to avoid filling the disk, needs root rights + rm -rf $i +done + diff --git a/live-build/ubuntu-cpc/hooks/032-disk-image.binary b/live-build/ubuntu-cpc/hooks/032-disk-image.binary index 929c84d0..a54ac8dd 100755 --- a/live-build/ubuntu-cpc/hooks/032-disk-image.binary +++ b/live-build/ubuntu-cpc/hooks/032-disk-image.binary @@ -95,7 +95,7 @@ case $ARCH:$SUBARCH in # not the best place for this, but neither flash-kernel nor # u-boot have provisions for installing u-boot via maintainer # script - /build/config/hooks/raspi2/mkknlimg --dtok \ + config/hooks/raspi2/mkknlimg --dtok \ mountpoint/usr/lib/u-boot/rpi_2/u-boot.bin \ mountpoint/boot/firmware/uboot.bin ;;