Source: libguestfs Version: 1:1.52.2-4 Severity: normal Tags: patch X-Debbugs-Cc: pkg-qemu-de...@lists.alioth.debian.org
Historically, qemu grouped various qemu-system-ARCH binaries into a few packages, providing a package for an architecture family, and qemu-system-misc package for all the rest. This grouping has been changed a few times in the past already. libguestfs currently reflects this qemu-system architecture grouping in its control file in the Depends: field. With version 9.1.1 of qemu debian packages, this grouping has been changed once more, by introducing 2 new architecture families and 2 new packages - riscv and s390x, making every debian release architectures to be in their own qemu package. These architectures were part of qemu-system-misc package before. However this broke libguestfs, since it relies on qemu-system-misc for riscv and s390 binaries, which are not there anymore. For quite some time, qemu provides virtual packages named after the executable/binary name, - eg, there's a virtual package qemu-system-riscv64, which were provided by qemu-system-misc before and now it is provided by qemu-system-riscv. Ditto for qemu-system-s390x (which is now its own non-virtual package). Usually, I'd suggest to depend on particular qemu binary name which is used, eg: Depends: qemu-system-riscv64 But in the case of libguestfs, which has to list such dependency for every architecture it builds for, maybe there's an easier approach which can be implemented with the help from qemu side. There was a talk for qemu to provide qemu-system-for-host of the right architecture - which will depend on the right qemu package depending on what the host arch is. In a similar way, qemu can provide virtual package named, eg, qemu-system-native, selecting the rigth qemu-system-foo for the native architecture (qemu-system-mips for mips64el, etc). This is an RFC/RFD. But for now, I'm providing a tiny patch for libguestfs d/control, to replace qemu-system-misc dependency for riscv64 and s390x cases with actual architecture libguestfs expects from qemu. This change will work with either old or new qemu packages, but the list in Depends becomes non-uniform: for some architectures it is qemu package name (qemu-system-x86), while for other architectures it is virtual qemu package name (qemu-system-riscv64). So this change will make things work again, but it is kinda ugly in this way. Thanks, /mjt --- debian/control.orig 2024-10-07 16:21:04.000000000 +0300 +++ debian/control 2024-10-25 11:44:35.382756399 +0300 @@ -25,7 +25,8 @@ gperf, libxml2-utils, qemu-system-arm [armel armhf arm64], qemu-system-mips [mips mipsel mips64 mips64el], - qemu-system-misc [s390x riscv64], + qemu-system-s390x [s390x], + qemu-system-riscv64 [riscv64], qemu-system-ppc [powerpc powerpcspe ppc64 ppc64el], qemu-system-sparc [sparc sparc64], qemu-system-x86 [i386 amd64], @@ -188,7 +189,8 @@ supermin (>= 5.2.2-4~), qemu-system-arm [armel armhf arm64], qemu-system-mips [mips mipsel mips64 mips64el], - qemu-system-misc [s390x riscv64], + qemu-system-s390x [s390x], + qemu-system-riscv64 [riscv64], qemu-system-ppc [powerpc ppc64 ppc64el], qemu-system-sparc [sparc], qemu-system-x86 [i386 amd64],