diff --git a/src/Makefile.am b/src/Makefile.am index 57a9d8ddee..ddc6ec8425 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,8 +35,6 @@ tapset_DATA = endif WITH_DTRACE_PROBES RPC_PROBE_FILES = LOGROTATE_FILES_IN = -SYSTEMD_UNIT_FILES = -SYSTEMD_UNIT_FILES_IN = OPENRC_INIT_FILES = OPENRC_INIT_FILES_IN = OPENRC_CONF_FILES = @@ -282,27 +280,6 @@ endif WITH_LIBVIRTD if WITH_LIBVIRTD -if LIBVIRT_INIT_SCRIPT_SYSTEMD - -SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system - -BUILT_SOURCES += $(SYSTEMD_UNIT_FILES) - -install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig - $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR) - for f in $(SYSTEMD_UNIT_FILES); \ - do \ - $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \ - done - -uninstall-systemd: uninstall-sysconfig - rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%) - rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || : - -INSTALL_DATA_LOCAL += install-systemd -UNINSTALL_LOCAL += uninstall-systemd -endif LIBVIRT_INIT_SCRIPT_SYSTEMD - if LIBVIRT_INIT_SCRIPT_OPENRC OPENRC_INIT_DIR = $(sysconfdir)/init.d diff --git a/src/interface/Makefile.inc.am b/src/interface/Makefile.inc.am index a189105dca..b4bcfb7eca 100644 --- a/src/interface/Makefile.inc.am +++ b/src/interface/Makefile.inc.am @@ -8,16 +8,6 @@ if WITH_INTERFACE SYSCONF_FILES += interface/virtinterfaced.sysconf -SYSTEMD_UNIT_FILES += \ - virtinterfaced.service \ - virtinterfaced.socket \ - virtinterfaced-ro.socket \ - virtinterfaced-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - interface/virtinterfaced.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtinterfaced.init \ $(NULL) @@ -25,23 +15,7 @@ OPENRC_INIT_FILES_IN += \ interface/virtinterfaced.init.in \ $(NULL) -VIRTINTERFACED_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt interface|g' \ - -e 's|[@]service[@]|virtinterfaced|g' \ - -e 's|[@]sockprefix[@]|virtinterfaced|g' \ - $(NULL) - virtinterfaced.init: interface/virtinterfaced.init.in \ $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ - -virtinterfaced.service: interface/virtinterfaced.service.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTINTERFACED_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtinterface%.socket: remote/libvirt%.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTINTERFACED_UNIT_VARS) $< > $@-t && mv $@-t $@ - endif WITH_INTERFACE diff --git a/src/interface/meson.build b/src/interface/meson.build index ce12f67e87..b4cab22a30 100644 --- a/src/interface/meson.build +++ b/src/interface/meson.build @@ -38,4 +38,13 @@ if conf.has('WITH_INTERFACE') virt_daemon_confs += { 'name': 'virtinterfaced', } + + virt_daemon_units += { + 'service': 'virtinterfaced', + 'service_in': files('virtinterfaced.service.in'), + 'name': 'Libvirt interface', + 'sockprefix': 'virtinterfaced', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/libxl/Makefile.inc.am b/src/libxl/Makefile.inc.am index 57271db1be..b29ae98269 100644 --- a/src/libxl/Makefile.inc.am +++ b/src/libxl/Makefile.inc.am @@ -7,16 +7,6 @@ if WITH_LIBXL SYSCONF_FILES += libxl/virtxend.sysconf -SYSTEMD_UNIT_FILES += \ - virtxend.service \ - virtxend.socket \ - virtxend-ro.socket \ - virtxend-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - libxl/virtxend.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtxend.init \ $(NULL) @@ -24,26 +14,9 @@ OPENRC_INIT_FILES_IN += \ libxl/virtxend.init.in \ $(NULL) -LIBXL_UNIT_COND = ConditionPathExists=/proc/xen/capabilities -LIBXL_UNIT_CONFLICT = Conflicts=$(LIBVIRTD_SOCKET_UNIT_FILES) - -VIRTXEND_UNIT_VARS = \ - $(COMMON_UNIT_VARS) \ - -e 's|[@]deps[@]|$(LIBXL_UNIT_CONFLICT)\n$(LIBXL_UNIT_COND)|g' \ - -e 's|[@]name[@]|Libvirt libxl|g' \ - -e 's|[@]service[@]|virtxend|g' \ - -e 's|[@]sockprefix[@]|virtxend|g' \ - $(NULL) - virtxend.init: libxl/virtxend.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtxend.service: libxl/virtxend.service.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTXEND_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtxen%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTXEND_UNIT_VARS) $< > $@-t && mv $@-t $@ - INSTALL_DATA_DIRS += libxl install-data-libxl: diff --git a/src/libxl/meson.build b/src/libxl/meson.build index f9d81d00aa..7f55fc5621 100644 --- a/src/libxl/meson.build +++ b/src/libxl/meson.build @@ -56,4 +56,14 @@ if conf.has('WITH_LIBXL') virt_daemon_confs += { 'name': 'virtxend', } + + virt_daemon_units += { + 'service': 'virtxend', + 'service_in': files('virtxend.service.in'), + 'name': 'Libvirt libxl', + 'sockprefix': 'virtxend', + 'sockets': [ 'main', 'ro', 'admin' ], + 'deps': 'ConditionPathExists=/proc/xen/capabilities', + 'conflicts': true, + } endif diff --git a/src/locking/Makefile.inc.am b/src/locking/Makefile.inc.am index a2a0a4c625..8727efdc9a 100644 --- a/src/locking/Makefile.inc.am +++ b/src/locking/Makefile.inc.am @@ -3,15 +3,6 @@ RPC_PROBE_FILES += $(srcdir)/locking/lock_protocol.x SYSCONF_FILES += locking/virtlockd.sysconf -VIRTLOCKD_UNIT_FILES_IN = \ - locking/virtlockd.service.in \ - locking/virtlockd.socket.in \ - locking/virtlockd-admin.socket.in \ - $(NULL) - -SYSTEMD_UNIT_FILES += $(notdir $(VIRTLOCKD_UNIT_FILES_IN:%.in=%)) -SYSTEMD_UNIT_FILES_IN += $(VIRTLOCKD_UNIT_FILES_IN) - OPENRC_INIT_FILES += \ virtlockd.init \ $(NULL) @@ -46,13 +37,3 @@ endif WITH_LIBVIRTD virtlockd.init: locking/virtlockd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtlockd.service: locking/virtlockd.service.in $(top_builddir)/config.status - $(AM_V_GEN)sed $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtlockd.socket: locking/virtlockd.socket.in $(top_builddir)/config.status - $(AM_V_GEN)sed $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtlockd-admin.socket: locking/virtlockd-admin.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)sed $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ diff --git a/src/locking/meson.build b/src/locking/meson.build index 0681e4fbc4..d35853e799 100644 --- a/src/locking/meson.build +++ b/src/locking/meson.build @@ -134,6 +134,16 @@ if conf.has('WITH_LIBVIRTD') ], } + virt_daemon_units += { + 'service': 'virtlockd', + 'service_in': files('virtlockd.service.in'), + 'name': '', + 'sockprefix': '', + 'sockets': [ 'main', 'admin' ], + 'socket_in': files('virtlockd.socket.in'), + 'socket_admin_in': files('virtlockd-admin.socket.in'), + } + if conf.has('WITH_SANLOCK') virt_helpers += { 'name': 'libvirt_sanlock_helper', diff --git a/src/logging/Makefile.inc.am b/src/logging/Makefile.inc.am index b13f53ffe4..ad07c7b7f7 100644 --- a/src/logging/Makefile.inc.am +++ b/src/logging/Makefile.inc.am @@ -2,15 +2,6 @@ SYSCONF_FILES += logging/virtlogd.sysconf -VIRTLOGD_UNIT_FILES_IN = \ - logging/virtlogd.service.in \ - logging/virtlogd.socket.in \ - logging/virtlogd-admin.socket.in \ - $(NULL) - -SYSTEMD_UNIT_FILES += $(notdir $(VIRTLOGD_UNIT_FILES_IN:%.in=%)) -SYSTEMD_UNIT_FILES_IN += $(VIRTLOGD_UNIT_FILES_IN) - OPENRC_INIT_FILES += \ virtlogd.init \ $(NULL) @@ -20,13 +11,3 @@ OPENRC_INIT_FILES_IN += \ virtlogd.init: logging/virtlogd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtlogd.service: logging/virtlogd.service.in $(top_builddir)/config.status - $(AM_V_GEN)sed $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtlogd.socket: logging/virtlogd.socket.in $(top_builddir)/config.status - $(AM_V_GEN)sed $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtlogd-admin.socket: logging/virtlogd-admin.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)sed $(COMMON_UNIT_VARS) $< > $@-t && mv $@-t $@ diff --git a/src/logging/meson.build b/src/logging/meson.build index dfbef3c12f..f0ca0c5417 100644 --- a/src/logging/meson.build +++ b/src/logging/meson.build @@ -78,6 +78,16 @@ if conf.has('WITH_LIBVIRTD') 'aug': files('test_virtlogd.aug.in'), 'conf': files('virtlogd.conf'), } + + virt_daemon_units += { + 'service': 'virtlogd', + 'service_in': files('virtlogd.service.in'), + 'name': '', + 'sockprefix': '', + 'sockets': [ 'main', 'admin' ], + 'socket_in': files('virtlogd.socket.in'), + 'socket_admin_in': files('virtlogd-admin.socket.in'), + } endif log_inc_dir = include_directories('.') diff --git a/src/lxc/Makefile.inc.am b/src/lxc/Makefile.inc.am index 2692163226..1b3d0a2b4a 100644 --- a/src/lxc/Makefile.inc.am +++ b/src/lxc/Makefile.inc.am @@ -13,16 +13,6 @@ if WITH_LXC SYSCONF_FILES += lxc/virtlxcd.sysconf -SYSTEMD_UNIT_FILES += \ - virtlxcd.service \ - virtlxcd.socket \ - virtlxcd-ro.socket \ - virtlxcd-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - lxc/virtlxcd.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtlxcd.init \ $(NULL) @@ -30,22 +20,9 @@ OPENRC_INIT_FILES_IN += \ lxc/virtlxcd.init.in \ $(NULL) -VIRTLXCD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt lxc|g' \ - -e 's|[@]service[@]|virtlxcd|g' \ - -e 's|[@]sockprefix[@]|virtlxcd|g' \ - $(NULL) - virtlxcd.init: lxc/virtlxcd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtlxcd.service: lxc/virtlxcd.service.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTLXCD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtlxc%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTLXCD_UNIT_VARS) $< > $@-t && mv $@-t $@ - if WITH_DTRACE_PROBES RPC_PROBE_FILES += $(srcdir)/lxc/lxc_monitor_protocol.x endif diff --git a/src/lxc/meson.build b/src/lxc/meson.build index 73df71a8a6..e12c1f6bb1 100644 --- a/src/lxc/meson.build +++ b/src/lxc/meson.build @@ -140,4 +140,13 @@ if conf.has('WITH_LXC') virt_daemon_confs += { 'name': 'virtlxcd', } + + virt_daemon_units += { + 'service': 'virtlxcd', + 'service_in': files('virtlxcd.service.in'), + 'name': 'Libvirt lxc', + 'sockprefix': 'virtlxcd', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/meson.build b/src/meson.build index 404b35e8a1..88b378566f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -183,6 +183,22 @@ virt_daemon_confs = [] virt_aug_dir = datadir / 'augeas' / 'lenses' virt_test_aug_dir = datadir / 'augeas' / 'lenses' / 'tests' +# guest_unit_files: +# guest unit files to install +guest_unit_files = [] + +# virt_daemon_units: +# generate libvirt daemon systemd unit files +# * service - name of the service (required) +# * service_in - service source file (required) +# * name - socket description (required) +# * sockprefix - socket prefix name (required) +# * sockets - array of additional sockets (optional, default [ 'main', 'ro', 'admin' ]) +# * socket_$name_in - additional socket source files (optional, default remote/libvirtd.socket.in ) +# * deps - socket dependencies (optional, default '') +# * conflicts - if the service conflicts with libvirtd (optional, true) +virt_daemon_units = [] + # list subdirectories @@ -678,3 +694,54 @@ foreach data : virt_daemon_confs install_dir: virt_test_aug_dir, ) endforeach + + +if conf.has('WITH_LIBVIRTD') + # Generate systemd service and socket unit files + if init_script == 'systemd' + systemd_unit_dir = prefix / 'lib' / 'systemd' / 'system' + + install_data( + guest_unit_files, + install_dir: systemd_unit_dir, + ) + + foreach unit : virt_daemon_units + unit_conf = configuration_data() + unit_conf.set('runstatedir', runstatedir) + unit_conf.set('sbindir', sbindir) + unit_conf.set('sysconfdir', sysconfdir) + unit_conf.set('name', unit['name']) + unit_conf.set('service', unit['service']) + unit_conf.set('sockprefix', unit['sockprefix']) + unit_conf.set('deps', unit.get('deps', '')) + + configure_file( + input: unit['service_in'], + output: '@0@.service'.format(unit['service']), + configuration: unit_conf, + install: true, + install_dir: systemd_unit_dir, + ) + + foreach socket : unit.get('sockets', [ 'main', 'ro', 'admin' ]) + if socket == 'main' + socket_in_def = 'remote' / 'libvirtd.socket.in' + socket_in = unit.get('socket_in', socket_in_def) + socket_out = '@0@.socket'.format(unit['service']) + else + socket_in_def = 'remote' / 'libvirtd-@0@.socket.in'.format(socket) + socket_in = unit.get('socket_@0@_in'.format(socket), socket_in_def) + socket_out = '@0@-@1@.socket'.format(unit['service'], socket) + endif + configure_file( + input: socket_in, + output: socket_out, + configuration: unit_conf, + install: true, + install_dir: systemd_unit_dir, + ) + endforeach + endforeach + endif +endif diff --git a/src/network/Makefile.inc.am b/src/network/Makefile.inc.am index ee5413e85e..b84057eeb7 100644 --- a/src/network/Makefile.inc.am +++ b/src/network/Makefile.inc.am @@ -7,16 +7,6 @@ STATEFUL_DRIVER_SOURCE_FILES += \ if WITH_NETWORK SYSCONF_FILES += network/virtnetworkd.sysconf -SYSTEMD_UNIT_FILES += \ - virtnetworkd.service \ - virtnetworkd.socket \ - virtnetworkd-ro.socket \ - virtnetworkd-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - network/virtnetworkd.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtnetworkd.init \ $(NULL) @@ -24,24 +14,9 @@ OPENRC_INIT_FILES_IN += \ network/virtnetworkd.init.in \ $(NULL) -VIRTNETWORKD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt network|g' \ - -e 's|[@]service[@]|virtnetworkd|g' \ - -e 's|[@]sockprefix[@]|virtnetworkd|g' \ - $(NULL) - virtnetworkd.init: network/virtnetworkd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtnetworkd.service: network/virtnetworkd.service.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTNETWORKD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtnetwork%.socket: remote/libvirt%.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTNETWORKD_UNIT_VARS) $< > $@-t && mv $@-t $@ - INSTALL_DATA_DIRS += network UUID=$(shell uuidgen 2>/dev/null) diff --git a/src/network/meson.build b/src/network/meson.build index ce946b4d5b..5d4c8a908c 100644 --- a/src/network/meson.build +++ b/src/network/meson.build @@ -57,4 +57,13 @@ if conf.has('WITH_NETWORK') dtrace_gen_objects, ], } + + virt_daemon_units += { + 'service': 'virtnetworkd', + 'service_in': files('virtnetworkd.service.in'), + 'name': 'Libvirt network', + 'sockprefix': 'virtnetworkd', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/node_device/Makefile.inc.am b/src/node_device/Makefile.inc.am index 79491aee57..beff0d6ed0 100644 --- a/src/node_device/Makefile.inc.am +++ b/src/node_device/Makefile.inc.am @@ -14,16 +14,6 @@ STATEFUL_DRIVER_SOURCE_FILES += \ if WITH_NODE_DEVICES SYSCONF_FILES += node_device/virtnodedevd.sysconf -SYSTEMD_UNIT_FILES += \ - virtnodedevd.service \ - virtnodedevd.socket \ - virtnodedevd-ro.socket \ - virtnodedevd-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - node_device/virtnodedevd.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtnodedevd.init \ $(NULL) @@ -31,22 +21,7 @@ OPENRC_INIT_FILES_IN += \ node_device/virtnodedevd.init.in \ $(NULL) -VIRTNODEDEVD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt nodedev|g' \ - -e 's|[@]service[@]|virtnodedevd|g' \ - -e 's|[@]sockprefix[@]|virtnodedevd|g' \ - $(NULL) - virtnodedevd.init: node_device/virtnodedevd.init.in \ $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ - -virtnodedevd.service: node_device/virtnodedevd.service.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTNODEDEVD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtnodedev%.socket: remote/libvirt%.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTNODEDEVD_UNIT_VARS) $< > $@-t && mv $@-t $@ endif WITH_NODE_DEVICES diff --git a/src/node_device/meson.build b/src/node_device/meson.build index 813401eeb7..ee2280f6eb 100644 --- a/src/node_device/meson.build +++ b/src/node_device/meson.build @@ -50,4 +50,13 @@ if conf.has('WITH_NODE_DEVICES') virt_daemon_confs += { 'name': 'virtnodedevd', } + + virt_daemon_units += { + 'service': 'virtnodedevd', + 'service_in': files('virtnodedevd.service.in'), + 'name': 'Libvirt nodedev', + 'sockprefix': 'virtnodedevd', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/nwfilter/Makefile.inc.am b/src/nwfilter/Makefile.inc.am index 2c0d29454b..2384f053ae 100644 --- a/src/nwfilter/Makefile.inc.am +++ b/src/nwfilter/Makefile.inc.am @@ -13,16 +13,6 @@ nwfilterxml_DATA = $(NWFILTER_XML_FILES) SYSCONF_FILES += nwfilter/virtnwfilterd.sysconf -SYSTEMD_UNIT_FILES += \ - virtnwfilterd.service \ - virtnwfilterd.socket \ - virtnwfilterd-ro.socket \ - virtnwfilterd-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - nwfilter/virtnwfilterd.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtnwfilterd.init \ $(NULL) @@ -30,22 +20,7 @@ OPENRC_INIT_FILES_IN += \ nwfilter/virtnwfilterd.init.in \ $(NULL) -VIRTNWFILTERD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt nwfilter|g' \ - -e 's|[@]service[@]|virtnwfilterd|g' \ - -e 's|[@]sockprefix[@]|virtnwfilterd|g' \ - $(NULL) - virtnwfilterd.init: nwfilter/virtnwfilterd.init.in \ $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ - -virtnwfilterd.service: nwfilter/virtnwfilterd.service.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTNWFILTERD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtnwfilter%.socket: remote/libvirt%.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTNWFILTERD_UNIT_VARS) $< > $@-t && mv $@-t $@ endif WITH_NWFILTER diff --git a/src/nwfilter/meson.build b/src/nwfilter/meson.build index bef70a436b..d15506090e 100644 --- a/src/nwfilter/meson.build +++ b/src/nwfilter/meson.build @@ -45,4 +45,13 @@ if conf.has('WITH_NWFILTER') virt_daemon_confs += { 'name': 'virtnwfilterd', } + + virt_daemon_units += { + 'service': 'virtnwfilterd', + 'service_in': files('virtnwfilterd.service.in'), + 'name': 'Libvirt nwfilter', + 'sockprefix': 'virtnwfilterd', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/qemu/Makefile.inc.am b/src/qemu/Makefile.inc.am index 46a7d1e9be..0ea8905ed5 100644 --- a/src/qemu/Makefile.inc.am +++ b/src/qemu/Makefile.inc.am @@ -6,16 +6,6 @@ STATEFUL_DRIVER_SOURCE_FILES += $(addprefix $(srcdir)/,$(QEMU_DRIVER_SOURCES)) if WITH_QEMU SYSCONF_FILES += qemu/virtqemud.sysconf -SYSTEMD_UNIT_FILES += \ - virtqemud.service \ - virtqemud.socket \ - virtqemud-ro.socket \ - virtqemud-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - qemu/virtqemud.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtqemud.init \ $(NULL) @@ -23,22 +13,9 @@ OPENRC_INIT_FILES_IN += \ qemu/virtqemud.init.in \ $(NULL) -VIRTQEMUD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt qemu|g' \ - -e 's|[@]service[@]|virtqemud|g' \ - -e 's|[@]sockprefix[@]|virtqemud|g' \ - $(NULL) - virtqemud.init: qemu/virtqemud.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtqemud.service: qemu/virtqemud.service.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTQEMUD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtqemu%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTQEMUD_UNIT_VARS) $< > $@-t && mv $@-t $@ - INSTALL_DATA_DIRS += qemu install-data-qemu: diff --git a/src/qemu/meson.build b/src/qemu/meson.build index e0ad985cd6..918d4f2cfa 100644 --- a/src/qemu/meson.build +++ b/src/qemu/meson.build @@ -141,4 +141,13 @@ if conf.has('WITH_QEMU') virt_daemon_confs += { 'name': 'virtqemud', } + + virt_daemon_units += { + 'service': 'virtqemud', + 'service_in': files('virtqemud.service.in'), + 'name': 'Libvirt qemu', + 'sockprefix': 'virtqemud', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/remote/Makefile.inc.am b/src/remote/Makefile.inc.am index dfea32ff21..159bc5e01b 100644 --- a/src/remote/Makefile.inc.am +++ b/src/remote/Makefile.inc.am @@ -12,41 +12,6 @@ SYSCONF_FILES += \ remote/virtproxyd.sysconf \ $(NULL) -LIBVIRTD_SOCKET_UNIT_FILES_IN = \ - remote/libvirtd.socket.in \ - remote/libvirtd-ro.socket.in \ - remote/libvirtd-admin.socket.in \ - remote/libvirtd-tcp.socket.in \ - remote/libvirtd-tls.socket.in \ - $(NULL) - -LIBVIRTD_SOCKET_UNIT_FILES = $(notdir $(LIBVIRTD_SOCKET_UNIT_FILES_IN:%.in=%)) - -LIBVIRTD_UNIT_FILES_IN = \ - remote/libvirtd.service.in \ - $(LIBVIRTD_SOCKET_UNIT_FILES_IN) \ - $(NULL) - -VIRTPROXYD_UNIT_FILES_IN = \ - remote/virtproxyd.service.in \ - $(NULL) - -GUEST_UNIT_FILES_IN = \ - remote/virt-guest-shutdown.target.in \ - $(NULL) - - -SYSTEMD_UNIT_FILES += \ - $(notdir $(LIBVIRTD_UNIT_FILES_IN:%.in=%)) \ - $(notdir $(LIBVIRTD_UNIT_FILES_IN:remote/libvirtd%.in=remote/virtproxyd%)) \ - $(notdir $(GUEST_UNIT_FILES_IN:%.in=%)) \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - $(LIBVIRTD_UNIT_FILES_IN) \ - $(VIRTPROXYD_UNIT_FILES_IN) \ - $(GUEST_UNIT_FILES_IN) \ - $(NULL) - OPENRC_INIT_FILES += \ libvirtd.init \ virtproxyd.init \ @@ -136,14 +101,6 @@ INSTALL_DATA_LOCAL += install-sasl UNINSTALL_LOCAL += uninstall-sasl endif WITH_SASL -LIBVIRTD_UNIT_VARS = \ - $(COMMON_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt|g' \ - -e 's|[@]service[@]|libvirtd|g' \ - -e 's|[@]sockprefix[@]|libvirt|g' \ - -e 's|[@]deps[@]||g' \ - $(NULL) - LIBVIRTD_INIT_VARS = \ $(COMMON_UNIT_VARS) @@ -155,36 +112,8 @@ LIBVIRTD_INIT_VARS += \ -e 's|[@]NEED_FIREWALLD[@]||g' endif ! WITH_FIREWALLD -VIRTD_UNIT_VARS = \ - $(COMMON_UNIT_VARS) \ - -e 's|[@]deps[@]|Conflicts=$(LIBVIRTD_SOCKET_UNIT_FILES)|g' \ - $(NULL) - -VIRTPROXYD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt proxy|g' \ - -e 's|[@]service[@]|virtproxyd|g' \ - -e 's|[@]sockprefix[@]|libvirt|g' \ - $(NULL) - libvirtd.init: remote/libvirtd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ virtproxyd.init: remote/virtproxyd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ - -libvirtd.service: remote/libvirtd.service.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(LIBVIRTD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -libvirt%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(LIBVIRTD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtproxyd.service: remote/virtproxyd.service.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTPROXYD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtproxy%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTPROXYD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virt-guest-shutdown.target: remote/virt-guest-shutdown.target.in \ - $(top_builddir)/config.status - $(AM_V_GEN)cp $< $@ diff --git a/src/remote/meson.build b/src/remote/meson.build index 3151ff5c71..cb048e7f62 100644 --- a/src/remote/meson.build +++ b/src/remote/meson.build @@ -108,6 +108,16 @@ foreach name : libvirt_conf_files set_variable(name['virtd'].underscorify(), tmp) endforeach +libvirtd_socket_unit_files = [ + 'libvirtd.socket', + 'libvirtd-ro.socket', + 'libvirtd-admin.socket', + 'libvirtd-tcp.socket', + 'libvirtd-tls.socket', +] + +libvirtd_socket_conflicts = ' '.join(libvirtd_socket_unit_files) + if conf.has('WITH_REMOTE') remote_driver_lib = static_library( 'virt_remote_driver', @@ -129,6 +139,8 @@ if conf.has('WITH_REMOTE') libvirt_libs += remote_driver_lib if conf.has('WITH_LIBVIRTD') + guest_unit_files += files('virt-guest-shutdown.target') + virt_daemons += { 'name': 'libvirtd', 'c_args': [ @@ -144,6 +156,14 @@ if conf.has('WITH_REMOTE') 'with_ip': true, } + virt_daemon_units += { + 'service': 'libvirtd', + 'service_in': files('libvirtd.service.in'), + 'name': 'Libvirt', + 'sockprefix': 'libvirtd', + 'sockets': [ 'main', 'ro', 'admin', 'tcp', 'tls' ], + } + virt_daemons += { 'name': 'virtproxyd', 'c_args': [ @@ -158,6 +178,15 @@ if conf.has('WITH_REMOTE') 'name': 'virtproxyd', 'with_ip': true, } + + virt_daemon_units += { + 'service': 'virtproxyd', + 'service_in': files('virtproxyd.service.in'), + 'name': 'Libvirt proxy', + 'sockprefix': 'libvirtd', + 'sockets': [ 'main', 'ro', 'admin', 'tcp', 'tls' ], + 'deps': libvirtd_socket_conflicts, + } endif endif diff --git a/src/remote/virt-guest-shutdown.target.in b/src/remote/virt-guest-shutdown.target similarity index 100% rename from src/remote/virt-guest-shutdown.target.in rename to src/remote/virt-guest-shutdown.target diff --git a/src/secret/Makefile.inc.am b/src/secret/Makefile.inc.am index 648648c260..3aafe7a6a5 100644 --- a/src/secret/Makefile.inc.am +++ b/src/secret/Makefile.inc.am @@ -7,16 +7,6 @@ STATEFUL_DRIVER_SOURCE_FILES += \ if WITH_SECRETS SYSCONF_FILES += secret/virtsecretd.sysconf -SYSTEMD_UNIT_FILES += \ - virtsecretd.service \ - virtsecretd.socket \ - virtsecretd-ro.socket \ - virtsecretd-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - secret/virtsecretd.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtsecretd.init \ $(NULL) @@ -24,22 +14,7 @@ OPENRC_INIT_FILES_IN += \ secret/virtsecretd.init.in \ $(NULL) -VIRTSECRETD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt secret|g' \ - -e 's|[@]service[@]|virtsecretd|g' \ - -e 's|[@]sockprefix[@]|virtsecretd|g' \ - $(NULL) - virtsecretd.init: secret/virtsecretd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtsecretd.service: secret/virtsecretd.service.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTSECRETD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtsecret%.socket: remote/libvirt%.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTSECRETD_UNIT_VARS) $< > $@-t && mv $@-t $@ - endif WITH_SECRETS diff --git a/src/secret/meson.build b/src/secret/meson.build index d6bc4ad61a..fc1984e480 100644 --- a/src/secret/meson.build +++ b/src/secret/meson.build @@ -27,4 +27,13 @@ if conf.has('WITH_SECRETS') virt_daemon_confs += { 'name': 'virtsecretd', } + + virt_daemon_units += { + 'service': 'virtsecretd', + 'service_in': files('virtsecretd.service.in'), + 'name': 'Libvirt secret', + 'sockprefix': 'virtsecretd', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/storage/Makefile.inc.am b/src/storage/Makefile.inc.am index 1ac4da0216..3b4a13032a 100644 --- a/src/storage/Makefile.inc.am +++ b/src/storage/Makefile.inc.am @@ -7,16 +7,6 @@ STATEFUL_DRIVER_SOURCE_FILES += \ if WITH_STORAGE SYSCONF_FILES += storage/virtstoraged.sysconf -SYSTEMD_UNIT_FILES += \ - virtstoraged.service \ - virtstoraged.socket \ - virtstoraged-ro.socket \ - virtstoraged-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - storage/virtstoraged.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtstoraged.init \ $(NULL) @@ -24,22 +14,7 @@ OPENRC_INIT_FILES_IN += \ storage/virtstoraged.init.in \ $(NULL) -VIRTSTORAGED_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt storage|g' \ - -e 's|[@]service[@]|virtstoraged|g' \ - -e 's|[@]sockprefix[@]|virtstoraged|g' \ - $(NULL) - virtstoraged.init: storage/virtstoraged.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtstoraged.service: storage/virtstoraged.service.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTSTORAGED_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtstorage%.socket: remote/libvirt%.socket.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTSTORAGED_UNIT_VARS) $< > $@-t && mv $@-t $@ - endif WITH_STORAGE diff --git a/src/storage/meson.build b/src/storage/meson.build index 2535ccfa3a..1f42206c98 100644 --- a/src/storage/meson.build +++ b/src/storage/meson.build @@ -125,6 +125,15 @@ if conf.has('WITH_STORAGE') virt_daemon_confs += { 'name': 'virtstoraged', } + + virt_daemon_units += { + 'service': 'virtstoraged', + 'service_in': files('virtstoraged.service.in'), + 'name': 'Libvirt storage', + 'sockprefix': 'virtstoraged', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif if conf.has('WITH_STORAGE_DISK') diff --git a/src/vbox/Makefile.inc.am b/src/vbox/Makefile.inc.am index 62c7dc98a0..4968777858 100644 --- a/src/vbox/Makefile.inc.am +++ b/src/vbox/Makefile.inc.am @@ -8,16 +8,6 @@ DRIVER_SOURCE_FILES += \ if WITH_VBOX SYSCONF_FILES += vbox/virtvboxd.sysconf -SYSTEMD_UNIT_FILES += \ - virtvboxd.service \ - virtvboxd.socket \ - virtvboxd-ro.socket \ - virtvboxd-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - vbox/virtvboxd.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtvboxd.init \ $(NULL) @@ -25,20 +15,7 @@ OPENRC_INIT_FILES_IN += \ vbox/virtvboxd.init.in \ $(NULL) -VIRTVBOXD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt vbox|g' \ - -e 's|[@]service[@]|virtvboxd|g' \ - -e 's|[@]sockprefix[@]|virtvboxd|g' \ - $(NULL) - virtvboxd.init: vbox/virtvboxd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtvboxd.service: vbox/virtvboxd.service.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTVBOXD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtvbox%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTVBOXD_UNIT_VARS) $< > $@-t && mv $@-t $@ - endif WITH_VBOX diff --git a/src/vbox/meson.build b/src/vbox/meson.build index 05c0867c2d..f763c2b4ce 100644 --- a/src/vbox/meson.build +++ b/src/vbox/meson.build @@ -50,4 +50,13 @@ if conf.has('WITH_VBOX') virt_daemon_confs += { 'name': 'virtvboxd', } + + virt_daemon_units += { + 'service': 'virtvboxd', + 'service_in': files('virtvboxd.service.in'), + 'name': 'Libvirt vbox', + 'sockprefix': 'virtvboxd', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif diff --git a/src/vz/Makefile.inc.am b/src/vz/Makefile.inc.am index ffc684d76d..5889d0170a 100644 --- a/src/vz/Makefile.inc.am +++ b/src/vz/Makefile.inc.am @@ -7,16 +7,6 @@ STATEFUL_DRIVER_SOURCE_FILES += $(addprefix $(srcdir)/,$(VZ_DRIVER_SOURCES)) if WITH_VZ SYSCONF_FILES += vz/virtvzd.sysconf -SYSTEMD_UNIT_FILES += \ - virtvzd.service \ - virtvzd.socket \ - virtvzd-ro.socket \ - virtvzd-admin.socket \ - $(NULL) -SYSTEMD_UNIT_FILES_IN += \ - vz/virtvzd.service.in \ - $(NULL) - OPENRC_INIT_FILES += \ virtvzd.init \ $(NULL) @@ -24,20 +14,7 @@ OPENRC_INIT_FILES_IN += \ vz/virtvzd.init.in \ $(NULL) -VIRTVZD_UNIT_VARS = \ - $(VIRTD_UNIT_VARS) \ - -e 's|[@]name[@]|Libvirt vz|g' \ - -e 's|[@]service[@]|virtvzd|g' \ - -e 's|[@]sockprefix[@]|virtvzd|g' \ - $(NULL) - virtvzd.init: vz/virtvzd.init.in $(top_builddir)/config.status $(AM_V_GEN)$(SED) $(LIBVIRTD_INIT_VARS) $< > $@-t && mv $@-t $@ -virtvzd.service: vz/virtvzd.service.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTVZD_UNIT_VARS) $< > $@-t && mv $@-t $@ - -virtvz%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status - $(AM_V_GEN)$(SED) $(VIRTVZD_UNIT_VARS) $< > $@-t && mv $@-t $@ - endif WITH_VZ diff --git a/src/vz/meson.build b/src/vz/meson.build index a4aafeca57..a6521748ae 100644 --- a/src/vz/meson.build +++ b/src/vz/meson.build @@ -42,4 +42,13 @@ if conf.has('WITH_VZ') virt_daemon_confs += { 'name': 'virtvzd', } + + virt_daemon_units += { + 'service': 'virtvzd', + 'service_in': files('virtvzd.service.in'), + 'name': 'Libvirt vz', + 'sockprefix': 'virtvzd', + 'sockets': [ 'main', 'ro', 'admin' ], + 'conflicts': true, + } endif