On Mon, 2021-04-19 at 19:14 +0200, Pavel Hrdina wrote:
Recent attempt to add a lot of meson options to specify different
runtime paths motivated me enough to cleanup this from meson.
Changes in v2:
- split and rework patch 16/17 to address review comments
- added a new patch to cleanup libvirt.spec.in file
Overall I like this change, if nothing else because it finally cleans
up the mess where some optional programs would be detected at build
time while others would be detected at runtime, with no apparent
reason for going one way rather than the other.
The only concern I have, which is one I have expressed already in the
past, is that it will now be harder for users and packagers alike to
figure out that they don't have a certain optional program installed:
AFAICT, after your patches the only way would be to try using each
feature and look out for errors.
Can we still check for the availability of these commands at build
time and simply report their presence? I'm thinking of something like
optional_runtime_programs = [
'dmidecode',
'dnsmasq',
...
]
which would be reported in the Meson summary as
Optional runtime programs:
dmidecode: YES
dnsmasq: NO
...
Then, for each of these commands, we'd also create a macro
definition in meson-config.h like
#define PROGRAM_DMIDECODE "dmidecode"
#define PROGRAM_DNSMASQ "dnsmasq"
...
and use those in the various C functions instead of the ad-hoc,
private defines that are currently sprinkled throughout the code.
Note that said macro would *not* be defined conditionally based on
whether the optional program was found at build time: the intention
is simply to have a single location where information about all these
optional runtime programs are stored, instead of forcing users and
packagers to go hunting for them across all of libvirt, potentially
missing a bunch in the process.
What do you think?
--
Andrea Bolognani / Red Hat / Virtualization