sysconfig files are owned by the admin of the host. They have the liberty to put anything they want into these files. This makes it difficult to provide different built-in defaults. Remove the sysconfig file and place the current desired default into the service file. Local customizations can now go either into /etc/sysconfig/name or /etc/systemd/system/name.service.d/my-knobs.conf Attempt to handle upgrades in libvirt.spec. Dirty files which are marked as %config will be renamed to file.rpmsave. To restore them automatically, move stale .rpmsave files away, and catch any new rpmsave files in %posttrans. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> --- docs/daemons.rst | 21 ++++++++ docs/remote.html.in | 6 +-- libvirt.spec.in | 69 +++++++++++++++++++------ src/ch/meson.build | 5 -- src/ch/virtchd.service.in | 1 + src/ch/virtchd.sysconf | 3 -- src/interface/meson.build | 5 -- src/interface/virtinterfaced.service.in | 1 + src/interface/virtinterfaced.sysconf | 3 -- src/libxl/meson.build | 5 -- src/libxl/virtxend.service.in | 1 + src/libxl/virtxend.sysconf | 3 -- src/locking/meson.build | 5 -- src/locking/virtlockd.service.in | 1 + src/locking/virtlockd.sysconf | 3 -- src/logging/meson.build | 5 -- src/logging/virtlogd.sysconf | 3 -- src/lxc/meson.build | 5 -- src/lxc/virtlxcd.service.in | 1 + src/lxc/virtlxcd.sysconf | 3 -- src/meson.build | 16 ------ src/network/meson.build | 5 -- src/network/virtnetworkd.service.in | 1 + src/network/virtnetworkd.sysconf | 3 -- src/node_device/meson.build | 5 -- src/node_device/virtnodedevd.service.in | 1 + src/node_device/virtnodedevd.sysconf | 3 -- src/nwfilter/meson.build | 5 -- src/nwfilter/virtnwfilterd.service.in | 1 + src/nwfilter/virtnwfilterd.sysconf | 3 -- src/qemu/meson.build | 5 -- src/qemu/virtqemud.service.in | 7 +++ src/qemu/virtqemud.sysconf | 12 ----- src/remote/libvirtd.service.in | 7 +++ src/remote/libvirtd.sysconf | 21 -------- src/remote/meson.build | 10 ---- src/remote/virtproxyd.service.in | 1 + src/remote/virtproxyd.sysconf | 3 -- src/secret/meson.build | 5 -- src/secret/virtsecretd.service.in | 1 + src/secret/virtsecretd.sysconf | 3 -- src/storage/meson.build | 5 -- src/storage/virtstoraged.service.in | 1 + src/storage/virtstoraged.sysconf | 3 -- src/vbox/meson.build | 5 -- src/vbox/virtvboxd.service.in | 1 + src/vbox/virtvboxd.sysconf | 3 -- src/vz/meson.build | 5 -- src/vz/virtvzd.service.in | 1 + src/vz/virtvzd.sysconf | 3 -- tools/libvirt-guests.sh.in | 40 ++++++++++++++ tools/libvirt-guests.sysconf | 50 ------------------ tools/meson.build | 6 --- 53 files changed, 145 insertions(+), 245 deletions(-) delete mode 100644 src/ch/virtchd.sysconf delete mode 100644 src/interface/virtinterfaced.sysconf delete mode 100644 src/libxl/virtxend.sysconf delete mode 100644 src/locking/virtlockd.sysconf delete mode 100644 src/logging/virtlogd.sysconf delete mode 100644 src/lxc/virtlxcd.sysconf delete mode 100644 src/network/virtnetworkd.sysconf delete mode 100644 src/node_device/virtnodedevd.sysconf delete mode 100644 src/nwfilter/virtnwfilterd.sysconf delete mode 100644 src/qemu/virtqemud.sysconf delete mode 100644 src/remote/libvirtd.sysconf delete mode 100644 src/remote/virtproxyd.sysconf delete mode 100644 src/secret/virtsecretd.sysconf delete mode 100644 src/storage/virtstoraged.sysconf delete mode 100644 src/vbox/virtvboxd.sysconf delete mode 100644 src/vz/virtvzd.sysconf delete mode 100644 tools/libvirt-guests.sysconf diff --git a/docs/daemons.rst b/docs/daemons.rst index c8ae3b0cef..1f9bc34260 100644 --- a/docs/daemons.rst +++ b/docs/daemons.rst @@ -686,3 +686,24 @@ socket unit names into the service. When using these old versions, the ``unix_sock_dir`` setting in ``virtlockd.conf`` must be changed in lock-step with the equivalent setting in the unit files to ensure that ``virtlockd`` can identify the sockets. + +Changing command line options for daemons +========================================= + +Two ways exist to override the defaults in the provided service files: +either a systemd "drop-in" configuration file, or a ``/etc/sysconfig/$daemon`` +file must be created. For example, to change the command line option +for a debug session of ``libvirtd``, create a file +``/etc/systemd/system/libvirtd.service.d/debug.conf`` with the following content: + + :: + + [Unit] + Description=Virtualization daemon, with override from debug.conf + + [Service] + Environment=G_DEBUG=fatal-warnings + Environment=LIBVIRTD_ARGS="--listen --verbose" + +After changes to systemd "drop-in" configuration files it is required to run +``systemctl daemon-reload``. diff --git a/docs/remote.html.in b/docs/remote.html.in index efdb2b3253..47fb2d4df3 100644 --- a/docs/remote.html.in +++ b/docs/remote.html.in @@ -138,9 +138,9 @@ Blank lines and comments beginning with <code>#</code> are ignored. <td> 1 (on) </td> <td> Listen for secure TLS connections on the public TCP/IP port. - Note: it is also necessary to start the server in listening mode by - running it with --listen or editing /etc/sysconfig/libvirtd by uncommenting the LIBVIRTD_ARGS="--listen" line - to cause the server to come up in listening mode whenever it is started. + Note: it is also necessary to start the server in listening mode + by running it with --listen or adding a LIBVIRTD_ARGS="--listen" + line to /etc/sysconfig/libvirtd. </td> </tr> <tr> diff --git a/libvirt.spec.in b/libvirt.spec.in index 0180b4200c..dd319453fa 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -206,6 +206,24 @@ %define tls_priority "@LIBVIRT,SYSTEM" +# libvirt 8.0.0 stops distributing any sysconfig files. +# If the user has customized their sysconfig file, +# the RPM upgrade path will rename it to .rpmsave +# because the file is no longer managed by RPM. +# To prevent a regression we rename it back after the +# transaction to preserve the user's modifications +%define libvirt_sysconfig_pre() \ + for sc in %{?*} ; do \ + test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \ + mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}.rpmsave.old" ; \ + done \ + %{nil} +%define libvirt_sysconfig_posttrans() \ + for sc in %{?*} ; do \ + test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \ + mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}" ; \ + done \ + %{nil} Summary: Library providing a simple virtualization API Name: libvirt @@ -1294,6 +1312,7 @@ fi \ %define libvirt_daemon_systemd_preun_priv() %systemd_preun %1.service %1-admin.socket %1.socket %pre daemon +%libvirt_sysconfig_pre libvirtd virtproxyd virtlogd virtlockd libvirt-guests # 'libvirt' group is just to allow password-less polkit access to # libvirtd. The uid number is irrelevant, so we use dynamic allocation # described at the above link. @@ -1342,6 +1361,7 @@ if [ $1 -ge 1 ] ; then fi %posttrans daemon +%libvirt_sysconfig_posttrans libvirtd virtproxyd virtlogd virtlockd libvirt-guests if test %libvirt_daemon_needs_restart libvirtd then # See if user has previously modified their install to @@ -1382,6 +1402,9 @@ fi %libvirt_daemon_finish_restart libvirtd +%pre daemon-driver-network +%libvirt_sysconfig_pre virtnetworkd + %post daemon-driver-network %if %{with_firewalld_zone} %firewalld_reload @@ -1401,8 +1424,11 @@ fi %endif %posttrans daemon-driver-network +%libvirt_sysconfig_posttrans virtnetworkd %libvirt_daemon_perform_restart virtnetworkd +%pre daemon-driver-nwfilter +%libvirt_sysconfig_pre virtnwfilterd %post daemon-driver-nwfilter %if %{with_modular_daemons} @@ -1414,8 +1440,11 @@ fi %libvirt_daemon_systemd_preun virtnwfilterd %posttrans daemon-driver-nwfilter +%libvirt_sysconfig_posttrans virtnwfilterd %libvirt_daemon_perform_restart virtnwfilterd +%pre daemon-driver-nodedev +%libvirt_sysconfig_pre virtnodedevd %post daemon-driver-nodedev %if %{with_modular_daemons} @@ -1427,8 +1456,11 @@ fi %libvirt_daemon_systemd_preun virtnodedevd %posttrans daemon-driver-nodedev +%libvirt_sysconfig_posttrans virtnodedevd %libvirt_daemon_perform_restart virtnodedevd +%pre daemon-driver-interface +%libvirt_sysconfig_pre virtinterfaced %post daemon-driver-interface %if %{with_modular_daemons} @@ -1440,8 +1472,11 @@ fi %libvirt_daemon_systemd_preun virtinterfaced %posttrans daemon-driver-interface +%libvirt_sysconfig_posttrans virtinterfaced %libvirt_daemon_perform_restart virtinterfaced +%pre daemon-driver-secret +%libvirt_sysconfig_pre virtsecretd %post daemon-driver-secret %if %{with_modular_daemons} @@ -1453,9 +1488,13 @@ fi %libvirt_daemon_systemd_preun virtsecretd %posttrans daemon-driver-secret +%libvirt_sysconfig_posttrans virtsecretd %libvirt_daemon_perform_restart virtsecretd +%pre daemon-driver-storage +%libvirt_sysconfig_pre virtstoraged + %post daemon-driver-storage %if %{with_modular_daemons} %libvirt_daemon_systemd_post virtstoraged @@ -1466,11 +1505,13 @@ fi %libvirt_daemon_systemd_preun virtstoraged %posttrans daemon-driver-storage +%libvirt_sysconfig_posttrans virtstoraged %libvirt_daemon_perform_restart virtstoraged %if %{with_qemu} %pre daemon-driver-qemu +%libvirt_sysconfig_pre virtqemud # We want soft static allocation of well-known ids, as disk images # are commonly shared across NFS mounts by id rather than name; see # https://fedoraproject.org/wiki/Packaging:UsersAndGroups @@ -1495,11 +1536,15 @@ exit 0 %libvirt_daemon_systemd_preun virtqemud %posttrans daemon-driver-qemu +%libvirt_sysconfig_posttrans virtqemud %libvirt_daemon_perform_restart virtqemud %endif %if %{with_lxc} +%pre daemon-driver-lxc +%libvirt_sysconfig_pre virtlxcd + %post daemon-driver-lxc %if %{with_modular_daemons} %libvirt_daemon_systemd_post virtlxcd @@ -1510,6 +1555,7 @@ exit 0 %libvirt_daemon_systemd_preun virtlxcd %posttrans daemon-driver-lxc +%libvirt_sysconfig_posttrans virtlxcd %libvirt_daemon_perform_restart virtlxcd %endif @@ -1521,10 +1567,14 @@ exit 0 %endif %libvirt_daemon_schedule_restart virtvboxd +%pre daemon-driver-vbox +%libvirt_sysconfig_pre virtvboxd + %preun daemon-driver-vbox %libvirt_daemon_systemd_preun virtvboxd %posttrans daemon-driver-vbox +%libvirt_sysconfig_posttrans virtvboxd %libvirt_daemon_perform_restart virtvboxd %endif @@ -1536,10 +1586,14 @@ exit 0 %endif %libvirt_daemon_schedule_restart virtxend +%pre daemon-driver-libxl +%libvirt_sysconfig_pre virtxend + %preun daemon-driver-libxl %libvirt_daemon_systemd_preun virtxend %posttrans daemon-driver-libxl +%libvirt_sysconfig_posttrans virtxend %libvirt_daemon_perform_restart virtxend %endif @@ -1642,16 +1696,11 @@ exit 0 %{_unitdir}/virtlockd.socket %{_unitdir}/virtlockd-admin.socket %{_unitdir}/libvirt-guests.service -%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd -%config(noreplace) %{_sysconfdir}/sysconfig/virtproxyd -%config(noreplace) %{_sysconfdir}/sysconfig/virtlogd -%config(noreplace) %{_sysconfdir}/sysconfig/virtlockd %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf %config(noreplace) %{_sysconfdir}/libvirt/virtproxyd.conf %config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf %config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf -%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests %config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd @@ -1723,7 +1772,6 @@ exit 0 %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml %files daemon-driver-interface -%config(noreplace) %{_sysconfdir}/sysconfig/virtinterfaced %config(noreplace) %{_sysconfdir}/libvirt/virtinterfaced.conf %{_datadir}/augeas/lenses/virtinterfaced.aug %{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug @@ -1736,7 +1784,6 @@ exit 0 %{_mandir}/man8/virtinterfaced.8* %files daemon-driver-network -%config(noreplace) %{_sysconfdir}/sysconfig/virtnetworkd %config(noreplace) %{_sysconfdir}/libvirt/virtnetworkd.conf %{_datadir}/augeas/lenses/virtnetworkd.aug %{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug @@ -1760,7 +1807,6 @@ exit 0 %endif %files daemon-driver-nodedev -%config(noreplace) %{_sysconfdir}/sysconfig/virtnodedevd %config(noreplace) %{_sysconfdir}/libvirt/virtnodedevd.conf %{_datadir}/augeas/lenses/virtnodedevd.aug %{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug @@ -1773,7 +1819,6 @@ exit 0 %{_mandir}/man8/virtnodedevd.8* %files daemon-driver-nwfilter -%config(noreplace) %{_sysconfdir}/sysconfig/virtnwfilterd %config(noreplace) %{_sysconfdir}/libvirt/virtnwfilterd.conf %{_datadir}/augeas/lenses/virtnwfilterd.aug %{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug @@ -1788,7 +1833,6 @@ exit 0 %{_mandir}/man8/virtnwfilterd.8* %files daemon-driver-secret -%config(noreplace) %{_sysconfdir}/sysconfig/virtsecretd %config(noreplace) %{_sysconfdir}/libvirt/virtsecretd.conf %{_datadir}/augeas/lenses/virtsecretd.aug %{_datadir}/augeas/lenses/tests/test_virtsecretd.aug @@ -1803,7 +1847,6 @@ exit 0 %files daemon-driver-storage %files daemon-driver-storage-core -%config(noreplace) %{_sysconfdir}/sysconfig/virtstoraged %config(noreplace) %{_sysconfdir}/libvirt/virtstoraged.conf %{_datadir}/augeas/lenses/virtstoraged.aug %{_datadir}/augeas/lenses/tests/test_virtstoraged.aug @@ -1861,7 +1904,6 @@ exit 0 %if %{with_qemu} %files daemon-driver-qemu -%config(noreplace) %{_sysconfdir}/sysconfig/virtqemud %config(noreplace) %{_sysconfdir}/libvirt/virtqemud.conf %config(noreplace) %{_prefix}/lib/sysctl.d/60-qemu-postcopy-migration.conf %{_datadir}/augeas/lenses/virtqemud.aug @@ -1891,7 +1933,6 @@ exit 0 %if %{with_lxc} %files daemon-driver-lxc -%config(noreplace) %{_sysconfdir}/sysconfig/virtlxcd %config(noreplace) %{_sysconfdir}/libvirt/virtlxcd.conf %{_datadir}/augeas/lenses/virtlxcd.aug %{_datadir}/augeas/lenses/tests/test_virtlxcd.aug @@ -1914,7 +1955,6 @@ exit 0 %if %{with_libxl} %files daemon-driver-libxl -%config(noreplace) %{_sysconfdir}/sysconfig/virtxend %config(noreplace) %{_sysconfdir}/libvirt/virtxend.conf %{_datadir}/augeas/lenses/virtxend.aug %{_datadir}/augeas/lenses/tests/test_virtxend.aug @@ -1937,7 +1977,6 @@ exit 0 %if %{with_vbox} %files daemon-driver-vbox -%config(noreplace) %{_sysconfdir}/sysconfig/virtvboxd %config(noreplace) %{_sysconfdir}/libvirt/virtvboxd.conf %{_datadir}/augeas/lenses/virtvboxd.aug %{_datadir}/augeas/lenses/tests/test_virtvboxd.aug diff --git a/src/ch/meson.build b/src/ch/meson.build index e34974d56c..22d4366a21 100644 --- a/src/ch/meson.build +++ b/src/ch/meson.build @@ -62,11 +62,6 @@ if conf.has('WITH_CH') 'sockets': [ 'main', 'ro', 'admin' ], } - sysconf_files += { - 'name': 'virtchd', - 'file': files('virtchd.sysconf'), - } - virt_install_dirs += [ localstatedir / 'lib' / 'libvirt' / 'ch', runstatedir / 'libvirt' / 'ch', diff --git a/src/ch/virtchd.service.in b/src/ch/virtchd.service.in index cc1e85d1df..f08339f211 100644 --- a/src/ch/virtchd.service.in +++ b/src/ch/virtchd.service.in @@ -18,6 +18,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTCHD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtchd ExecStart=@sbindir@/virtchd $VIRTCHD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/ch/virtchd.sysconf b/src/ch/virtchd.sysconf deleted file mode 100644 index 5ee44be5cf..0000000000 --- a/src/ch/virtchd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtchd.service systemd unit - -VIRTCHD_ARGS="--timeout 120" diff --git a/src/interface/meson.build b/src/interface/meson.build index 2d4e30362c..f9f378aeb0 100644 --- a/src/interface/meson.build +++ b/src/interface/meson.build @@ -54,9 +54,4 @@ if conf.has('WITH_INTERFACE') 'name': 'virtinterfaced', 'in_file': files('virtinterfaced.init.in') } - - sysconf_files += { - 'name': 'virtinterfaced', - 'file': files('virtinterfaced.sysconf'), - } endif diff --git a/src/interface/virtinterfaced.service.in b/src/interface/virtinterfaced.service.in index 73d409b81b..3d944e17a9 100644 --- a/src/interface/virtinterfaced.service.in +++ b/src/interface/virtinterfaced.service.in @@ -13,6 +13,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTINTERFACED_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtinterfaced ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/interface/virtinterfaced.sysconf b/src/interface/virtinterfaced.sysconf deleted file mode 100644 index 0685da31b8..0000000000 --- a/src/interface/virtinterfaced.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtinterfaced.service systemd unit - -VIRTINTERFACED_ARGS="--timeout 120" diff --git a/src/libxl/meson.build b/src/libxl/meson.build index 9793899106..8347a3c966 100644 --- a/src/libxl/meson.build +++ b/src/libxl/meson.build @@ -78,11 +78,6 @@ if conf.has('WITH_LIBXL') 'in_file': files('virtxend.init.in'), } - sysconf_files += { - 'name': 'virtxend', - 'file': files('virtxend.sysconf'), - } - virt_install_dirs += [ localstatedir / 'lib' / 'libvirt' / 'libxl', runstatedir / 'libvirt' / 'libxl', diff --git a/src/libxl/virtxend.service.in b/src/libxl/virtxend.service.in index 19b19ce3e6..2b5163e179 100644 --- a/src/libxl/virtxend.service.in +++ b/src/libxl/virtxend.service.in @@ -18,6 +18,7 @@ ConditionPathExists=/proc/xen/capabilities [Service] Type=notify +Environment=VIRTXEND_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtxend ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/libxl/virtxend.sysconf b/src/libxl/virtxend.sysconf deleted file mode 100644 index 301da47e8d..0000000000 --- a/src/libxl/virtxend.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtxend.service systemd unit - -VIRTXEND_ARGS="--timeout 120" diff --git a/src/locking/meson.build b/src/locking/meson.build index 184d3c3f56..72f7780438 100644 --- a/src/locking/meson.build +++ b/src/locking/meson.build @@ -156,11 +156,6 @@ if conf.has('WITH_LIBVIRTD') 'in_file': files('virtlockd.init.in'), } - sysconf_files += { - 'name': 'virtlockd', - 'file': files('virtlockd.sysconf'), - } - if conf.has('WITH_SANLOCK') virt_helpers += { 'name': 'libvirt_sanlock_helper', diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in index 4a6fab05ab..19271d1e7d 100644 --- a/src/locking/virtlockd.service.in +++ b/src/locking/virtlockd.service.in @@ -7,6 +7,7 @@ Documentation=man:virtlockd(8) Documentation=https://libvirt.org [Service] +Environment=VIRTLOCKD_ARGS= EnvironmentFile=-@sysconfdir@/sysconfig/virtlockd ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS ExecReload=/bin/kill -USR1 $MAINPID diff --git a/src/locking/virtlockd.sysconf b/src/locking/virtlockd.sysconf deleted file mode 100644 index 03aea9e1bc..0000000000 --- a/src/locking/virtlockd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtlockd.service systemd unit - -VIRTLOCKD_ARGS="" diff --git a/src/logging/meson.build b/src/logging/meson.build index 89e06a0d5a..7066f16fad 100644 --- a/src/logging/meson.build +++ b/src/logging/meson.build @@ -101,11 +101,6 @@ if conf.has('WITH_LIBVIRTD') 'name': 'virtlogd', 'in_file': files('virtlogd.init.in'), } - - sysconf_files += { - 'name': 'virtlogd', - 'file': files('virtlogd.sysconf'), - } endif log_inc_dir = include_directories('.') diff --git a/src/logging/virtlogd.sysconf b/src/logging/virtlogd.sysconf deleted file mode 100644 index 67993e83ce..0000000000 --- a/src/logging/virtlogd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtlogd.service systemd unit - -VIRTLOGD_ARGS="" diff --git a/src/lxc/meson.build b/src/lxc/meson.build index ad5c659dba..c1f71b43e1 100644 --- a/src/lxc/meson.build +++ b/src/lxc/meson.build @@ -175,11 +175,6 @@ if conf.has('WITH_LXC') 'in_file': files('virtlxcd.init.in'), } - sysconf_files += { - 'name': 'virtlxcd', - 'file': files('virtlxcd.sysconf'), - } - virt_install_dirs += [ localstatedir / 'lib' / 'libvirt' / 'lxc', runstatedir / 'libvirt' / 'lxc', diff --git a/src/lxc/virtlxcd.service.in b/src/lxc/virtlxcd.service.in index 3af7c1a52d..d58bde9f5d 100644 --- a/src/lxc/virtlxcd.service.in +++ b/src/lxc/virtlxcd.service.in @@ -18,6 +18,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTLXCD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtlxcd ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/lxc/virtlxcd.sysconf b/src/lxc/virtlxcd.sysconf deleted file mode 100644 index 119a4a23f3..0000000000 --- a/src/lxc/virtlxcd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtlxcd.service systemd unit - -VIRTLXCD_ARGS="--timeout 120" diff --git a/src/meson.build b/src/meson.build index 2408344ef7..fc6c77f5d1 100644 --- a/src/meson.build +++ b/src/meson.build @@ -208,12 +208,6 @@ virt_daemon_units = [] # * in_file - source init file (required) openrc_init_files = [] -# sysconf_files -# install libvirt daemon sysconf files -# * name - daemon name (required) -# * file - source sysconf file (required) -sysconf_files = [] - # virt_install_dirs: # list of directories to create during installation virt_install_dirs = [] @@ -868,16 +862,6 @@ if conf.has('WITH_LIBVIRTD') endif endif -if init_script != 'none' - foreach sysconf : sysconf_files - install_data( - sysconf['file'], - install_dir: sysconfdir / 'sysconfig', - rename: [ sysconf['name'] ], - ) - endforeach -endif - if conf.has('WITH_DTRACE_PROBES') custom_target( 'libvirt_functions.stp', diff --git a/src/network/meson.build b/src/network/meson.build index d6fb624bb7..e7c43bc4c4 100644 --- a/src/network/meson.build +++ b/src/network/meson.build @@ -72,11 +72,6 @@ if conf.has('WITH_NETWORK') 'in_file': files('virtnetworkd.init.in'), } - sysconf_files += { - 'name': 'virtnetworkd', - 'file': files('virtnetworkd.sysconf'), - } - virt_install_dirs += [ localstatedir / 'lib' / 'libvirt' / 'network', localstatedir / 'lib' / 'libvirt' / 'dnsmasq', diff --git a/src/network/virtnetworkd.service.in b/src/network/virtnetworkd.service.in index 4c39d2a5d7..3decfbbf1d 100644 --- a/src/network/virtnetworkd.service.in +++ b/src/network/virtnetworkd.service.in @@ -16,6 +16,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTNETWORKD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtnetworkd ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/network/virtnetworkd.sysconf b/src/network/virtnetworkd.sysconf deleted file mode 100644 index 93f3a7a327..0000000000 --- a/src/network/virtnetworkd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtnetworkd.service systemd unit - -VIRTNETWORKD_ARGS="--timeout 120" diff --git a/src/node_device/meson.build b/src/node_device/meson.build index 15f9c3ad29..5013d825b3 100644 --- a/src/node_device/meson.build +++ b/src/node_device/meson.build @@ -62,9 +62,4 @@ if conf.has('WITH_NODE_DEVICES') 'name': 'virtnodedevd', 'in_file': files('virtnodedevd.init.in'), } - - sysconf_files += { - 'name': 'virtnodedevd', - 'file': files('virtnodedevd.sysconf'), - } endif diff --git a/src/node_device/virtnodedevd.service.in b/src/node_device/virtnodedevd.service.in index d2453dd620..688cf89822 100644 --- a/src/node_device/virtnodedevd.service.in +++ b/src/node_device/virtnodedevd.service.in @@ -13,6 +13,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTNODEDEVD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtnodedevd ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/node_device/virtnodedevd.sysconf b/src/node_device/virtnodedevd.sysconf deleted file mode 100644 index fa7faa3a79..0000000000 --- a/src/node_device/virtnodedevd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtnodedevd.service systemd unit - -VIRTNODEDEVD_ARGS="--timeout 120" diff --git a/src/nwfilter/meson.build b/src/nwfilter/meson.build index a21e575925..ebbe712906 100644 --- a/src/nwfilter/meson.build +++ b/src/nwfilter/meson.build @@ -61,10 +61,5 @@ if conf.has('WITH_NWFILTER') 'in_file': files('virtnwfilterd.init.in'), } - sysconf_files += { - 'name': 'virtnwfilterd', - 'file': files('virtnwfilterd.sysconf'), - } - subdir('xml') endif diff --git a/src/nwfilter/virtnwfilterd.service.in b/src/nwfilter/virtnwfilterd.service.in index dda7c01a3d..36d00b58f0 100644 --- a/src/nwfilter/virtnwfilterd.service.in +++ b/src/nwfilter/virtnwfilterd.service.in @@ -13,6 +13,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTNWFILTERD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtnwfilterd ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/nwfilter/virtnwfilterd.sysconf b/src/nwfilter/virtnwfilterd.sysconf deleted file mode 100644 index 80cc645ba5..0000000000 --- a/src/nwfilter/virtnwfilterd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtnwfilterd.service systemd unit - -VIRTNWFILTERD_ARGS="--timeout 120" diff --git a/src/qemu/meson.build b/src/qemu/meson.build index 66ef594006..5f82f687c1 100644 --- a/src/qemu/meson.build +++ b/src/qemu/meson.build @@ -165,11 +165,6 @@ if conf.has('WITH_QEMU') 'in_file': files('virtqemud.init.in'), } - sysconf_files += { - 'name': 'virtqemud', - 'file': files('virtqemud.sysconf'), - } - if conf.has('WITH_SYSCTL') install_data( 'postcopy-migration.sysctl', diff --git a/src/qemu/virtqemud.service.in b/src/qemu/virtqemud.service.in index 20e1b43a6e..1296d7d766 100644 --- a/src/qemu/virtqemud.service.in +++ b/src/qemu/virtqemud.service.in @@ -20,6 +20,13 @@ Documentation=https://libvirt.org [Service] Type=notify +# Override the QEMU/SDL default audio driver probing when +# starting virtual machines using SDL graphics +# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio +# is enabled in /etc/libvirt/qemu.conf +#Environment=QEMU_AUDIO_DRV=sdl +#Environment=SDL_AUDIODRIVER=pulse +Environment=VIRTQEMUD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtqemud ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/qemu/virtqemud.sysconf b/src/qemu/virtqemud.sysconf deleted file mode 100644 index 87b626e3ed..0000000000 --- a/src/qemu/virtqemud.sysconf +++ /dev/null @@ -1,12 +0,0 @@ -# Customizations for the virtqemud.service systemd unit - -VIRTQEMUD_ARGS="--timeout 120" - -# Override the QEMU/SDL default audio driver probing when -# starting virtual machines using SDL graphics -# -# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio -# is enabled in /etc/libvirt/qemu.conf -#QEMU_AUDIO_DRV=sdl -# -#SDL_AUDIODRIVER=pulse diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in index cc0d4e3693..4d6b0510ae 100644 --- a/src/remote/libvirtd.service.in +++ b/src/remote/libvirtd.service.in @@ -28,6 +28,13 @@ Documentation=https://libvirt.org [Service] Type=notify +# Override the QEMU/SDL default audio driver probing when +# starting virtual machines using SDL graphics +# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio +# is enabled in /etc/libvirt/qemu.conf +#Environment=QEMU_AUDIO_DRV=sdl +#Environment=SDL_AUDIODRIVER=pulse +Environment=LIBVIRTD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/remote/libvirtd.sysconf b/src/remote/libvirtd.sysconf deleted file mode 100644 index 18aec1ba67..0000000000 --- a/src/remote/libvirtd.sysconf +++ /dev/null @@ -1,21 +0,0 @@ -# Customizations for the libvirtd.service systemd unit - -# Default behaviour is for libvirtd.service to start on boot -# so that VM autostart can be performed. We then want it to -# shutdown again if nothing was started and rely on systemd -# socket activation to start it again when some client app -# connects. -LIBVIRTD_ARGS="--timeout 120" - -# If systemd socket activation is disabled, then the following -# can be used to listen on TCP/TLS sockets -#LIBVIRTD_ARGS="--listen" - -# Override the QEMU/SDL default audio driver probing when -# starting virtual machines using SDL graphics -# -# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio -# is enabled in /etc/libvirt/qemu.conf -#QEMU_AUDIO_DRV=sdl -# -#SDL_AUDIODRIVER=pulse diff --git a/src/remote/meson.build b/src/remote/meson.build index 0a188268b5..fc98d0e5be 100644 --- a/src/remote/meson.build +++ b/src/remote/meson.build @@ -204,11 +204,6 @@ if conf.has('WITH_REMOTE') 'confd': files('libvirtd.confd'), } - sysconf_files += { - 'name': 'libvirtd', - 'file': files('libvirtd.sysconf'), - } - virt_daemons += { 'name': 'virtproxyd', 'c_args': [ @@ -239,11 +234,6 @@ if conf.has('WITH_REMOTE') 'confd': files('virtproxyd.confd'), } - sysconf_files += { - 'name': 'virtproxyd', - 'file': files('virtproxyd.sysconf'), - } - virt_install_dirs += [ localstatedir / 'log' / 'libvirt', ] diff --git a/src/remote/virtproxyd.service.in b/src/remote/virtproxyd.service.in index f43ce9ee6e..10e8cf7263 100644 --- a/src/remote/virtproxyd.service.in +++ b/src/remote/virtproxyd.service.in @@ -13,6 +13,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTPROXYD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtproxyd ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/remote/virtproxyd.sysconf b/src/remote/virtproxyd.sysconf deleted file mode 100644 index 0fc5c61096..0000000000 --- a/src/remote/virtproxyd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtproxyd.service systemd unit - -VIRTPROXYD_ARGS="--timeout 120" diff --git a/src/secret/meson.build b/src/secret/meson.build index a487055cde..efc0ebb1e6 100644 --- a/src/secret/meson.build +++ b/src/secret/meson.build @@ -43,9 +43,4 @@ if conf.has('WITH_SECRETS') 'name': 'virtsecretd', 'in_file': files('virtsecretd.init.in'), } - - sysconf_files += { - 'name': 'virtsecretd', - 'file': files('virtsecretd.sysconf'), - } endif diff --git a/src/secret/virtsecretd.service.in b/src/secret/virtsecretd.service.in index 8444142a3a..cbd63fe0b2 100644 --- a/src/secret/virtsecretd.service.in +++ b/src/secret/virtsecretd.service.in @@ -13,6 +13,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTSECRETD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtsecretd ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/secret/virtsecretd.sysconf b/src/secret/virtsecretd.sysconf deleted file mode 100644 index 2247d05964..0000000000 --- a/src/secret/virtsecretd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtsecretd.service systemd unit - -VIRTSECRETD_ARGS="--timeout 120" diff --git a/src/storage/meson.build b/src/storage/meson.build index d1aa66b147..c43707461d 100644 --- a/src/storage/meson.build +++ b/src/storage/meson.build @@ -125,11 +125,6 @@ if conf.has('WITH_STORAGE') 'name': 'virtstoraged', 'in_file': files('virtstoraged.init.in'), } - - sysconf_files += { - 'name': 'virtstoraged', - 'file': files('virtstoraged.sysconf'), - } endif if conf.has('WITH_STORAGE_DISK') diff --git a/src/storage/virtstoraged.service.in b/src/storage/virtstoraged.service.in index fc3e9a1b69..f72f8426fd 100644 --- a/src/storage/virtstoraged.service.in +++ b/src/storage/virtstoraged.service.in @@ -15,6 +15,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTSTORAGED_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtstoraged ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/storage/virtstoraged.sysconf b/src/storage/virtstoraged.sysconf deleted file mode 100644 index 122373eb7c..0000000000 --- a/src/storage/virtstoraged.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtstoraged.service systemd unit - -VIRTSTORAGED_ARGS="--timeout 120" diff --git a/src/vbox/meson.build b/src/vbox/meson.build index df0cfb40e8..240f2389a9 100644 --- a/src/vbox/meson.build +++ b/src/vbox/meson.build @@ -68,9 +68,4 @@ if conf.has('WITH_VBOX') 'name': 'virtvboxd', 'in_file': files('virtvboxd.init.in'), } - - sysconf_files += { - 'name': 'virtvboxd', - 'file': files('virtvboxd.sysconf'), - } endif diff --git a/src/vbox/virtvboxd.service.in b/src/vbox/virtvboxd.service.in index ebb31dde07..cfdafc39d2 100644 --- a/src/vbox/virtvboxd.service.in +++ b/src/vbox/virtvboxd.service.in @@ -14,6 +14,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTVBOXD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtvboxd ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/vbox/virtvboxd.sysconf b/src/vbox/virtvboxd.sysconf deleted file mode 100644 index 37ad353d54..0000000000 --- a/src/vbox/virtvboxd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtvboxd.service systemd unit - -VIRTVBOXD_ARGS="--timeout 120" diff --git a/src/vz/meson.build b/src/vz/meson.build index 14f7280f66..d102696943 100644 --- a/src/vz/meson.build +++ b/src/vz/meson.build @@ -58,9 +58,4 @@ if conf.has('WITH_VZ') 'name': 'virtvzd', 'in_file': files('virtvzd.init.in'), } - - sysconf_files += { - 'name': 'virtvzd', - 'file': files('virtvzd.sysconf'), - } endif diff --git a/src/vz/virtvzd.service.in b/src/vz/virtvzd.service.in index f551cb8fbf..7636bf2b9e 100644 --- a/src/vz/virtvzd.service.in +++ b/src/vz/virtvzd.service.in @@ -14,6 +14,7 @@ Documentation=https://libvirt.org [Service] Type=notify +Environment=VIRTVZD_ARGS="--timeout 120" EnvironmentFile=-@sysconfdir@/sysconfig/virtvzd ExecStart=@sbindir@/virtvzd $VIRTVZD_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/src/vz/virtvzd.sysconf b/src/vz/virtvzd.sysconf deleted file mode 100644 index a86b9dfb6c..0000000000 --- a/src/vz/virtvzd.sysconf +++ /dev/null @@ -1,3 +0,0 @@ -# Customizations for the virtvzd.service systemd unit - -VIRTVZD_ARGS="--timeout 120" diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in index 87f96af14d..74ca969468 100644 --- a/tools/libvirt-guests.sh.in +++ b/tools/libvirt-guests.sh.in @@ -30,13 +30,53 @@ test ! -r "$sysconfdir"/rc.d/init.d/functions || export TEXTDOMAIN="@PACKAGE@" TEXTDOMAINDIR="@localedir@" +# URIs to check for running guests +# example: URIS='default xen:///system vbox+tcp://host/system lxc:///system' URIS="default" + +# action taken on host boot +# - start all guests which were running on shutdown are started on boot +# regardless on their autostart settings +# - ignore libvirt-guests init script won't start any guest on boot, however, +# guests marked as autostart will still be automatically started by +# libvirtd ON_BOOT="start" + +# action taken on host shutdown +# - suspend all running guests are suspended using virsh managedsave +# - shutdown all running guests are asked to shutdown. Please be careful with +# this settings since there is no way to distinguish between a +# guest which is stuck or ignores shutdown requests and a guest +# which just needs a long time to shutdown. When setting +# ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a +# value suitable for your guests. ON_SHUTDOWN="suspend" + +# Number of seconds we're willing to wait for a guest to shut down. If parallel +# shutdown is enabled, this timeout applies as a timeout for shutting down all +# guests on a single URI defined in the variable URIS. If this is 0, then there +# is no time out (use with caution, as guests might not respond to a shutdown +# request). The default value is 300 seconds (5 minutes). SHUTDOWN_TIMEOUT=300 + +# Number of guests will be shutdown concurrently, taking effect when +# "ON_SHUTDOWN" is set to "shutdown". If Set to 0, guests will be shutdown one +# after another. Number of guests on shutdown at any time will not exceed number +# set in this variable. PARALLEL_SHUTDOWN=0 + +# Number of seconds to wait between each guest start. Set to 0 to allow +# parallel startup. START_DELAY=0 + +# If non-zero, try to bypass the file system cache when saving and +# restoring guests, even though this may give slower operation for +# some file systems. BYPASS_CACHE=0 + +# If non-zero, try to sync guest time on domain resume. Be aware, that +# this requires guest agent with support for time synchronization +# running in the guest. By default, this functionality is turned off. SYNC_TIME=0 test -f "$sysconfdir"/sysconfig/libvirt-guests && diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf deleted file mode 100644 index 4f83edab90..0000000000 --- a/tools/libvirt-guests.sysconf +++ /dev/null @@ -1,50 +0,0 @@ -# Customizations for the libvirt-guests.service systemd unit - -# URIs to check for running guests -# example: URIS='default xen:///system vbox+tcp://host/system lxc:///system' -#URIS=default - -# action taken on host boot -# - start all guests which were running on shutdown are started on boot -# regardless on their autostart settings -# - ignore libvirt-guests init script won't start any guest on boot, however, -# guests marked as autostart will still be automatically started by -# libvirtd -#ON_BOOT=start - -# Number of seconds to wait between each guest start. Set to 0 to allow -# parallel startup. -#START_DELAY=0 - -# action taken on host shutdown -# - suspend all running guests are suspended using virsh managedsave -# - shutdown all running guests are asked to shutdown. Please be careful with -# this settings since there is no way to distinguish between a -# guest which is stuck or ignores shutdown requests and a guest -# which just needs a long time to shutdown. When setting -# ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a -# value suitable for your guests. -#ON_SHUTDOWN=suspend - -# Number of guests will be shutdown concurrently, taking effect when -# "ON_SHUTDOWN" is set to "shutdown". If Set to 0, guests will be shutdown one -# after another. Number of guests on shutdown at any time will not exceed number -# set in this variable. -#PARALLEL_SHUTDOWN=0 - -# Number of seconds we're willing to wait for a guest to shut down. If parallel -# shutdown is enabled, this timeout applies as a timeout for shutting down all -# guests on a single URI defined in the variable URIS. If this is 0, then there -# is no time out (use with caution, as guests might not respond to a shutdown -# request). The default value is 300 seconds (5 minutes). -#SHUTDOWN_TIMEOUT=300 - -# If non-zero, try to bypass the file system cache when saving and -# restoring guests, even though this may give slower operation for -# some file systems. -#BYPASS_CACHE=0 - -# If non-zero, try to sync guest time on domain resume. Be aware, that -# this requires guest agent with support for time synchronization -# running in the guest. By default, this functionality is turned off. -#SYNC_TIME=1 diff --git a/tools/meson.build b/tools/meson.build index 22fa3604ba..0b1d82b059 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -307,12 +307,6 @@ configure_file( ) if init_script == 'systemd' - install_data( - 'libvirt-guests.sysconf', - install_dir: sysconfdir / 'sysconfig', - rename: 'libvirt-guests', - ) - configure_file( input: 'libvirt-guests.service.in', output: '@BASENAME@',