On Mon, 04 Dec 2017, Thomas Goirand wrote:
> Could you please review the patch and let me know if you think it's ok,
> apply to the git, and allow me to upload?

I think it's wrong because it handles vmlinuz/initrd separately. I pushed
what I think is a proper fix into git. Can you test the git version and
confirm that it works for you?

(I attach the patch applied on top of the last NMU)

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: https://www.freexian.com/services/debian-lts.html
Learn to master Debian: https://debian-handbook.info/get/
diff --git a/bin/live-update-initramfs b/bin/live-update-initramfs
index 3cdbed3..38d5f27 100755
--- a/bin/live-update-initramfs
+++ b/bin/live-update-initramfs
@@ -55,30 +55,36 @@ case "${_READ_WRITE}" in
                # Updating initramfs
                /usr/sbin/update-initramfs.orig.initramfs-tools "${@}"
 
-               # FIXME: needs to exclude initrd backup files
-               if [ "$(ls /boot/initrd.img-* | wc -l)" -gt 1 ]
+               if [ "$(ls /boot/vmlinuz-* | wc -l)" -gt 1 ]
                then
                        _NUMBER="1"
 
-                       for _INITRD in /boot/initrd.img-*
+                       for _VMLINUZ in /boot/vmlinuz-*
                        do
-                               _VERSION="$(basename ${_INITRD} | sed -e 
's|initrd.img-||')"
+                               _VERSION="$(basename ${_VMLINUZ} | sed -e 
's|vmlinuz-||')"
 
                                cp /boot/vmlinuz-${_VERSION} 
/lib/live/mount/medium/live/vmlinuz${_NUMBER}.new
-                               cp /boot/initrd.img-${_VERSION} 
/lib/live/mount/medium/live/initrd${_NUMBER}.img.new
-
-                               mv 
/lib/live/mount/medium/live/vmlinuz${_NUMBER}.new 
/lib/live/mount/medium/live/vmlinuz${_NUMBER}
-                               mv 
/lib/live/mount/medium/live/initrd${_NUMBER}.img.new 
/lib/live/mount/medium/live/initrd${_NUMBER}.img
+                               if [ -e /boot/initrd.img-${_VERSION} ]; then
+                                       cp /boot/initrd.img-${_VERSION} 
/lib/live/mount/medium/live/initrd${_NUMBER}.img.new
+                               fi
 
                                _NUMBER="$((${_NUMBER} + 1))"
                        done
                else
-                       cp /boot/vmlinuz-* 
/lib/live/mount/medium/live/vmlinuz.new
-                       cp /boot/initrd.img-* 
/lib/live/mount/medium/live/initrd.img.new
+                       _VMLINUZ=$(echo /boot/vmlinuz-*)
+                       _VERSION="$(basename ${_VMLINUZ} | sed -e 
's|vmlinuz-||')"
+                       cp $_VMLINUZ /lib/live/mount/medium/live/vmlinuz.new
+                       if [ -e /boot/initrd.img-${_VERSION} ]; then
+                               cp /boot/initrd.img-${_VERSION} 
/lib/live/mount/medium/live/initrd.img.new
+                       fi
 
-                       mv /lib/live/mount/medium/live/vmlinuz.new 
/lib/live/mount/medium/live/vmlinuz
-                       mv /lib/live/mount/medium/live/initrd.img.new 
/lib/live/mount/medium/live/initrd.img
                fi
+               for f in /lib/live/mount/medium/live/vmlinuz*.new \
+                        /lib/live/mount/medium/live/initrd*.new; do
+                       if [ -e $f ]; then
+                               mv $f ${f%.new}
+                       fi
+               done
                ;;
 
        false)
diff --git a/debian/changelog b/debian/changelog
index 69a1b46..39dbf1d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+live-tools (1:20171205) UNRELEASED; urgency=medium
+
+  * Improve update-initramfs wrapper to better handle unmatched
+    kernels and initrd images. Closes: #882769
+
+ -- Raphaël Hertzog <hert...@debian.org>  Tue, 05 Dec 2017 09:31:05 +0100
+
 live-tools (1:20151214+nmu1) unstable; urgency=medium
 
   * Non-maintainer upload.

Reply via email to