Merge utkarsh-lunar-sru-1996489 into ubuntu/lunar [a=utkarsh] [r=andrew-cloke,philroche]

Fix unminimize to correctly list packages (LP: #1996489)

    Prior to dpkg/1.21.0, there was a bug where dpkg -V/--verify
    couldn't list all the correct packages correctly but with
    that being fix and in archive since Jammy, this works perfectly
    but the syntax to report the missing files have changed. It
    just prints 'missing' now. With that new format, we can now
    fix the regex to simply list the packages.

    With this patch, the unminimize script works flawlessly
    on a minimized image.

    (cherry picked from commit 78a98c6835)

    ---

    fix: install LXD snap from stable/ubuntu-<version> channel (LP: #2036725)

    In the past, we'd directly snap install lxd which defaults to
    the latest/stable channel. However, whilst working on enhancing
    unminimize, it was observed that we install this snap from
    the stable/ubuntu-<version> channel instead.

    This was also noted as a failure when running the CTF tests:
    `lxd installed from latest/stable, not stable/ubuntu-23.10`

    (cherry picked from commit 12a2109c22)

MP: https://code.launchpad.net/~utkarsh/livecd-rootfs/+git/livecd-rootfs/+merge/452739
ubuntu/lunar
Philip Roche 1 year ago
commit 73d0477aa7

7
debian/changelog vendored

@ -1,3 +1,10 @@
livecd-rootfs (2.829) lunar; urgency=medium
* Fix unminimize to correctly list packages. (LP: #1996489)
* Install LXD snap from stable/ubuntu-<version> channel. (LP: #2036725)
-- Utkarsh Gupta <utkarsh@ubuntu.com> Wed, 04 Oct 2023 13:42:33 +0530
livecd-rootfs (2.828) lunar; urgency=medium livecd-rootfs (2.828) lunar; urgency=medium
* 099-ubuntu-image-customization.chroot: Remove redundant creation of oem * 099-ubuntu-image-customization.chroot: Remove redundant creation of oem

@ -241,18 +241,18 @@ if [ -f /etc/dpkg/dpkg.cfg.d/excludes ] || [ -f /etc/dpkg/dpkg.cfg.d/excludes.dp
dpkg -S /usr/share/man/ |sed 's|, |\n|g;s|: [^:]*$||' | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y dpkg -S /usr/share/man/ |sed 's|, |\n|g;s|: [^:]*$||' | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y
echo "Reinstalling packages with system documentation in /usr/share/doc/ .." echo "Reinstalling packages with system documentation in /usr/share/doc/ .."
# This step processes the packages which still have missing documentation # This step processes the packages which still have missing documentation
dpkg --verify --verify-format rpm | awk '/..5...... \/usr\/share\/doc/ {print $2}' | sed 's|/[^/]*$||' | sort |uniq \ dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/doc/ {print $2}' | sed 's|/[^/]*$||' | sort | uniq \
| xargs dpkg -S | sed 's|, |\n|g;s|: [^:]*$||' | uniq | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y | xargs dpkg -S | sed 's|, |\n|g;s|: [^:]*$||' | uniq | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y
echo "Restoring system translations..." echo "Restoring system translations..."
# This step processes the packages which still have missing translations # This step processes the packages which still have missing translations
dpkg --verify --verify-format rpm | awk '/..5...... \/usr\/share\/locale/ {print $2}' | sed 's|/[^/]*$||' | sort |uniq \ dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/locale/ {print $2}' | sed 's|/[^/]*$||' | sort | uniq \
| xargs dpkg -S | sed 's|, |\n|g;s|: [^:]*$||' | uniq | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y | xargs dpkg -S | sed 's|, |\n|g;s|: [^:]*$||' | uniq | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y
if dpkg --verify --verify-format rpm | awk '/..5...... \/usr\/share\/doc/ {exit 1}'; then if dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/doc/ {exit 1}'; then
echo "Documentation has been restored successfully." echo "Documentation has been restored successfully."
rm /etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp rm /etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp
else else
echo "There are still files missing from /usr/share/doc/:" echo "There are still files missing from /usr/share/doc/:"
dpkg --verify --verify-format rpm | awk '/..5...... \/usr\/share\/doc/ {print " " $2}' dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/doc/ {print " " $2}'
echo "You may want to try running this script again or you can remove" echo "You may want to try running this script again or you can remove"
echo "/etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp and restore the files manually." echo "/etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp and restore the files manually."
fi fi
@ -288,8 +288,9 @@ fi
echo "Removing lxd installer package..." echo "Removing lxd installer package..."
apt-get purge -y lxd-installer apt-get purge -y lxd-installer
echo "Installing lxd from snap..." . /etc/os-release
snap install lxd echo "Installing lxd from snap from stable/ubuntu-$VERSION_ID channel"
snap install --channel="stable/ubuntu-$VERSION_ID" lxd
EOF EOF
fi fi
cat >> chroot/usr/local/sbin/unminimize <<'EOF' cat >> chroot/usr/local/sbin/unminimize <<'EOF'

Loading…
Cancel
Save