On Tue, Jul 29, 2025 at 01:02:18PM +0200, Peter Krempa via Devel wrote:
> On Tue, Jul 29, 2025 at 10:42:09 +0200, Michal Prívozník via Devel wrote:
> > On 7/24/25 15:49, James Le Cuirot wrote:
> > > From: James Le Cuirot <jlecui...@microsoft.com>
> > > 
> > > Distros may provide compatibility symlinks after moving firmware files
> > > around, but they won't work for existing VMs when doing a straight
> > > string comparison.
> > > 
> > > virFileComparePaths has been used to do this, but it was previously
> > > only resolving the last path component, despite what the description
> > > says.
> > > 
> > > James Le Cuirot (2):
> > >   util: Fully resolve paths with virFileComparePaths
> > >   qemu: Match firmware with fully resolved and canonicalized paths
> > > 
> > >  src/qemu/qemu_firmware.c | 11 ++++++-----
> > >  src/util/virfile.c       |  4 ++--
> > >  2 files changed, 8 insertions(+), 7 deletions(-)
> > > 
> > > --
> > > 2.49.0
> > > 
> > 
> > Reviewed-by: Michal Privoznik <mpriv...@redhat.com>
> > 
> > and merged. Congratulations on your first libvirt contribution!
> 
> Note that this patch made the tests depend on host. While the pipelines
> did pass the local build on Fedora caused differences in test output
> which I attempted to fix, but ultimately that broke the pipelines in
> turn.

More details is that qemuxmlconftest.c has installed mock content
for /usr/share/edk2:

  tests/qemuxmlconftest.c:    virFileWrapperAddPrefix("/sys/devices/system",
  tests/qemuxmlconftest.c:    virFileWrapperAddPrefix(SYSCONFDIR 
"/qemu/firmware",
  tests/qemuxmlconftest.c:    virFileWrapperAddPrefix(PREFIX 
"/share/qemu/firmware",
  tests/qemuxmlconftest.c:    
virFileWrapperAddPrefix("/home/user/.config/qemu/firmware",
  tests/qemuxmlconftest.c:    virFileWrapperAddPrefix(SYSCONFDIR 
"/qemu/vhost-user",
  tests/qemuxmlconftest.c:    virFileWrapperAddPrefix(PREFIX 
"/share/qemu/vhost-user",
  tests/qemuxmlconftest.c:    
virFileWrapperAddPrefix("/home/user/.config/qemu/vhost-user",
  tests/qemuxmlconftest.c:    
virFileWrapperAddPrefix("/usr/libexec/qemu/vhost-user",
  tests/qemuxmlconftest.c:    virFileWrapperAddPrefix("/usr/libexec/virtiofsd",


Somewhere the new file canonicalization, however, it bypassing the
rewritten paths, and working off the real /usr/share/edk2 that
contains symlinks, which get rewritten. Thus we can the non-determinstic
build failures depending on the build environment/OS.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

Reply via email to