]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
meson: src: generate systemd unit files for libvirt daemons
authorPavel Hrdina <phrdina@redhat.com>
Mon, 27 Jul 2020 07:03:25 +0000 (09:03 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Mon, 3 Aug 2020 07:27:05 +0000 (09:27 +0200)
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
31 files changed:
src/Makefile.am
src/interface/Makefile.inc.am
src/interface/meson.build
src/libxl/Makefile.inc.am
src/libxl/meson.build
src/locking/Makefile.inc.am
src/locking/meson.build
src/logging/Makefile.inc.am
src/logging/meson.build
src/lxc/Makefile.inc.am
src/lxc/meson.build
src/meson.build
src/network/Makefile.inc.am
src/network/meson.build
src/node_device/Makefile.inc.am
src/node_device/meson.build
src/nwfilter/Makefile.inc.am
src/nwfilter/meson.build
src/qemu/Makefile.inc.am
src/qemu/meson.build
src/remote/Makefile.inc.am
src/remote/meson.build
src/remote/virt-guest-shutdown.target [moved from src/remote/virt-guest-shutdown.target.in with 100% similarity]
src/secret/Makefile.inc.am
src/secret/meson.build
src/storage/Makefile.inc.am
src/storage/meson.build
src/vbox/Makefile.inc.am
src/vbox/meson.build
src/vz/Makefile.inc.am
src/vz/meson.build

index 57a9d8ddee019364f81c814b1b6cbf93e539ba84..ddc6ec84251dcf74f2bf5a1f3133bd045b213008 100644 (file)
@@ -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
index a189105dcac96b3fb5251e692634b56a73b2ec8e..b4bcfb7ecaa95151ac81a80de5d322277cc1309d 100644 (file)
@@ -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
index ce12f67e87d23afd86885692106fea84d2379f62..b4cab22a3073f63f0ed2ab7b7c89dbcb2aab6e77 100644 (file)
@@ -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
index 57271db1be8c8471df22ae0a891285fb7378eac4..b29ae98269c91659ef7debc285305e40c9b415b6 100644 (file)
@@ -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:
index f9d81d00aa4210797fc53b1cb39574818e6bc61e..7f55fc56218d104d5f05b95deb0d85fb5a02771c 100644 (file)
@@ -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
index a2a0a4c6250b9707a84c0f0960adb729c3607a26..8727efdc9a585a0acb2451db3dcf4048d5990c78 100644 (file)
@@ -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 $@
index 0681e4fbc4dc814083b50958fb5b4b90c86a0f18..d35853e799bd916a697e782c9413e8d8694e4aec 100644 (file)
@@ -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',
index b13f53ffe41c5abb0dcf2cc090d2c2265b3195d3..ad07c7b7f77ea147e1b59ae51bbbe8cfdc0a9769 100644 (file)
@@ -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 $@
index dfbef3c12f46306bbcf37b4156b33967507e4516..f0ca0c5417420a5618b6f7162a5af2d966e36624 100644 (file)
@@ -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('.')
index 2692163226ce29449c3b8cf8fe56821d5e05c700..1b3d0a2b4a845c29597381858259b613e9248acc 100644 (file)
@@ -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
index 73df71a8a640623a39cb99f65cf026bd62fb8560..e12c1f6bb122ae9ec2acdacc38167cbd60ab247e 100644 (file)
@@ -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
index 404b35e8a12b6020d736692e45487c43c8c5de01..88b378566f4ddf6bfc64a3e83edf7c4c20819b75 100644 (file)
@@ -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
index ee5413e85e1dc10a91370626c5de66d0347e238b..b84057eeb720409fc28263affa7342d8cb2ae460 100644 (file)
@@ -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)
index ce946b4d5b5a4c056f85e942a95db85e114e6ac5..5d4c8a908cf7aeac18e8ad59b88782ae372f3d87 100644 (file)
@@ -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
index 79491aee57720ea8472e5f4e62fcf494d60753ac..beff0d6ed04f9185ab048d193f9c5a4f8fa04dcb 100644 (file)
@@ -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
index 813401eeb7294c7318fcb92adfaece5f5d0f2cdf..ee2280f6ebb3ad47924add40aa135871cf6899b1 100644 (file)
@@ -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
index 2c0d29454bb58288c1ecacacaea82c4c2223fcff..2384f053aeb7541e9d72015432a363e643cd15d1 100644 (file)
@@ -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
index bef70a436b3e1636301288a7fb90cd7f864d7437..d15506090e21e2512b59ef0ed0e0c32c960ab182 100644 (file)
@@ -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
index 46a7d1e9be261511a6903d99bf304d221899f184..0ea8905ed577eb54d59c4cb801f03d9b058ebff8 100644 (file)
@@ -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:
index e0ad985cd6a7d6959593d2711ef41fb65a353651..918d4f2cfa09934c9dffd8cd3327fff1f82d09a1 100644 (file)
@@ -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
index dfea32ff21ed0bd54554815d4868d36c2aa3f96f..159bc5e01bed482ebaadb3d021baf831ae445353 100644 (file)
@@ -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 $< $@
index 3151ff5c71f3b4a8f9126f004b7042ee59d17883..cb048e7f62fc0740cdf0b09d230c898bf65a0449 100644 (file)
@@ -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
 
index 648648c260c089d8ce2eccf13ccf7baf638ece91..3aafe7a6a5d5617c77e82387359b890314cbc42b 100644 (file)
@@ -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
index d6bc4ad61ae2b09cbc47f3967d60275f0416a5d8..fc1984e4806f3201c2bf47a889c577e4c57192bf 100644 (file)
@@ -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
index 1ac4da02164c08ab065f23bfbda421bdc73c8467..3b4a13032aa9d947b64dcf70d85a31bace935b74 100644 (file)
@@ -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
index 2535ccfa3a1b1d73aba562ed0b4ffa659bc9de5e..1f42206c9803081348935755cfb33d9c0c0b764b 100644 (file)
@@ -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')
index 62c7dc98a0c68693a0186369bfcee460f35cc812..4968777858cdadb8d5cb7a3ba81cb27a83856dc4 100644 (file)
@@ -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
index 05c0867c2dd2d5f298a6b43a7dff3e81d843a19d..f763c2b4cea29a392366a8d7c0fa8714754719ad 100644 (file)
@@ -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
index ffc684d76de3b7a80105077f24d70550eb628db6..5889d0170a403f942c5be564faa72b6d6ee3944d 100644 (file)
@@ -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
index a4aafeca576075b31d502da1a025695b04ab5992..a6521748aea1061914d8986d85553553005eabba 100644 (file)
@@ -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