diff --git a/debian/changelog b/debian/changelog index b0fdca1e..c09755de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ livecd-rootfs (2.553) UNRELEASED; urgency=medium * Add a LXD image to builds for the buildd subproject. + * Move buildd image building to binary hooks. -- Colin Watson Wed, 19 Dec 2018 22:10:19 +0000 diff --git a/live-build/auto/build b/live-build/auto/build index 8e38516b..a980c26c 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -17,7 +17,7 @@ fi . config/functions -# Link output files somewhere BuildLiveCD will be able to find them. +# Link output files somewhere launchpad-buildd will be able to find them. PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}" if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then @@ -521,28 +521,6 @@ if [ -e "binary/$INITFS/filesystem.dir" ]; then chmod 644 "$PREFIX.rootfs.tar.gz" elif [ -e binary-tar.tar.gz ]; then cp -a binary-tar.tar.gz "$PREFIX.rootfs.tar.gz" -elif [ "$SUBPROJECT" = buildd ]; then - # A few things (launchpad-buildd, sbuild-launchpad-chroot) rely on - # the top-level directory being "chroot-autobuild", so we have to do - # this ourselves. - # gzip was chosen for fastest decompression speed: it decompresses - # buildd chroots about twice as fast as xz and about five times as - # fast as bzip2. - tar --transform='s,^binary,chroot-autobuild,' \ - --sort=name --numeric-owner \ - -czf "$PREFIX.rootfs.tar.gz" binary - - # Build a LXD image as well, which is preferable for some build types. - TMPDIR="$(mktemp -d)" - config/make-lxd-metadata "${LB_DISTRIBUTION%-*}" "$ARCH" >"$TMPDIR/metadata.yaml" - tar --numeric-owner -cf "$PREFIX.lxd.tar" -C "$TMPDIR" metadata.yaml - rm -rf "$TMPDIR" - # When using the combined metadata/rootfs form, the rootfs must be - # under rootfs/ rather than under chroot-autobuild/. - tar --transform='s,^binary,rootfs,' \ - --sort=name --numeric-owner \ - -rf "$PREFIX.lxd.tar" binary - gzip -9 "$PREFIX.lxd.tar" fi if [ "$PROJECT:${SUBPROJECT:-}" = "ubuntu-core:system-image" ]; then diff --git a/live-build/buildd/hooks/50-buildd-tar.binary b/live-build/buildd/hooks/50-buildd-tar.binary new file mode 100755 index 00000000..8be7b618 --- /dev/null +++ b/live-build/buildd/hooks/50-buildd-tar.binary @@ -0,0 +1,10 @@ +#! /bin/sh +# A few things (launchpad-buildd, sbuild-launchpad-chroot) rely on the +# top-level directory being "chroot-autobuild", so we have to do this +# ourselves. +set -e + +# gzip was chosen for fastest decompression speed: it decompresses buildd +# chroots about twice as fast as xz and about five times as fast as bzip2. +tar --transform='s,^binary,chroot-autobuild,' --sort=name --numeric-owner \ + -czf "livecd.$PROJECT.rootfs.tar.gz" binary diff --git a/live-build/buildd/hooks/51-buildd-lxd.binary b/live-build/buildd/hooks/51-buildd-lxd.binary new file mode 100755 index 00000000..b4b782d9 --- /dev/null +++ b/live-build/buildd/hooks/51-buildd-lxd.binary @@ -0,0 +1,16 @@ +#! /bin/sh +# Some build types prefer a LXD image over a traditional chroot tarball. +set -e + +. config/bootstrap + +TMPDIR="$(mktemp -d)" +config/make-lxd-metadata "${LB_DISTRIBUTION%-*}" "$ARCH" \ + >"$TMPDIR/metadata.yaml" +tar --numeric-owner -cf "livecd.$PROJECT.lxd.tar" -C "$TMPDIR" metadata.yaml +rm -rf "$TMPDIR" +# When using the combined metadata/rootfs form, the rootfs must be under +# rootfs/ rather than under chroot-autobuild/. +tar --transform='s,^binary,rootfs,' --sort=name --numeric-owner \ + -rf "livecd.$PROJECT.lxd.tar" binary +gzip -9 "livecd.$PROJECT.lxd.tar"