diff --git a/debian/changelog b/debian/changelog index f4574ebe..c5c721fd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +livecd-rootfs (2.525.6) bionic; urgency=medium + + [ Steve Langasek ] + * generate all tar files with --xattrs. LP: #1302192. + + [ Daniel Watkins ] + * ubuntu-cpc: Reintroduce the -root.tar.xz artifact (LP: #1585233). + * ubuntu-cpc: Generate the root image contents once, and use it for both the + -root.tar.xz and the .squashfs. + * ubuntu-cpc: Generate -root.tar.xz with --xattrs. + + -- Steve Langasek Mon, 06 Aug 2018 14:16:04 -0700 + livecd-rootfs (2.525.5) bionic; urgency=medium * live-build/auto/config: Improve linux-tools filter to work for i386 too. diff --git a/live-build/auto/build b/live-build/auto/build index 515319d1..4a26f05a 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -459,7 +459,7 @@ for ISO in binary.iso binary.hybrid.iso; do done if [ -e "binary/$INITFS/filesystem.dir" ]; then - (cd "binary/$INITFS/filesystem.dir/" && tar -c *) | \ + (cd "binary/$INITFS/filesystem.dir/" && tar -c --xattrs *) | \ gzip -9 --rsyncable > "$PREFIX.rootfs.tar.gz" chmod 644 "$PREFIX.rootfs.tar.gz" elif [ -e binary-tar.tar.gz ]; then @@ -496,7 +496,7 @@ EOF fi if [ "$PROJECT" = "ubuntu-touch" ] || [ "$PROJECT" = "ubuntu-touch-custom" ]; then - (cd "binary/$INITFS/custom.dir/" && tar -c *) | \ + (cd "binary/$INITFS/custom.dir/" && tar -c --xattrs *) | \ gzip -9 --rsyncable > "$PREFIX.custom.tar.gz" chmod 644 "$PREFIX.custom.tar.gz" fi diff --git a/live-build/ubuntu-cpc/hooks/031-0-create-root-dir.binary b/live-build/ubuntu-cpc/hooks/031-0-create-root-dir.binary new file mode 100644 index 00000000..9a916658 --- /dev/null +++ b/live-build/ubuntu-cpc/hooks/031-0-create-root-dir.binary @@ -0,0 +1,26 @@ +#!/bin/bash -ex +# vi: ts=4 expandtab +# +# Generate the root directory/manifest for rootfs.tar.xz and squashfs + +if [ -n "$SUBARCH" ]; then + echo "Skipping rootfs build for subarch flavor build" + exit 0 +fi + +. config/functions + +rootfs_dir=rootfs.dir +mkdir $rootfs_dir +cp -a chroot/* $rootfs_dir + +setup_mountpoint $rootfs_dir + +env DEBIAN_FRONTEND=noninteractive chroot $rootfs_dir apt-get --purge remove --assume-yes '^linux-.*' 'linux-base+' +env DEBIAN_FRONTEND=noninteractive chroot $rootfs_dir apt-get --purge remove --assume-yes '^grub-.*' +env DEBIAN_FRONTEND=noninteractive chroot $rootfs_dir apt-get autoremove --purge --assume-yes +rm -rf $rootfs_dir/boot/grub + +teardown_mountpoint $rootfs_dir + +dpkg-query --admindir=$rootfs_dir/var/lib/dpkg -W > $rootfs_dir.manifest diff --git a/live-build/ubuntu-cpc/hooks/031-1-root-xz.binary b/live-build/ubuntu-cpc/hooks/031-1-root-xz.binary new file mode 100644 index 00000000..5695f96d --- /dev/null +++ b/live-build/ubuntu-cpc/hooks/031-1-root-xz.binary @@ -0,0 +1,15 @@ +#!/bin/bash -ex +# vi: ts=4 expandtab +# +# Generate the rootfs.tar.xz and manifest + +if [ -n "$SUBARCH" ]; then + echo "Skipping rootfs build for subarch flavor build" + exit 0 +fi + +# This is the directory created by 031-0-create-root-dir.binary +rootfs_dir=rootfs.dir + +cp $rootfs_dir.manifest livecd.ubuntu-cpc.rootfs.manifest +(cd $rootfs_dir/ && tar -c --xattrs *) | xz > livecd.ubuntu-cpc.rootfs.tar.xz diff --git a/live-build/ubuntu-cpc/hooks/031-2-root-squashfs.binary b/live-build/ubuntu-cpc/hooks/031-2-root-squashfs.binary new file mode 100644 index 00000000..f4c2ac3d --- /dev/null +++ b/live-build/ubuntu-cpc/hooks/031-2-root-squashfs.binary @@ -0,0 +1,29 @@ +#!/bin/bash -ex +# vi: ts=4 noexpandtab +# +# Generate a squashfs root and manifest + +case $IMAGE_TARGETS in + ""|*squashfs*) + ;; + *) + echo "Skipping squashfs build" + exit 0 + ;; +esac + +if [ -n "$SUBARCH" ]; then + echo "Skipping rootfs build for subarch flavor build" + exit 0 +fi + +# This is the directory created by 031-0-create-root-dir.binary +rootfs_dir=rootfs.dir + +squashfs_f="$PWD/livecd.ubuntu-cpc.squashfs" + +cp $rootfs_dir.manifest $squashfs_f.manifest + +(cd $rootfs_dir && + mksquashfs . $squashfs_f \ + -no-progress -xattrs -comp xz ) diff --git a/live-build/ubuntu-cpc/hooks/032-root-squashfs.binary b/live-build/ubuntu-cpc/hooks/032-root-squashfs.binary deleted file mode 100755 index ec6c1b05..00000000 --- a/live-build/ubuntu-cpc/hooks/032-root-squashfs.binary +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -ex -# vi: ts=4 noexpandtab -# -# Generate a squashfs root and manifest - -case $IMAGE_TARGETS in - ""|*squashfs*) - ;; - *) - echo "Skipping squashfs build" - exit 0 - ;; -esac - -if [ -n "$SUBARCH" ]; then - echo "Skipping rootfs build for subarch flavor build" - exit 0 -fi - -. config/functions - -mkdir binary/boot/squashfs.dir -cp -a chroot/* binary/boot/squashfs.dir - -setup_mountpoint binary/boot/squashfs.dir - -chroot binary/boot/squashfs.dir dpkg-divert --local --rename /usr/sbin/grub-probe -chroot binary/boot/squashfs.dir touch /usr/sbin/grub-probe -chroot binary/boot/squashfs.dir chmod +x /usr/sbin/grub-probe - -env DEBIAN_FRONTEND=noninteractive chroot binary/boot/squashfs.dir apt-get --purge remove --assume-yes '^linux-.*' 'linux-base+' -env DEBIAN_FRONTEND=noninteractive chroot binary/boot/squashfs.dir apt-get --purge remove --assume-yes '^grub-.*' -env DEBIAN_FRONTEND=noninteractive chroot binary/boot/squashfs.dir apt-get autoremove --purge --assume-yes -rm -rf binary/boot/squashfs.dir/boot/grub -chroot binary/boot/squashfs.dir mkdir -p /lib/modules - -chroot binary/boot/squashfs.dir rm /usr/sbin/grub-probe -chroot binary/boot/squashfs.dir dpkg-divert --remove --local --rename /usr/sbin/grub-probe - -teardown_mountpoint binary/boot/squashfs.dir - -squashfs_f="${PWD}/livecd.ubuntu-cpc.squashfs" -squashfs_f_manifest="${squashfs_f}.manifest" - -dpkg-query --admindir=binary/boot/squashfs.dir/var/lib/dpkg -W > ${squashfs_f_manifest} - -(cd "binary/boot/squashfs.dir/" && - mksquashfs . ${squashfs_f} \ - -no-progress -xattrs -comp xz )