[neon/neon/livecd-rootfs/Neon/release] /: fix: Enable snap preseeding with ppc64el images where /boot/vmlinux is used instead of /boot/vmlinuz. (LP: #2038957)

Philip Roche null at kde.org
Mon Jan 22 10:51:41 GMT 2024


Git commit 11d1063be4973032e6bcf5de2fccd4bc66115fec by Philip Roche.
Committed on 27/10/2023 at 13:51.
Pushed by carlosdem into branch 'Neon/release'.

fix: Enable snap preseeding with ppc64el images where /boot/vmlinux is used instead of /boot/vmlinuz. (LP: #2038957)

ppc64el still uses /boot/vmlinux so we need to determine the boot file name as non ppc64el use /boot/vmlinuz. This
is then used to determine the kernel major minor version installed so that the correct apparmor features can be used
during snap preseeding. This preseeding was failing for ppc64el for the mantic 6.5 kernel as the /boot/vmlinuz
being checked did not exist.

(cherry picked from commit 089646a32f927f32e9e8961e231391f0bcb6f66b)

# Conflicts:
#	debian/changelog
#	live-build/functions

M  +7    -0    debian/changelog
M  +11   -1    live-build/functions

https://invent.kde.org/neon/neon/livecd-rootfs/-/commit/11d1063be4973032e6bcf5de2fccd4bc66115fec

diff --git a/debian/changelog b/debian/changelog
index 570a34ee..0282a366 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+livecd-rootfs (2.765.30) jammy; urgency=medium
+
+  * Enable snap preseeding with ppc64el images where /boot/vmlinux is used
+    instead of /boot/vmlinuz. (LP: #2038957)
+
+ -- Philip Roche <phil.roche at canonical.com>  Fri, 27 Oct 2023 12:51:00 +0100
+
 livecd-rootfs (2.765.29) jammy; urgency=medium
 
   [ Steve Langasek ]
diff --git a/live-build/functions b/live-build/functions
index 215fed89..1997110d 100644
--- a/live-build/functions
+++ b/live-build/functions
@@ -759,9 +759,19 @@ snap_preseed() {
 
 snap_validate_seed() {
     local CHROOT_ROOT=$1
+    local kern_major_min=undefined
+    local boot_filename=undefined
 
+    # ppc64el still uses /boot/vmlinux so we need to determine the boot file name as non ppc64el use /boot/vmlinuz
+    # We don't need to query the arch as we can use existence of the file to determine the boot file name. Both
+    # will never be present at the same time.
     if [ -e ${CHROOT_ROOT}/boot/vmlinuz ]; then
-        local kern_major_min=$(readlink --canonicalize --no-newline ${CHROOT_ROOT}/boot/vmlinuz | grep  --extended-regexp --only-matching --max-count 1 '[0-9]+\.[0-9]+')
+        boot_filename=vmlinuz
+    elif [ -e ${CHROOT_ROOT}/boot/vmlinux ]; then
+        boot_filename=vmlinux
+    fi
+    if [ ${boot_filename} != undefined ]; then  # we have a known boot file so we can proceed with checking for features to mount
+        kern_major_min=$(readlink --canonicalize --no-newline ${CHROOT_ROOT}/boot/${boot_filename} | grep  --extended-regexp --only-matching --max-count 1 '[0-9]+\.[0-9]+')
         if [ -d /usr/share/livecd-rootfs/live-build/apparmor/${kern_major_min} ]; then
             # if an Ubuntu version has different kernel apparmor features between LTS and HWE kernels
             # a snap pre-seeding issue can occur, where the incorrect apparmor features are reported



More information about the Neon-commits mailing list