libvirt 6.6.0 tarball breaks on Homebrew/MacOS

The latest release at https://libvirt.org/sources/libvirt-6.6.0.tar.xz includes a configure script that breaks Homebrew (and other builds on MacOS/Darwin). The breaking change is related to a new version of the file m4/libtool.m4; line 2648 was changed to: shrext_cmds='`test .$module = .yes && echo .bundle || echo .dylib`' However, src/driver.c loads modules with ".so" extensions, at line 56: if (!(modfile = virFileFindResourceFull(name, "libvirt_driver_", ".so", The released tarball for 6.5.0 had the same shrext_cmds as upstream libtool: shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' Not sure where to submit the issue (as the m4 files aren't in libvirt source control)... it appears to only affect the distribution tarball. Perhaps the tarball could be re-released with autoconf from the official upstream libtool? (2.4.6) Thanks, Scott PS. MacPorts is unaffected as it runs autogen.sh... but that shouldn't be necessary with a distribution tarball :)

On Tue, Aug 18, 2020 at 11:25:19AM -0700, Scott Shambarger wrote:
The latest release at https://libvirt.org/sources/libvirt-6.6.0.tar.xz includes a configure script that breaks Homebrew (and other builds on MacOS/Darwin). The breaking change is related to a new version of the file m4/libtool.m4; line 2648 was changed to:
shrext_cmds='`test .$module = .yes && echo .bundle || echo .dylib`'
However, src/driver.c loads modules with ".so" extensions, at line 56:
if (!(modfile = virFileFindResourceFull(name, "libvirt_driver_", ".so",
The released tarball for 6.5.0 had the same shrext_cmds as upstream libtool:
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
Not sure where to submit the issue (as the m4 files aren't in libvirt source control)... it appears to only affect the distribution tarball.
Probably a result of the dist tarball being created on a different host distro than before.
Perhaps the tarball could be re-released with autoconf from the official upstream libtool? (2.4.6)
FWIW, there is a much bigger change already in libvirt git master. We have dropped autotools entirely in favour of meson+ninja as our build system. This will be in the 6.7.0 release in just under 2 weeks time. So I'd suggest you do the minimum possible to get 6.6.0 working on homebrew, by just applying a local patch to the tarball for that problem code, since this will be a one-off problem. Keep your time free for debugging any issues that the meson conversion might expose instead.
PS. MacPorts is unaffected as it runs autogen.sh... but that shouldn't be necessary with a distribution tarball :)
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 :|

On Tue, 2020-08-18 at 20:41 +0100, Daniel P. Berrangé wrote:
We have dropped autotools entirely in favour of meson+ninja as our build system. This will be in the 6.7.0 release in just under 2 weeks time.
So I'd suggest you do the minimum possible to get 6.6.0 working on homebrew, by just applying a local patch to the tarball for that problem code, since this will be a one-off problem.
Keep your time free for debugging any issues that the meson conversion might expose instead.
This is actually the perfect time to test whether the Meson conversion affected macOS negatively, since we still have time to fix it before 6.7.0 is out. Since you're interested in libvirt on macOS, you could also take a look at https://gitlab.com/libvirt/libvirt/-/issues/58 Unfortunately I haven't been able to get back to it but Ryan Schmidt, who is the libvirt maintainer for MacPorts, has done some work to track down the issues preventing the test suite from completing successfully on macOS. Perhaps you could help too? :) -- Andrea Bolognani / Red Hat / Virtualization
participants (3)
-
Andrea Bolognani
-
Daniel P. Berrangé
-
Scott Shambarger