Package: release.debian.org
Severity: minor
X-Debbugs-Cc: de...@packages.debian.org
Control: affects -1 + src:debvm
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package debvm

[ Reason ]

This is a minor bugfix update. It fixes three distinct problems:
 * The images generated by debefivm-create (but not debvm-create)
   would include an /etc/machine-id. Booting such a machine twice
   in the same network may result in an IP address conflict.
 * The --efi-vars option of debefivm-run was wrongly parsed and
   had no effect.
 * The workaround for the glibc FTS inode64 problem was broken
   when supplying a custom kernel image.

[ Impact ]

None of the fixed bugs are release-critical. Saying "no" definitely is
an option.

Debusine is impacted as it uses the generated images with incus and thus
runs precisely into the aforementioned address conflict. That's how we
discovered it.

Using created images with autopkgtest-virt-qemu is unaffected by all of
these bugs (unless using incus).

Without --efi-vars, bootloader changes are not preserved and therefore
e.g. bootctl install renders a VM unbootable.

If saying no, I intend to retry via s-p-u or work around the machine-id
inside Debusine.

[ Tests ]

None of the problems is covered by automated tests. I performed manual
tests such as booting a VM twice with -snapshot and observing its
machine-id change.

[ Risks ]

The changes are targeted fixes. In addition to testing them, I reviewed
them on distinct days.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

unblock debvm/0.4.5

It's uploaded, tested and aged for some days already.

Thanks for considering

Helmut
diff --git a/bin/debefivm-create b/bin/debefivm-create
index 1c03be5..f6368df 100755
--- a/bin/debefivm-create
+++ b/bin/debefivm-create
@@ -415,6 +415,8 @@ set -- "$@" \
        "--customize-hook=download vmlinuz '$WORKDIR/kernel'" \
        "--customize-hook=download initrd.img '$WORKDIR/initrd'" \
        "--customize-hook=download 
'/usr/lib/systemd/boot/efi/linux$EFIARCH.efi.stub' '$WORKDIR/stub'" \
+       '--customize-hook=rm -f "$1/etc/apt/apt.conf.d/00mmdebstrap" 
"$1/etc/apt/apt.conf.d/99debconf" "$1/var/cache/ldconfig/aux-cache" 
"$1/var/lib/dbus/machine-id" "$1/var/log/alternatives.log" 
"$1/var/log/apt/eipp.log.xz" "$1/var/log/apt/history.log" 
"$1/var/log/apt/term.log" "$1/var/log/dpkg.log"' \
+       '--customize-hook=truncate -s 0 "$1/etc/machine-id"' \
        '--customize-hook=mount --bind "$1" "$1/mnt"' \
        '--customize-hook=mount -t tmpfs tmpfs "$1/mnt/dev" -o mode=0755' \
        '--customize-hook=rm -f "$1/usr/sbin/policy-rc.d"' \
diff --git a/bin/debefivm-run b/bin/debefivm-run
index c93d7d2..50e87de 100755
--- a/bin/debefivm-run
+++ b/bin/debefivm-run
@@ -165,14 +165,22 @@ while getopts :a:gi:s:-: OPTCHAR; do
                                graphical|help)
                                        "opt_$OPTARG"
                                ;;
-                               
architecture|efi-vars|image|netopt|skip|sshport|transport)
+                               
architecture|image|netopt|skip|sshport|transport)
                                        test "$OPTIND" -gt "$#" && usage_error 
"missing argument for --$OPTARG"
                                        "opt_$OPTARG" "$(nth_arg "$OPTIND" 
"$@")"
                                        OPTIND=$((OPTIND+1))
                                ;;
-                               
architecture=*|efi-vars=*|image=*|netopt=*|skip=*|sshport=*|transport=*)
+                               efi-vars)
+                                       test "$OPTIND" -gt "$#" && usage_error 
"missing argument for --$OPTARG"
+                                       opt_efi_vars "$(nth_arg "$OPTIND" "$@")"
+                                       OPTIND=$((OPTIND+1))
+                               ;;
+                               
architecture=*|image=*|netopt=*|skip=*|sshport=*|transport=*)
                                        "opt_${OPTARG%%=*}" "${OPTARG#*=}"
                                ;;
+                               efi-vars=*)
+                                       opt_efi_vars "${OPTARG#*=}"
+                               ;;
                                *)
                                        usage_error "unrecognized option 
--$OPTARG"
                                ;;
diff --git a/debian/changelog b/debian/changelog
index f15c665..5608f61 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+debvm (0.4.5) unstable; urgency=medium
+
+  * debefivm-create: clean up unreproducible files (Closes: #1107719)
+  * debefivm-run: fix parsing of --efi-vars option
+  * debvm-create: fix corner case in #1079443 workaround
+
+ -- Helmut Grohne <hel...@subdivi.de>  Wed, 18 Jun 2025 11:18:37 +0200
+
 debvm (0.4.4) unstable; urgency=medium
 
   * Force tests to not use smp (Closes: #1106397)
diff --git a/share/customize-kernel.sh b/share/customize-kernel.sh
index 0a252a4..d792f49 100755
--- a/share/customize-kernel.sh
+++ b/share/customize-kernel.sh
@@ -43,7 +43,7 @@ manual_add_modules virtio_blk
 EOF
        chmod +x "$TARGET/etc/initramfs-tools/hooks/work_around_1079443"
        if test "${1:-}" = --update && test -x 
"$TARGET/usr/bin/update-initramfs"; then
-               chroot "$TARGET/update-initramfs -u"
+               chroot "$TARGET" update-initramfs -u
        fi
 }
 

Reply via email to