[MacPorts] #63466: libvirt @7.6.0: libvirt-lxc.0.dylib provides version 0.0.0
MacPorts
noreply at macports.org
Sun Oct 17 16:10:05 UTC 2021
#63466: libvirt @7.6.0: libvirt-lxc.0.dylib provides version 0.0.0
-------------------------+------------------------
Reporter: inflatador | Owner: ryandesign
Type: defect | Status: accepted
Priority: Normal | Milestone:
Component: ports | Version: 2.7.1
Resolution: | Keywords:
Port: libvirt |
-------------------------+------------------------
Changes (by ryandesign):
* status: assigned => accepted
* priority: Low => Normal
Comment:
The creator of any library is free to define its versioning scheme.
6007.0.0 is a valid library minor version number, as is 0.0.0. It is the
responsibility of the developers of the project to exercise care to ensure
that their library versions proceed in a sensible manner, for example to
ensure that the library minor versions do not decrease from one release to
the next. Unfortunately, the developers of libvirt appear not to have
exercised that care in this case.
What appears to have happened here is that the developers of libvirt
decided to switch from the autotools build system to the meson build
system. For a time both build systems were offered and MacPorts stuck with
the autotools system since that was less work than switching, but then
libvirt deleted its autotools build system so we were forced to switch.
This happened when the port was updated to version 7.0.0 in
[50f6b87e76adfc829c92802d3ec8b91aab53ca8c/macports-ports]. autotools
(libtool) has a very particular way of handling library version numbers,
so it would be incumbent upon the developers of any project switching from
libtool to some other library build system to ensure that the existing
library versioning scheme is preserved. The developers of libvirt didn't.
This is unfortunately an extremely common mistake made by I would guess
most projects that switch from autotools to something newer, and there
have been a lot of projects over recent years that have switched from
autotools to cmake or meson. Unfortunately, usually by the time the
mistake is noticed it has been published in a release of the software and
the developers are often uninterested in fixing the problem.
I don't see a bug report filed about this with the developers of libvirt.
If you would like to file a bug report with them so that they might return
to the previous library minor version numbering scheme in a future
release, the URL to do so is https://gitlab.com/libvirt/libvirt/-/issues.
If they will not fix their library versioning in the foreseeable future,
then the workaround that we probably have to employ is that every port
that links with a libvirt library that has not had its version or revision
increased since we updated to libvirt 7.0.0 should have its revision
increased to rebuild it against the new (lower) library minor version
number. If the software with which you encountered the error was not built
by MacPorts, then you will need to rebuild it from source separately.
--
Ticket URL: <https://trac.macports.org/ticket/63466#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list