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() {

Reply via email to