commit: 987f1c33ab861201c51ccc021d83cdaa2419e7bf Author: Matthias Maier <tamiko <AT> gentoo <DOT> org> AuthorDate: Fri Jul 25 23:33:31 2025 +0000 Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org> CommitDate: Fri Jul 25 23:40:28 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=987f1c33
app-emulation/libvirt: apply patch to fully resolve firmware symlinks Bug: https://bugs.gentoo.org/960591 Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org> ...-match_firwmare_with_fully_resolved_paths.patch | 70 ++++++++++++++++++++++ ...t-11.2.0-r1.ebuild => libvirt-11.1.0-r2.ebuild} | 3 +- ...t-11.2.0-r1.ebuild => libvirt-11.2.0-r2.ebuild} | 1 + ...virt-11.4.0.ebuild => libvirt-11.4.0-r1.ebuild} | 1 + 4 files changed, 74 insertions(+), 1 deletion(-) diff --git a/app-emulation/libvirt/files/libvirt-11.1.0-match_firwmare_with_fully_resolved_paths.patch b/app-emulation/libvirt/files/libvirt-11.1.0-match_firwmare_with_fully_resolved_paths.patch new file mode 100644 index 000000000000..9ee6ce563702 --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-11.1.0-match_firwmare_with_fully_resolved_paths.patch @@ -0,0 +1,70 @@ +Upstream: https://gitlab.com/libvirt/libvirt/-/merge_requests/498 +Gentoo-Bug: https://bugs.gentoo.org/960591 + +diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c +index 2d0ec0b4fa228a0bdf996a4301b203f593a28ee0..b13b4f9abb1a0334c6f04a42d5373b8518eeb59c 100644 +--- a/src/qemu/qemu_firmware.c ++++ b/src/qemu/qemu_firmware.c +@@ -33,6 +33,7 @@ + #include "viralloc.h" + #include "virenum.h" + #include "virstring.h" ++#include "virfile.h" + + #define VIR_FROM_THIS VIR_FROM_QEMU + +@@ -937,23 +938,23 @@ qemuFirmwareMatchesPaths(const qemuFirmware *fw, + switch (fw->mapping.device) { + case QEMU_FIRMWARE_DEVICE_FLASH: + if (loader && loader->path && +- STRNEQ(loader->path, flash->executable.filename)) ++ !virFileComparePaths(loader->path, flash->executable.filename)) + return false; + if (loader && loader->nvramTemplate) { + if (flash->mode != QEMU_FIRMWARE_FLASH_MODE_SPLIT) + return false; +- if (STRNEQ(loader->nvramTemplate, flash->nvram_template.filename)) ++ if (!virFileComparePaths(loader->nvramTemplate, flash->nvram_template.filename)) + return false; + } + break; + case QEMU_FIRMWARE_DEVICE_MEMORY: + if (loader && loader->path && +- STRNEQ(loader->path, memory->filename)) ++ !virFileComparePaths(loader->path, memory->filename)) + return false; + break; + case QEMU_FIRMWARE_DEVICE_KERNEL: + if (kernelPath && +- STRNEQ(kernelPath, kernel->filename)) ++ !virFileComparePaths(kernelPath, kernel->filename)) + return false; + break; + case QEMU_FIRMWARE_DEVICE_NONE: +@@ -1657,7 +1658,7 @@ qemuFirmwareFillDomainLegacy(virQEMUDriver *driver, + for (i = 0; i < cfg->nfirmwares; i++) { + virFirmware *fw = cfg->firmwares[i]; + +- if (STRNEQ(fw->name, loader->path)) { ++ if (!virFileComparePaths(fw->name, loader->path)) { + VIR_DEBUG("Not matching loader path '%s' for user provided path '%s'", + fw->name, loader->path); + continue; +diff --git a/src/util/virfile.c b/src/util/virfile.c +index 3b7a795d459addfe2401f833ff0f409d3013f8bd..a5c9fbe0d92408996f23413327a9dbd323a97474 100644 +--- a/src/util/virfile.c ++++ b/src/util/virfile.c +@@ -4108,11 +4108,11 @@ virFileComparePaths(const char *p1, const char *p2) + * 'sysfs', since they're no real paths so fallback to plain string + * comparison. + */ +- ignore_value(virFileResolveLink(p1, &res1)); ++ ignore_value(virFileResolveAllLinks(p1, &res1)); + if (!res1) + res1 = g_strdup(p1); + +- ignore_value(virFileResolveLink(p2, &res2)); ++ ignore_value(virFileResolveAllLinks(p2, &res2)); + if (!res2) + res2 = g_strdup(p2); + diff --git a/app-emulation/libvirt/libvirt-11.2.0-r1.ebuild b/app-emulation/libvirt/libvirt-11.1.0-r2.ebuild similarity index 98% copy from app-emulation/libvirt/libvirt-11.2.0-r1.ebuild copy to app-emulation/libvirt/libvirt-11.1.0-r2.ebuild index 7787cec8aebc..b602b55fdda7 100644 --- a/app-emulation/libvirt/libvirt-11.2.0-r1.ebuild +++ b/app-emulation/libvirt/libvirt-11.1.0-r2.ebuild @@ -21,7 +21,7 @@ if [[ ${PV} = *9999* ]]; then else SRC_URI="https://download.libvirt.org/${P}.tar.xz verify-sig? ( https://download.libvirt.org/${P}.tar.xz.asc )" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 x86" fi DESCRIPTION="C toolkit to manipulate virtual machines" @@ -159,6 +159,7 @@ PATCHES=( "${FILESDIR}"/${PN}-11.0.0-Fix-paths-in-libvirt-guests.sh.in.patch "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch "${FILESDIR}"/${PN}-10.7.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-11.1.0-match_firwmare_with_fully_resolved_paths.patch ) python_check_deps() { diff --git a/app-emulation/libvirt/libvirt-11.2.0-r1.ebuild b/app-emulation/libvirt/libvirt-11.2.0-r2.ebuild similarity index 99% rename from app-emulation/libvirt/libvirt-11.2.0-r1.ebuild rename to app-emulation/libvirt/libvirt-11.2.0-r2.ebuild index 7787cec8aebc..abda2531f1d1 100644 --- a/app-emulation/libvirt/libvirt-11.2.0-r1.ebuild +++ b/app-emulation/libvirt/libvirt-11.2.0-r2.ebuild @@ -159,6 +159,7 @@ PATCHES=( "${FILESDIR}"/${PN}-11.0.0-Fix-paths-in-libvirt-guests.sh.in.patch "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch "${FILESDIR}"/${PN}-10.7.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-11.1.0-match_firwmare_with_fully_resolved_paths.patch ) python_check_deps() { diff --git a/app-emulation/libvirt/libvirt-11.4.0.ebuild b/app-emulation/libvirt/libvirt-11.4.0-r1.ebuild similarity index 99% rename from app-emulation/libvirt/libvirt-11.4.0.ebuild rename to app-emulation/libvirt/libvirt-11.4.0-r1.ebuild index a91589b8b573..ae637de4b3f1 100644 --- a/app-emulation/libvirt/libvirt-11.4.0.ebuild +++ b/app-emulation/libvirt/libvirt-11.4.0-r1.ebuild @@ -159,6 +159,7 @@ PATCHES=( "${FILESDIR}"/${PN}-11.0.0-Fix-paths-in-libvirt-guests.sh.in.patch "${FILESDIR}"/${PN}-11.3.0-do-not-use-sysconfig.patch "${FILESDIR}"/${PN}-11.3.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-11.1.0-match_firwmare_with_fully_resolved_paths.patch ) python_check_deps() {
