[RFC 0/2] Fix build with libvirtd disabled
I'm considering dropping the monolithic libvirtd in future versions of SUSE distros, which got me to checking the usability of -Ddriver_libvirtd=disabled. I found it's not very usable :-). This series if an RFC attempt to rectify the situation. I'm not sure if we should build the various "common" components unconditionally as this change does, or only if the monolithic libvirtd and/or one or more modular daemons are also being built. Thanks for any comments! Jim Fehlig (2): build: Fix build with libvirtd disabled spec: Add option to enable/disable libvirtd docs/manpages/meson.build | 10 +- libvirt.spec.in | 25 +++- meson.build | 209 +++++++++++++--------------- meson_options.txt | 14 +- src/access/meson.build | 3 - src/locking/meson.build | 281 +++++++++++++++++++------------------- src/logging/meson.build | 104 +++++++------- src/meson.build | 200 +++++++++++++-------------- src/remote/meson.build | 174 +++++++++++------------ src/security/meson.build | 2 +- src/util/meson.build | 24 ++-- tools/meson.build | 26 ++-- 12 files changed, 526 insertions(+), 546 deletions(-) -- 2.51.0
From: Jim Fehlig <jfehlig@suse.com> Attempting to build with -Ddriver_libvirtd=disabled fails in many locations. E.g. configuring the build with -Ddriver_qemu=enabled -Ddriver_libxl=enabled -Ddriver_lxc=enabled \ -Ddriver_libvirtd=disabled Results in the following failure ../meson.build:1590:2: ERROR: Problem encountered: libvirtd is required for libxenlight Several modular daemons and the common components are needlessly wrapped in 'WITH_LIBVIRTD' conditionals. Remove the conditionals and other unneeded dependencies on the monolithic daemon. Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- docs/manpages/meson.build | 10 +- meson.build | 209 +++++++++++++--------------- meson_options.txt | 14 +- src/access/meson.build | 3 - src/locking/meson.build | 281 +++++++++++++++++++------------------- src/logging/meson.build | 104 +++++++------- src/meson.build | 200 +++++++++++++-------------- src/remote/meson.build | 174 +++++++++++------------ src/security/meson.build | 2 +- src/util/meson.build | 24 ++-- tools/meson.build | 26 ++-- 11 files changed, 503 insertions(+), 544 deletions(-) diff --git a/docs/manpages/meson.build b/docs/manpages/meson.build index 6504e68a71..9d11d153f7 100644 --- a/docs/manpages/meson.build +++ b/docs/manpages/meson.build @@ -22,19 +22,19 @@ docs_man_files = [ { 'name': 'virt-xml-validate', 'section': '1', 'install': true }, { 'name': 'virt-qemu-sev-validate', 'section': '1', 'install': conf.has('WITH_QEMU') }, - { 'name': 'libvirt-guests', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, + { 'name': 'libvirt-guests', 'section': '8', 'install': true }, { 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, { 'name': 'virt-sanlock-cleanup', 'section': '8', 'install': conf.has('WITH_SANLOCK') }, - { 'name': 'virt-ssh-helper', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, + { 'name': 'virt-ssh-helper', 'section': '8', 'install': true }, { 'name': 'virtbhyved', 'section': '8', 'install': conf.has('WITH_BHYVE') }, { 'name': 'virtinterfaced', 'section': '8', 'install': conf.has('WITH_INTERFACE') }, - { 'name': 'virtlockd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, - { 'name': 'virtlogd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, + { 'name': 'virtlockd', 'section': '8', 'install': true }, + { 'name': 'virtlogd', 'section': '8', 'install': true }, { 'name': 'virtlxcd', 'section': '8', 'install': conf.has('WITH_LXC') }, { 'name': 'virtnetworkd', 'section': '8', 'install': conf.has('WITH_NETWORK') }, { 'name': 'virtnodedevd', 'section': '8', 'install': conf.has('WITH_NODE_DEVICES') }, { 'name': 'virtnwfilterd', 'section': '8', 'install': conf.has('WITH_NWFILTER') }, - { 'name': 'virtproxyd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, + { 'name': 'virtproxyd', 'section': '8', 'install': true }, { 'name': 'virtqemud', 'section': '8', 'install': conf.has('WITH_QEMU') }, { 'name': 'virtsecretd', 'section': '8', 'install': conf.has('WITH_SECRETS') }, { 'name': 'virtstoraged', 'section': '8', 'install': conf.has('WITH_STORAGE') }, diff --git a/meson.build b/meson.build index b30e9136a2..8312bfb6e2 100644 --- a/meson.build +++ b/meson.build @@ -1532,13 +1532,13 @@ elif get_option('driver_hyperv').enabled() error('openwsman is required for the Hyper-V driver') endif -if not get_option('driver_interface').disabled() and conf.has('WITH_LIBVIRTD') and (udev_dep.found() or conf.has('WITH_NETCF')) +if not get_option('driver_interface').disabled() and (udev_dep.found() or conf.has('WITH_NETCF')) conf.set('WITH_INTERFACE', 1) elif get_option('driver_interface').enabled() - error('Requested the Interface driver without netcf or udev and libvirtd support') + error('Requested the Interface driver without netcf or udev support') endif -if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD') +if not get_option('driver_libxl').disabled() libxl_version = '4.9.0' libxl_dep = dependency('xenlight', version: '>=' + libxl_version, required: get_option('driver_libxl')) @@ -1586,14 +1586,12 @@ if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD') conf.set('WITH_LIBXL', 1) endif -elif get_option('driver_libxl').enabled() - error('libvirtd is required for libxenlight') endif -if not get_option('driver_lxc').disabled() and host_machine.system() == 'linux' and conf.has('WITH_LIBVIRTD') +if not get_option('driver_lxc').disabled() and host_machine.system() == 'linux' conf.set('WITH_LXC', 1) elif get_option('driver_lxc').enabled() - error('linux and remote_driver are required for LXC') + error('linux is required for LXC') endif if not get_option('driver_ch').disabled() @@ -1606,13 +1604,6 @@ if not get_option('driver_ch').disabled() endif endif - if not conf.has('WITH_LIBVIRTD') - use_ch = false - if get_option('driver_ch').enabled() - error('libvirtd is required to build Cloud-Hypervisor driver') - endif - endif - if not json_c_dep.found() use_ch = false if get_option('driver_ch').enabled() @@ -1645,7 +1636,7 @@ if not get_option('driver_ch').disabled() endif endif -if not get_option('driver_network').disabled() and conf.has('WITH_LIBVIRTD') +if not get_option('driver_network').disabled() conf.set('WITH_NETWORK', 1) firewall_backend_priority = get_option('firewall_backend_priority') @@ -1672,11 +1663,9 @@ if not get_option('driver_network').disabled() and conf.has('WITH_LIBVIRTD') endforeach conf.set('FIREWALL_BACKENDS', ', '.join(backends)) -elif get_option('driver_network').enabled() - error('libvirtd must be enabled to build the network driver') endif -if udev_dep.found() and conf.has('WITH_LIBVIRTD') +if udev_dep.found() conf.set('WITH_NODE_DEVICES', 1) endif @@ -1696,13 +1685,6 @@ if not get_option('driver_qemu').disabled() endif endif - if not conf.has('WITH_LIBVIRTD') - use_qemu = false - if get_option('driver_qemu').enabled() - error('libvirtd is required to build QEMU driver') - endif - endif - if use_qemu conf.set('WITH_QEMU', 1) @@ -1765,7 +1747,7 @@ if not get_option('driver_qemu').disabled() endif endif -if not get_option('driver_secrets').disabled() and conf.has('WITH_LIBVIRTD') +if not get_option('driver_secrets').disabled() conf.set('WITH_SECRETS', 1) endif @@ -1773,7 +1755,7 @@ if not get_option('driver_test').disabled() conf.set('WITH_TEST', 1) endif -if not get_option('driver_vbox').disabled() and conf.has('WITH_LIBVIRTD') +if not get_option('driver_vbox').disabled() conf.set('WITH_VBOX', 1) conf.set_quoted('VBOX_XPCOMC_DIR', get_option('vbox_xpcomc_dir')) endif @@ -1810,111 +1792,107 @@ endif use_storage = false -if conf.has('WITH_LIBVIRTD') - if not get_option('storage_dir').disabled() - use_storage = true - conf.set('WITH_STORAGE_DIR', 1) - endif +if not get_option('storage_dir').disabled() + use_storage = true + conf.set('WITH_STORAGE_DIR', 1) +endif - if not get_option('storage_disk').disabled() and libparted_dep.found() - use_storage = true - conf.set('WITH_STORAGE_DISK', 1) - elif get_option('storage_disk').enabled() - error('You must install libparted to compile libvirt with disk storage driver') - endif +if not get_option('storage_disk').disabled() and libparted_dep.found() + use_storage = true + conf.set('WITH_STORAGE_DISK', 1) +elif get_option('storage_disk').enabled() + error('You must install libparted to compile libvirt with disk storage driver') +endif - if not get_option('storage_fs').disabled() - fs_enable = true +if not get_option('storage_fs').disabled() + fs_enable = true + + # storage-fs does not work on macOS + if host_machine.system() == 'darwin' + fs_enable = false + endif - # storage-fs does not work on macOS - if host_machine.system() == 'darwin' + if fs_enable and not cc.check_header('mntent.h') + if get_option('storage_fs').enabled() + error('<mntent.h> is required for the FS storage driver') + else fs_enable = false endif - - if fs_enable and not cc.check_header('mntent.h') - if get_option('storage_fs').enabled() - error('<mntent.h> is required for the FS storage driver') - else - fs_enable = false - endif - endif - - if fs_enable - use_storage = true - - conf.set('WITH_STORAGE_FS', 1) - endif endif - if not get_option('storage_gluster').disabled() and glusterfs_dep.found() + if fs_enable use_storage = true - conf.set('WITH_STORAGE_GLUSTER', 1) - elif get_option('storage_gluster').enabled() - error('Need glusterfs (libgfapi) for gluster storage driver') - endif - if not get_option('storage_iscsi').disabled() and host_machine.system() == 'linux' - use_storage = true - conf.set('WITH_STORAGE_ISCSI', 1) - elif get_option('storage_iscsi').enabled() - error('Linux host needed for iSCSI storage driver using iscsiadm') - endif - - if not get_option('storage_iscsi_direct').disabled() and libiscsi_dep.found() - use_storage = true - conf.set('WITH_STORAGE_ISCSI_DIRECT', 1) - elif get_option('storage_iscsi_direct').enabled() - error('Need libiscsi for iscsi-direct storage driver') + conf.set('WITH_STORAGE_FS', 1) endif +endif - if not get_option('storage_lvm').disabled() and host_machine.system() == 'linux' - lvm_enable = true - use_storage = true - conf.set('WITH_STORAGE_LVM', 1) - elif get_option('storage_lvm').enabled() - error('Linux host needed for LVM storage driver') - endif +if not get_option('storage_gluster').disabled() and glusterfs_dep.found() + use_storage = true + conf.set('WITH_STORAGE_GLUSTER', 1) +elif get_option('storage_gluster').enabled() + error('Need glusterfs (libgfapi) for gluster storage driver') +endif - if not get_option('storage_mpath').disabled() and host_machine.system() == 'linux' and devmapper_dep.found() - use_storage = true - conf.set('WITH_STORAGE_MPATH', 1) - elif get_option('storage_mpath').enabled() - error('mpath storage driver is supported only on Linux and you must install libdevmapper') - endif +if not get_option('storage_iscsi').disabled() and host_machine.system() == 'linux' + use_storage = true + conf.set('WITH_STORAGE_ISCSI', 1) +elif get_option('storage_iscsi').enabled() + error('Linux host needed for iSCSI storage driver using iscsiadm') +endif - if not get_option('storage_rbd').disabled() and rbd_dep.found() - use_storage = true - conf.set('WITH_STORAGE_RBD', 1) - elif get_option('storage_rbd').enabled() - error('You must install the librbd library & headers to compile libvirt') - endif +if not get_option('storage_iscsi_direct').disabled() and libiscsi_dep.found() + use_storage = true + conf.set('WITH_STORAGE_ISCSI_DIRECT', 1) +elif get_option('storage_iscsi_direct').enabled() + error('Need libiscsi for iscsi-direct storage driver') +endif + if not get_option('storage_lvm').disabled() and host_machine.system() == 'linux' + lvm_enable = true + use_storage = true + conf.set('WITH_STORAGE_LVM', 1) +elif get_option('storage_lvm').enabled() + error('Linux host needed for LVM storage driver') +endif - if not get_option('storage_scsi').disabled() and host_machine.system() == 'linux' - use_storage = true - conf.set('WITH_STORAGE_SCSI', 1) - endif +if not get_option('storage_mpath').disabled() and host_machine.system() == 'linux' and devmapper_dep.found() + use_storage = true + conf.set('WITH_STORAGE_MPATH', 1) +elif get_option('storage_mpath').enabled() + error('mpath storage driver is supported only on Linux and you must install libdevmapper') +endif + if not get_option('storage_rbd').disabled() and rbd_dep.found() + use_storage = true + conf.set('WITH_STORAGE_RBD', 1) +elif get_option('storage_rbd').enabled() + error('You must install the librbd library & headers to compile libvirt') +endif - if not get_option('storage_vstorage').disabled() - vstorage_enable = true - if host_machine.system() != 'linux' - vstorage_enable = false - if get_option('storage_vstorage').enabled() - error('Vstorage is supported only on Linux') - endif - endif +if not get_option('storage_scsi').disabled() and host_machine.system() == 'linux' + use_storage = true + conf.set('WITH_STORAGE_SCSI', 1) +endif - if vstorage_enable - use_storage = true - conf.set('WITH_STORAGE_VSTORAGE', 1) +if not get_option('storage_vstorage').disabled() + vstorage_enable = true + if host_machine.system() != 'linux' + vstorage_enable = false + if get_option('storage_vstorage').enabled() + error('Vstorage is supported only on Linux') endif endif - if not get_option('storage_zfs').disabled() + if vstorage_enable use_storage = true - conf.set('WITH_STORAGE_ZFS', 1) + conf.set('WITH_STORAGE_VSTORAGE', 1) endif endif +if not get_option('storage_zfs').disabled() + use_storage = true + conf.set('WITH_STORAGE_ZFS', 1) +endif + if use_storage conf.set('WITH_STORAGE', 1) endif @@ -1931,12 +1909,10 @@ if chrdev_lock_files != '' endif driver_modules_flags = [] -if conf.has('WITH_LIBVIRTD') - if not conf.has('WITH_DLFCN_H') or not dlopen_dep.found() - error('You must have dlfcn.h / dlopen() support to build driver modules') - endif - driver_modules_flags = libvirt_export_dynamic +if not conf.has('WITH_DLFCN_H') or not dlopen_dep.found() + error('You must have dlfcn.h / dlopen() support to build driver modules') endif +driver_modules_flags = libvirt_export_dynamic if host_machine.system() == 'linux' dtrace_prog = find_program('dtrace', required: get_option('dtrace'), dirs: libvirt_sbin_path) @@ -2026,9 +2002,8 @@ elif get_option('numad').enabled() error('You must have a Linux host with numactl enabled for numad support.') endif -# nwfilter should only be compiled for linux, and only if the -# libvirt daemon is also being compiled -if conf.has('WITH_LIBVIRTD') and host_machine.system() == 'linux' +# nwfilter should only be compiled for linux +if host_machine.system() == 'linux' conf.set('WITH_NWFILTER', 1) endif diff --git a/meson_options.txt b/meson_options.txt index e12ace4e11..2dc15855ad 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -59,22 +59,22 @@ option('driver_bhyve', type: 'feature', value: 'auto', description: 'bhyve drive option('driver_esx', type: 'feature', value: 'auto', description: 'esx driver') # dep:openwsman option('driver_hyperv', type: 'feature', value: 'auto', description: 'Hyper-V driver') -# dep:pciaccess dep:udev dep:driver_remote dep:driver_libvirtd +# dep:pciaccess dep:udev dep:driver_remote option('driver_interface', type: 'feature', value: 'auto', description: 'host interface driver') # dep:driver_remote option('driver_libvirtd', type: 'feature', value: 'auto', description: 'libvirtd driver') -# dep:driver_remote dep:driver_libvirtd +# dep:driver_remote option('driver_libxl', type: 'feature', value: 'auto', description: 'libxenlight driver') -# dep:driver_remote dep:driver_libvirtd +# dep:driver_remote option('driver_lxc', type: 'feature', value: 'auto', description: 'Linux Container driver') -# dep:curl dep:json_c dep:driver_remote dep:driver_libvirtd +# dep:curl dep:json_c dep:driver_remote option('driver_ch', type: 'feature', value: 'auto', description: 'Cloud-Hypervisor driver') option('ch_user', type: 'string', value: '', description: 'username to run Cloud-Hypervisor system instance as') option('ch_group', type: 'string', value: '', description: 'groupname to run Cloud-Hypervisor system instance as') -# dep:driver_remote dep:driver_libvirtd +# dep:driver_remote option('driver_network', type: 'feature', value: 'auto', description: 'virtual network driver') option('driver_openvz', type: 'feature', value: 'auto', description: 'OpenVZ driver') -# dep:json_c dep:driver_remote dep:driver_libvirtd +# dep:json_c dep:driver_remote option('driver_qemu', type: 'feature', value: 'auto', description: 'QEMU/KVM driver') option('qemu_user', type: 'string', value: '', description: 'username to run QEMU system instance as') option('qemu_group', type: 'string', value: '', description: 'groupname to run QEMU system instance as') @@ -122,7 +122,7 @@ option('host_validate', type: 'feature', value: 'auto', description: 'build virt option('init_script', type: 'combo', choices: ['systemd', 'openrc', 'check', 'none'], value: 'check', description: 'Style of init script to install') option('loader_nvram', type: 'string', value: '', description: 'Pass list of pairs of <loader>:<nvram> paths. Both pairs and list items are separated by a colon.') option('login_shell', type: 'feature', value: 'auto', description: 'build virt-login-shell') -# dep:json_c dep:driver_network dep:libvirtd +# dep:json_c dep:driver_network option('nss', type: 'feature', value: 'auto', description: 'enable Name Service Switch plugin for resolving guest IP addresses') # dep:numactl option('numad', type: 'feature', value: 'auto', description: 'use numad to manage CPU placement dynamically') diff --git a/src/access/meson.build b/src/access/meson.build index d1336c0093..84b2da861c 100644 --- a/src/access/meson.build +++ b/src/access/meson.build @@ -78,8 +78,6 @@ access_generated += polgen if conf.has('WITH_POLKIT') access_sources += access_polkit_sources - if conf.has('WITH_LIBVIRTD') - i18n.merge_file( input: polgen, output: 'org.libvirt.api.policy', @@ -88,7 +86,6 @@ if conf.has('WITH_POLKIT') install: true, install_dir: polkitactionsdir, ) - endif endif access_generated += access_gen_sources diff --git a/src/locking/meson.build b/src/locking/meson.build index f8d12c481f..4e1d673d51 100644 --- a/src/locking/meson.build +++ b/src/locking/meson.build @@ -76,185 +76,182 @@ lock_driver_lib = static_library( libvirt_libs += lock_driver_lib -if conf.has('WITH_LIBVIRTD') - lockd_lib_impl = static_library( - 'lockd_impl', - [ - files(lock_driver_lockd_sources), - lock_protocol_generated, - ], - include_directories: [ - conf_inc_dir, - ], - dependencies: [ - rpc_dep, - sasl_dep, - src_dep, - xdr_dep, - ], - ) +lockd_lib_impl = static_library( + 'lockd_impl', + [ + files(lock_driver_lockd_sources), + lock_protocol_generated, + ], + include_directories: [ + conf_inc_dir, + ], + dependencies: [ + rpc_dep, + sasl_dep, + src_dep, + xdr_dep, + ], +) - check_protocols += { - 'name': 'lock_protocol', - 'lib': lockd_lib_impl, - } +check_protocols += { + 'name': 'lock_protocol', + 'lib': lockd_lib_impl, +} + virt_modules += { + 'name': 'lockd', + 'name_prefix': '', + 'sources': [ + dtrace_gen_objects, + ], + 'link_whole': [ + lockd_lib_impl, + ], + 'link_args': [ + libvirt_no_undefined, + ], + 'install_dir': lock_driver_install_dir, +} +if conf.has('WITH_SANLOCK') virt_modules += { - 'name': 'lockd', + 'name': 'sanlock', 'name_prefix': '', 'sources': [ - dtrace_gen_objects, + files(sanlock_sources), ], - 'link_whole': [ - lockd_lib_impl, + 'deps': [ + sanlock_dep, ], 'link_args': [ libvirt_no_undefined, ], 'install_dir': lock_driver_install_dir, } +endif - if conf.has('WITH_SANLOCK') - virt_modules += { - 'name': 'sanlock', - 'name_prefix': '', - 'sources': [ - files(sanlock_sources), - ], - 'deps': [ - sanlock_dep, - ], - 'link_args': [ - libvirt_no_undefined, - ], - 'install_dir': lock_driver_install_dir, - } - endif +virt_daemons += { + 'name': 'virtlockd', + 'sources': [ + lock_daemon_sources, + lock_daemon_generated, + lock_protocol_generated, + ], + 'include': [ + include_directories('.'), + ], +} - virt_daemons += { - 'name': 'virtlockd', +virt_daemon_units += { + 'service': 'virtlockd', + 'name': 'locking', + 'service_in': files('virtlockd.service.in'), + 'service_extra_in': [ + files('virtlockd.service.extra.in'), + systemd_service_oomscoreadjust_extra_in, + systemd_service_limitnofile_extra_in, + ], + 'sockets': [ 'main', 'admin' ], + 'socket_in': files('virtlockd.socket.in'), + 'socket_admin_in': files('virtlockd-admin.socket.in'), + 'socket_extra_in': [ + files('virtlockd.socket.extra.in'), + ], +} + +openrc_init_files += { + 'name': 'virtlockd', + 'in_file': files('virtlockd.init.in'), +} + +if conf.has('WITH_SANLOCK') + virt_helpers += { + 'name': 'libvirt_sanlock_helper', 'sources': [ - lock_daemon_sources, - lock_daemon_generated, - lock_protocol_generated, + sanlock_helper_sources, ], 'include': [ - include_directories('.'), + conf_inc_dir, ], } +endif - virt_daemon_units += { - 'service': 'virtlockd', - 'name': 'locking', - 'service_in': files('virtlockd.service.in'), - 'service_extra_in': [ - files('virtlockd.service.extra.in'), - systemd_service_oomscoreadjust_extra_in, - systemd_service_limitnofile_extra_in, - ], - 'sockets': [ 'main', 'admin' ], - 'socket_in': files('virtlockd.socket.in'), - 'socket_admin_in': files('virtlockd-admin.socket.in'), - 'socket_extra_in': [ - files('virtlockd.socket.extra.in'), - ], - } +virt_aug_files += files('libvirt_lockd.aug') - openrc_init_files += { - 'name': 'virtlockd', - 'in_file': files('virtlockd.init.in'), +if conf.has('WITH_QEMU') + qemu_lockd_conf = configure_file( + input: 'lockd.conf', + output: 'qemu-lockd.conf', + configuration: configmake_conf, + ) + virt_conf_files += qemu_lockd_conf + virt_test_aug_files += { + 'name': 'test_libvirt_lockd.aug', + 'aug': files('test_libvirt_lockd.aug.in'), + 'conf': qemu_lockd_conf, + 'test_name': 'libvirt_lockd', + 'test_srcdir': meson.current_source_dir(), + 'test_builddir': meson.current_build_dir(), } +endif - if conf.has('WITH_SANLOCK') - virt_helpers += { - 'name': 'libvirt_sanlock_helper', - 'sources': [ - sanlock_helper_sources, - ], - 'include': [ - conf_inc_dir, - ], - } - endif +if conf.has('WITH_LIBXL') + libxl_lockd_conf = configure_file( + input: 'lockd.conf', + output: 'libxl-lockd.conf', + configuration: configmake_conf, + ) + virt_conf_files += libxl_lockd_conf +endif - virt_aug_files += files('libvirt_lockd.aug') +if conf.has('WITH_SANLOCK') + virt_aug_files += files('libvirt_sanlock.aug') + virt_test_aug_files += { + 'name': 'test_libvirt_sanlock.aug', + 'aug': files('test_libvirt_sanlock.aug.in'), + 'conf': files('sanlock.conf'), + 'test_name': 'libvirt_sanlock', + 'test_srcdir': meson.current_source_dir(), + 'test_builddir': meson.current_build_dir(), + } if conf.has('WITH_QEMU') - qemu_lockd_conf = configure_file( - input: 'lockd.conf', - output: 'qemu-lockd.conf', + qemu_sanlock_conf = configure_file( + input: 'sanlock.conf', + output: 'qemu-sanlock.conf', configuration: configmake_conf, ) - virt_conf_files += qemu_lockd_conf - virt_test_aug_files += { - 'name': 'test_libvirt_lockd.aug', - 'aug': files('test_libvirt_lockd.aug.in'), - 'conf': qemu_lockd_conf, - 'test_name': 'libvirt_lockd', - 'test_srcdir': meson.current_source_dir(), - 'test_builddir': meson.current_build_dir(), - } + virt_conf_files += qemu_sanlock_conf endif if conf.has('WITH_LIBXL') - libxl_lockd_conf = configure_file( - input: 'lockd.conf', - output: 'libxl-lockd.conf', + libxl_sanlock_conf = configure_file( + input: 'sanlock.conf', + output: 'libxl-sanlock.conf', configuration: configmake_conf, ) - virt_conf_files += libxl_lockd_conf + virt_conf_files += libxl_sanlock_conf endif +endif - if conf.has('WITH_SANLOCK') - virt_aug_files += files('libvirt_sanlock.aug') - virt_test_aug_files += { - 'name': 'test_libvirt_sanlock.aug', - 'aug': files('test_libvirt_sanlock.aug.in'), - 'conf': files('sanlock.conf'), - 'test_name': 'libvirt_sanlock', - 'test_srcdir': meson.current_source_dir(), - 'test_builddir': meson.current_build_dir(), - } +virt_conf_files += files('virtlockd.conf') +virt_aug_files += files('virtlockd.aug') +virt_test_aug_files += { + 'name': 'test_virtlockd.aug', + 'aug': files('test_virtlockd.aug.in'), + 'conf': files('virtlockd.conf'), + 'test_name': 'virtlockd', + 'test_srcdir': meson.current_source_dir(), + 'test_builddir': meson.current_build_dir(), +} - if conf.has('WITH_QEMU') - qemu_sanlock_conf = configure_file( - input: 'sanlock.conf', - output: 'qemu-sanlock.conf', - configuration: configmake_conf, - ) - virt_conf_files += qemu_sanlock_conf - endif - - if conf.has('WITH_LIBXL') - libxl_sanlock_conf = configure_file( - input: 'sanlock.conf', - output: 'libxl-sanlock.conf', - configuration: configmake_conf, - ) - virt_conf_files += libxl_sanlock_conf - endif - endif - - virt_conf_files += files('virtlockd.conf') - virt_aug_files += files('virtlockd.aug') - virt_test_aug_files += { - 'name': 'test_virtlockd.aug', - 'aug': files('test_virtlockd.aug.in'), - 'conf': files('virtlockd.conf'), - 'test_name': 'virtlockd', - 'test_srcdir': meson.current_source_dir(), - 'test_builddir': meson.current_build_dir(), - } +virt_install_dirs += [ + localstatedir / 'lib' / 'libvirt' / 'lockd', + localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files', + runstatedir / 'libvirt' / 'lockd', +] +if conf.has('WITH_SANLOCK') virt_install_dirs += [ - localstatedir / 'lib' / 'libvirt' / 'lockd', - localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files', - runstatedir / 'libvirt' / 'lockd', + localstatedir / 'lib' / 'libvirt' / 'sanlock', ] - - if conf.has('WITH_SANLOCK') - virt_install_dirs += [ - localstatedir / 'lib' / 'libvirt' / 'sanlock', - ] - endif endif diff --git a/src/logging/meson.build b/src/logging/meson.build index 67eeacce43..fad3eab497 100644 --- a/src/logging/meson.build +++ b/src/logging/meson.build @@ -57,63 +57,61 @@ else sym_files += 'libvirt_logging.syms' endif -if conf.has('WITH_LIBVIRTD') - log_daemon_generated = custom_target( - 'log_daemon_dispatch_stubs.h', - input: log_protocol, - output: 'log_daemon_dispatch_stubs.h', - command: [ - gendispatch_prog, '--mode=server', - 'virLogManagerProtocol', 'VIR_LOG_MANAGER_PROTOCOL', '@INPUT@', - ], - capture: true, - ) +log_daemon_generated = custom_target( + 'log_daemon_dispatch_stubs.h', + input: log_protocol, + output: 'log_daemon_dispatch_stubs.h', + command: [ + gendispatch_prog, '--mode=server', + 'virLogManagerProtocol', 'VIR_LOG_MANAGER_PROTOCOL', '@INPUT@', + ], + capture: true, +) - virt_daemons += { - 'name': 'virtlogd', - 'sources': [ - log_daemon_sources, - log_daemon_generated, - log_protocol_generated, - ], - 'include': [ - include_directories('.'), - ], - } +virt_daemons += { + 'name': 'virtlogd', + 'sources': [ + log_daemon_sources, + log_daemon_generated, + log_protocol_generated, + ], + 'include': [ + include_directories('.'), + ], +} - virt_conf_files += files('virtlogd.conf') - virt_aug_files += files('virtlogd.aug') - virt_test_aug_files += { - 'name': 'test_virtlogd.aug', - 'aug': files('test_virtlogd.aug.in'), - 'conf': files('virtlogd.conf'), - 'test_name': 'virtlogd', - 'test_srcdir': meson.current_source_dir(), - 'test_builddir': meson.current_build_dir(), - } +virt_conf_files += files('virtlogd.conf') +virt_aug_files += files('virtlogd.aug') +virt_test_aug_files += { + 'name': 'test_virtlogd.aug', + 'aug': files('test_virtlogd.aug.in'), + 'conf': files('virtlogd.conf'), + 'test_name': 'virtlogd', + 'test_srcdir': meson.current_source_dir(), + 'test_builddir': meson.current_build_dir(), +} - virt_daemon_units += { - 'service': 'virtlogd', - 'name': 'logging', - 'service_in': files('virtlogd.service.in'), - 'service_extra_in': [ - files('virtlogd.service.extra.in'), - systemd_service_oomscoreadjust_extra_in, - systemd_service_limitnofile_extra_in, - ], - 'sockets': [ 'main', 'admin' ], - 'socket_in': files('virtlogd.socket.in'), - 'socket_admin_in': files('virtlogd-admin.socket.in'), - 'socket_extra_in': [ - files('virtlogd.socket.extra.in'), - ], - } +virt_daemon_units += { + 'service': 'virtlogd', + 'name': 'logging', + 'service_in': files('virtlogd.service.in'), + 'service_extra_in': [ + files('virtlogd.service.extra.in'), + systemd_service_oomscoreadjust_extra_in, + systemd_service_limitnofile_extra_in, + ], + 'sockets': [ 'main', 'admin' ], + 'socket_in': files('virtlogd.socket.in'), + 'socket_admin_in': files('virtlogd-admin.socket.in'), + 'socket_extra_in': [ + files('virtlogd.socket.extra.in'), + ], +} - openrc_init_files += { - 'name': 'virtlogd', - 'in_file': files('virtlogd.init.in'), - } -endif +openrc_init_files += { + 'name': 'virtlogd', + 'in_file': files('virtlogd.init.in'), +} log_inc_dir = include_directories('.') diff --git a/src/meson.build b/src/meson.build index cab52ce7a3..7d2a4c72de 100644 --- a/src/meson.build +++ b/src/meson.build @@ -811,120 +811,118 @@ foreach data : virt_daemon_confs endforeach -if conf.has('WITH_LIBVIRTD') - # Generate systemd service and socket unit files - if init_script == 'systemd' - install_data( - guest_unit_files, +# Generate systemd service and socket unit files +if init_script == 'systemd' + install_data( + guest_unit_files, + install_dir: unitdir, + ) + + if conf.has('WITH_POLKIT') + sockmode = '0666' + else + sockmode = '0600' + endif + + service_in_default = 'virtd.service.in' + + foreach unit : virt_daemon_units + unit_conf = configuration_data({ + 'runstatedir': runstatedir, + 'sbindir': sbindir, + 'sysconfdir': sysconfdir, + 'initconfdir': initconfdir, + 'localstatedir': localstatedir, + 'name': unit['name'], + 'service': unit['service'], + 'SERVICE': unit['service'].to_upper(), + 'sockprefix': unit.get('sockprefix', unit['service']), + 'sockmode': sockmode, + }) + + service_in = unit.get('service_in', service_in_default) + service_out = '@0@.service'.format(unit['service']) + + service_in = configure_file( + input: [ service_in ] + unit['service_extra_in'], + output: '@0@.in'.format(service_out), + command: [ merge_systemd_units_prog, '@INPUT@' ], + capture: true, + ) + + configure_file( + input: service_in, + output: service_out, + configuration: unit_conf, + install: true, install_dir: unitdir, ) - if conf.has('WITH_POLKIT') - sockmode = '0666' - else - sockmode = '0600' - endif - - service_in_default = 'virtd.service.in' - - foreach unit : virt_daemon_units - unit_conf = configuration_data({ - 'runstatedir': runstatedir, - 'sbindir': sbindir, - 'sysconfdir': sysconfdir, - 'initconfdir': initconfdir, - 'localstatedir': localstatedir, - 'name': unit['name'], - 'service': unit['service'], - 'SERVICE': unit['service'].to_upper(), - 'sockprefix': unit.get('sockprefix', unit['service']), - 'sockmode': sockmode, - }) - - service_in = unit.get('service_in', service_in_default) - service_out = '@0@.service'.format(unit['service']) - - service_in = configure_file( - input: [ service_in ] + unit['service_extra_in'], - output: '@0@.in'.format(service_out), + foreach socket : unit.get('sockets', [ 'main', 'ro', 'admin' ]) + if socket == 'main' + socket_in_default = 'virtd.socket.in' + socket_in = unit.get('socket_in', socket_in_default) + socket_out = '@0@.socket'.format(unit['service']) + else + socket_in_default = 'virtd-@0@.socket.in'.format(socket) + socket_in = unit.get('socket_@0@_in'.format(socket), socket_in_default) + socket_out = '@0@-@1@.socket'.format(unit['service'], socket) + endif + + socket_in = configure_file( + input: [ socket_in ] + unit['socket_extra_in'], + output: '@0@.in'.format(socket_out), command: [ merge_systemd_units_prog, '@INPUT@' ], capture: true, ) configure_file( - input: service_in, - output: service_out, + input: socket_in, + output: socket_out, configuration: unit_conf, install: true, install_dir: unitdir, ) - - foreach socket : unit.get('sockets', [ 'main', 'ro', 'admin' ]) - if socket == 'main' - socket_in_default = 'virtd.socket.in' - socket_in = unit.get('socket_in', socket_in_default) - socket_out = '@0@.socket'.format(unit['service']) - else - socket_in_default = 'virtd-@0@.socket.in'.format(socket) - socket_in = unit.get('socket_@0@_in'.format(socket), socket_in_default) - socket_out = '@0@-@1@.socket'.format(unit['service'], socket) - endif - - socket_in = configure_file( - input: [ socket_in ] + unit['socket_extra_in'], - output: '@0@.in'.format(socket_out), - command: [ merge_systemd_units_prog, '@INPUT@' ], - capture: true, - ) - - configure_file( - input: socket_in, - output: socket_out, - configuration: unit_conf, - install: true, - install_dir: unitdir, - ) - endforeach endforeach - endif + endforeach +endif - # Generate openrc init files - if init_script == 'openrc' - foreach init : openrc_init_files - if conf.has('WITH_FIREWALLD') - need_firewalld = 'need firewalld' - else - need_firewalld = '' - endif +# Generate openrc init files +if init_script == 'openrc' + foreach init : openrc_init_files + if conf.has('WITH_FIREWALLD') + need_firewalld = 'need firewalld' + else + need_firewalld = '' + endif - init_conf = configuration_data({ - 'sbindir': sbindir, - 'runstatedir': runstatedir, - 'NEED_FIREWALLD': need_firewalld, - }) + init_conf = configuration_data({ + 'sbindir': sbindir, + 'runstatedir': runstatedir, + 'NEED_FIREWALLD': need_firewalld, + }) - init_file = configure_file( - input: init['in_file'], - output: '@0@.init'.format(init['name']), - configuration: init_conf, - ) + init_file = configure_file( + input: init['in_file'], + output: '@0@.init'.format(init['name']), + configuration: init_conf, + ) + install_data( + init_file, + install_dir: sysconfdir / 'init.d', + install_mode: 'rwxr-xr-x', + rename: [ init['name'] ], + ) + + if init.has_key('confd') install_data( - init_file, - install_dir: sysconfdir / 'init.d', - install_mode: 'rwxr-xr-x', + init['confd'], + install_dir: sysconfdir / 'conf.d', rename: [ init['name'] ], ) - - if init.has_key('confd') - install_data( - init['confd'], - install_dir: sysconfdir / 'conf.d', - rename: [ init['name'] ], - ) - endif - endforeach - endif + endif + endforeach endif if conf.has('WITH_DTRACE_PROBES') @@ -952,14 +950,12 @@ virt_install_dirs += [ localstatedir / 'lib' / 'libvirt' / 'boot', ] -if conf.has('WITH_LIBVIRTD') - virt_install_dirs += [ - connection_driver_install_dir, - storage_backend_install_dir, - storage_file_install_dir, - lock_driver_install_dir, - ] -endif +virt_install_dirs += [ + connection_driver_install_dir, + storage_backend_install_dir, + storage_file_install_dir, + lock_driver_install_dir, +] meson.add_install_script( meson_python_prog.full_path(), python3_prog.full_path(), meson_install_dirs_prog.full_path(), diff --git a/src/remote/meson.build b/src/remote/meson.build index e503263266..e0faa6d07d 100644 --- a/src/remote/meson.build +++ b/src/remote/meson.build @@ -181,9 +181,9 @@ if conf.has('WITH_REMOTE') libvirt_libs += remote_driver_lib + guest_unit_files += files('virt-guest-shutdown.target') + if conf.has('WITH_LIBVIRTD') - guest_unit_files += files('virt-guest-shutdown.target') - virt_daemons += { 'name': 'libvirtd', 'c_args': [ @@ -226,63 +226,6 @@ if conf.has('WITH_REMOTE') 'confd': files('libvirtd.confd'), } - virt_daemons += { - 'name': 'virtproxyd', - 'c_args': [ - '-DSOCK_PREFIX="libvirt"', - '-DDAEMON_NAME="virtproxyd"', - '-DWITH_IP', - '-DVIRTPROXYD', - ], - } - - virt_daemon_confs += { - 'name': 'virtproxyd', - 'with_ip': true, - } - - virt_daemon_units += { - 'service': 'virtproxyd', - 'name': 'proxy', - 'service_extra_in': [ - files('virtproxyd.service.extra.in'), - ], - 'sockprefix': 'libvirt', - 'sockets': [ 'main', 'ro', 'admin', 'tcp', 'tls' ], - 'socket_extra_in': [ - files('virtproxyd.socket.extra.in'), - ], - } - - openrc_init_files += { - 'name': 'virtproxyd', - 'in_file': files('virtproxyd.init.in'), - 'confd': files('virtproxyd.confd'), - } - - virt_install_dirs += [ - localstatedir / 'log' / 'libvirt', - runstatedir / 'libvirt', - runstatedir / 'libvirt' / 'common', - ] - - logrotate_conf = configuration_data({ - 'localstatedir': localstatedir, - }) - - foreach name : logrotate_files - log_file = configure_file( - input: '@0@.logrotate.in'.format(name), - output: '@0@.logrotate'.format(name), - configuration: logrotate_conf, - ) - install_data( - log_file, - install_dir: sysconfdir / 'logrotate.d', - rename: [ name ], - ) - endforeach - if conf.has('WITH_SYSCTL') # Use $(prefix)/lib rather than $(libdir), since man sysctl.d insists on # /usr/lib/sysctl.d/ even when libdir is /usr/lib64 @@ -292,39 +235,96 @@ if conf.has('WITH_REMOTE') rename: [ '60-libvirtd.conf' ], ) endif + endif + + virt_daemons += { + 'name': 'virtproxyd', + 'c_args': [ + '-DSOCK_PREFIX="libvirt"', + '-DDAEMON_NAME="virtproxyd"', + '-DWITH_IP', + '-DVIRTPROXYD', + ], + } + + virt_daemon_confs += { + 'name': 'virtproxyd', + 'with_ip': true, + } + + virt_daemon_units += { + 'service': 'virtproxyd', + 'name': 'proxy', + 'service_extra_in': [ + files('virtproxyd.service.extra.in'), + ], + 'sockprefix': 'libvirt', + 'sockets': [ 'main', 'ro', 'admin', 'tcp', 'tls' ], + 'socket_extra_in': [ + files('virtproxyd.socket.extra.in'), + ], + } + + openrc_init_files += { + 'name': 'virtproxyd', + 'in_file': files('virtproxyd.init.in'), + 'confd': files('virtproxyd.confd'), + } + + virt_install_dirs += [ + localstatedir / 'log' / 'libvirt', + runstatedir / 'libvirt', + runstatedir / 'libvirt' / 'common', + ] + + logrotate_conf = configuration_data({ + 'localstatedir': localstatedir, + }) - if conf.has('WITH_POLKIT') - i18n.merge_file( - input: 'libvirtd.policy.in', - output: 'org.libvirt.unix.policy', - po_dir: po_dir, - data_dirs: [po_dir], - install: true, - install_dir: polkitactionsdir, - ) - - install_data( - 'libvirtd.rules', - install_dir: polkitrulesdir, - rename: [ '50-libvirt.rules' ], - ) - endif - - # Install the sysuser config for the daemon polkit rules + foreach name : logrotate_files + log_file = configure_file( + input: '@0@.logrotate.in'.format(name), + output: '@0@.logrotate'.format(name), + configuration: logrotate_conf, + ) install_data( - 'libvirt.sysusers.conf', - install_dir: sysusersdir, - rename: [ 'libvirt.conf' ], + log_file, + install_dir: sysconfdir / 'logrotate.d', + rename: [ name ], + ) + endforeach + + if conf.has('WITH_POLKIT') + i18n.merge_file( + input: 'libvirtd.policy.in', + output: 'org.libvirt.unix.policy', + po_dir: po_dir, + data_dirs: [po_dir], + install: true, + install_dir: polkitactionsdir, ) - virt_helpers += { - 'name': 'virt-ssh-helper', - 'sources': [ - virt_ssh_helper_sources - ], - 'install_dir': bindir, - } + install_data( + 'libvirtd.rules', + install_dir: polkitrulesdir, + rename: [ '50-libvirt.rules' ], + ) endif + + # Install the sysuser config for the daemon polkit rules + install_data( + 'libvirt.sysusers.conf', + install_dir: sysusersdir, + rename: [ 'libvirt.conf' ], + ) + + virt_helpers += { + 'name': 'virt-ssh-helper', + 'sources': [ + virt_ssh_helper_sources + ], + 'install_dir': bindir, + } endif if conf.has('WITH_REMOTE') diff --git a/src/security/meson.build b/src/security/meson.build index 6230b34aa4..aaeb1ec363 100644 --- a/src/security/meson.build +++ b/src/security/meson.build @@ -36,7 +36,7 @@ security_driver_lib = static_library( libvirt_libs += security_driver_lib -if conf.has('WITH_LIBVIRTD') and conf.has('WITH_APPARMOR') +if conf.has('WITH_APPARMOR') virt_helpers += { 'name': 'virt-aa-helper', 'sources': [ diff --git a/src/util/meson.build b/src/util/meson.build index 9fb0aa0fe7..a685d72ebd 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -210,18 +210,16 @@ virt_util_lib = static_library( libvirt_libs += virt_util_lib -if conf.has('WITH_LIBVIRTD') - virt_helpers += { - 'name': 'libvirt_iohelper', - 'sources': [ - files(io_helper_sources), - dtrace_gen_headers, - ], - 'deps': [ - acl_dep, - libutil_dep, - ], - } -endif +virt_helpers += { + 'name': 'libvirt_iohelper', + 'sources': [ + files(io_helper_sources), + dtrace_gen_headers, + ], + 'deps': [ + acl_dep, + libutil_dep, + ], +} util_inc_dir = include_directories('.') diff --git a/tools/meson.build b/tools/meson.build index a099148d3c..568947d308 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -334,25 +334,23 @@ if conf.has('WITH_QEMU') install_dir: bindir) endif -if conf.has('WITH_LIBVIRTD') +configure_file( + input: 'libvirt-guests.sh.in', + output: '@BASENAME@', + configuration: tools_conf, + install: true, + install_dir: libexecdir, + install_mode: 'rwxr-xr-x', +) + +if init_script == 'systemd' configure_file( - input: 'libvirt-guests.sh.in', + input: 'libvirt-guests.service.in', output: '@BASENAME@', configuration: tools_conf, install: true, - install_dir: libexecdir, - install_mode: 'rwxr-xr-x', + install_dir: unitdir, ) - - if init_script == 'systemd' - configure_file( - input: 'libvirt-guests.service.in', - output: '@BASENAME@', - configuration: tools_conf, - install: true, - install_dir: unitdir, - ) - endif endif if conf.has('WITH_QEMU') -- 2.51.0
From: Jim Fehlig <jfehlig@suse.com> Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- libvirt.spec.in | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index 00316a03f2..e3869e0e92 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -31,7 +31,10 @@ %define arches_numad %{arches_x86} %{power64} aarch64 %define arches_ch x86_64 aarch64 -# The hypervisor drivers that run in libvirtd +# The monolithic libvirtd +%define with_libvirtd 0%{!?_without_libvirtd:1} + +# The hypervisor drivers that run in monolithic libvirtd, or a modular daemon %define with_lxc 0%{!?_without_lxc:1} %define with_libxl 0%{!?_without_libxl:1} %define with_vbox 0%{!?_without_vbox:1} @@ -304,7 +307,9 @@ URL: https://libvirt.org/ %endif Source: https://download.libvirt.org/%{?mainturl}libvirt-%{version}.tar.xz +%if %{with_libvirtd} Requires: libvirt-daemon = %{version}-%{release} +%endif Requires: libvirt-daemon-config-network = %{version}-%{release} Requires: libvirt-daemon-config-nwfilter = %{version}-%{release} %if %{with_libxl} @@ -1181,6 +1186,12 @@ echo "This RPM requires either Fedora >= %{min_fedora} or RHEL >= %{min_rhel}" exit 1 %endif +%if %{with_libvirtd} + %define arg_libvirtd -Ddriver_libvirtd=enabled +%else + %define arg_libvirtd -Ddriver_libvirtd=disabled +%endif + %if %{with_qemu} %define arg_qemu -Ddriver_qemu=enabled %else @@ -1363,7 +1374,7 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec) %{?arg_libxl} \ -Dsasl=enabled \ -Dpolkit=enabled \ - -Ddriver_libvirtd=enabled \ + %{?arg_libvirtd} \ -Ddriver_remote=enabled \ -Ddriver_test=enabled \ %{?arg_esx} \ @@ -1542,6 +1553,14 @@ cp -a $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml \ # libvirt saves these files with mode 600 chmod 600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml + %if ! %{with_libvirtd} +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libvirtd.conf +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/apparmor.d/usr.sbin.libvirtd +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd +rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd.aug +rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd.aug + %endif + %if ! %{with_qemu} rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug @@ -2075,6 +2094,7 @@ exit 0 %doc AUTHORS.rst NEWS.rst README.rst %doc libvirt-docs/* + %if %{with_libvirtd} %files daemon %{_unitdir}/libvirtd.service %{_unitdir}/libvirtd.socket @@ -2091,6 +2111,7 @@ exit 0 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug %attr(0755, root, root) %{_sbindir}/libvirtd %{_mandir}/man8/libvirtd.8* + %endif %files daemon-common %{_unitdir}/virt-guest-shutdown.target -- 2.51.0
participants (1)
-
Jim Fehlig