On 1/28/26 18:11, Roman Bogorodskiy wrote:
Do not hardcode "/usr/local/share" directory in the configuration file for the firmware and uboot paths.
Use meson's configure_file()/configuration_data() to substitute it with the "datadir" value.
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com> --- src/bhyve/{bhyve.conf => bhyve.conf.in} | 4 ++-- src/bhyve/meson.build | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) rename src/bhyve/{bhyve.conf => bhyve.conf.in} (87%)
diff --git a/src/bhyve/bhyve.conf b/src/bhyve/bhyve.conf.in similarity index 87% rename from src/bhyve/bhyve.conf rename to src/bhyve/bhyve.conf.in index a845937d87..5ed6a14db5 100644 --- a/src/bhyve/bhyve.conf +++ b/src/bhyve/bhyve.conf.in @@ -4,12 +4,12 @@
# Path to a directory with firmware files. By default it's pointing # to the directory that sysutils/bhyve-firmware installs files into. -#firmware_dir = "/usr/local/share/uefi-firmware" +#firmware_dir = "@DATADIR@/uefi-firmware"
# Path to the U-Boot loader for the arm64 guests. # By default it's pointing to the loader installed # by the sysutils/u-boot-bhyve-arm64 port -#uboot_path = "/usr/local/share/u-boot/u-boot-bhyve-arm64/u-boot.bin" +#uboot_path = "@DATADIR@/u-boot/u-boot-bhyve-arm64/u-boot.bin"
# Set timeout for the bhyveload(8) command. This might be necessary # because in case of errors bhyveload(8) drops to an interactive diff --git a/src/bhyve/meson.build b/src/bhyve/meson.build index 11920d9c3e..564b7e5db2 100644 --- a/src/bhyve/meson.build +++ b/src/bhyve/meson.build @@ -50,12 +50,21 @@ if conf.has('WITH_BHYVE') ], }
- virt_conf_files += files('bhyve.conf') + bhyve_conf_data = configuration_data({ + 'DATADIR': datadir, + }) + bhyve_conf = configure_file( + input: 'bhyve.conf.in', + output: 'bhyve.conf', + configuration: bhyve_conf_data, + ) + + virt_conf_files += bhyve_conf virt_aug_files += files('libvirtd_bhyve.aug') virt_test_aug_files += { 'name': 'test_libvirtd_bhyve.aug', 'aug': files('test_libvirtd_bhyve.aug.in'), - 'conf': files('bhyve.conf'), + 'conf': bhyve_conf, 'test_name': 'libvirtd_bhyve', 'test_srcdir': meson.current_source_dir(), 'test_builddir': meson.current_build_dir(),
This is a bit tricky. Because of the change made to bhyve.conf.in the expected output for check-augeas-libvirtd_bhyve test changes: libvirt.git/_build/src/test_libvirtd_bhyve.aug:8.2-11.35:exception thrown in test libvirt.git/_build/src/test_libvirtd_bhyve.aug:8.7-.34:exception: Iterated lens matched less than it should Lens: /home/zippy/tmp/libvirt.git/src/bhyve/libvirtd_bhyve.aug:36.13-.43: Last match: /home/zippy/tmp/libvirt.git/src/bhyve/libvirtd_bhyve.aug:32.17-.31: Error encountered at 2:0 (42 characters into string) < "/usr/share/uefi-firmware"\n|=|uboot_path = "/usr/share/u-b> Tree generated so far: /firmware_dir = "/usr/share/uefi-firmware" We'd need to make the test output also depend on @DATADIR@ expansion and only after that it can be fed to scripts/augeas-gentest.py. Alternatively, we can just live with the .conf not reflecting the defaults loaded by the driver. BTW: I'm testing these on FreeBSD 15, hence difference in our outputs. Michal