On Thu, Dec 16, 2021 at 04:14:18PM +0100, Olaf Hering wrote: > 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> > diff --git a/libvirt.spec.in b/libvirt.spec.in > index 4675e67d15..d1a950fb55 100644 > --- a/libvirt.spec.in > +++ b/libvirt.spec.in > @@ -206,6 +206,18 @@ > > %define tls_priority "@LIBVIRT,SYSTEM" > > +%define libvirt_sc_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_sc_posttrans() \ > + for sc in %{?*} ; do \ > + test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \ > + mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}" ; \ > + done \ > + %{nil} Could you just put a comment before this to remind us why we're doing this # 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 > > Summary: Library providing a simple virtualization API > Name: libvirt > @@ -1290,6 +1302,7 @@ fi \ > %define libvirt_daemon_systemd_preun_priv() %systemd_preun %1.service %1-admin.socket %1.socket > > %pre daemon > +%libvirt_sc_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. > @@ -1338,6 +1351,7 @@ if [ $1 -ge 1 ] ; then > fi > > %posttrans daemon > +%libvirt_sc_posttrans libvirtd virtproxyd virtlogd virtlockd libvirt-guests > if test %libvirt_daemon_needs_restart libvirtd > then > # See if user has previously modified their install to > @@ -1467,6 +1481,7 @@ fi > > %if %{with_qemu} > %pre daemon-driver-qemu > +%libvirt_sc_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 > @@ -1491,6 +1506,7 @@ exit 0 > %libvirt_daemon_systemd_preun virtqemud > > %posttrans daemon-driver-qemu > +%libvirt_sc_posttrans virtqemud > %libvirt_daemon_perform_restart virtqemud > %endif > > @@ -1638,16 +1654,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 > @@ -1718,8 +1729,11 @@ exit 0 > %{_datadir}/libvirt/nwfilter/*.xml > %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml > > +%pre daemon-driver-interface > +%libvirt_sc_pre virtinterfaced > +%posttrans daemon-driver-interface > +%libvirt_sc_posttrans virtinterfaced There is alreadya '%posttrans' script defined for this package much earlier in the file, resulting in build errors. I don't think the errors come from rpmbuild itself, but rather the 'rpmspec' tool that Fedora/RHEL's build tools use. error: line 1738: Second %posttrans error: query of specfile /home/berrange/src/fedora/libvirt/libvirt.spec failed, can't parse Also, as a style point, it isn't nice to mix the scripts in with the %files sections. Overall though, I think the upgrade path you've done ought to work > %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 > @@ -1731,8 +1745,11 @@ exit 0 > %{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so > %{_mandir}/man8/virtinterfaced.8* > > +%pre daemon-driver-network > +%libvirt_sc_pre virtnetworkd > +%posttrans daemon-driver-network > +%libvirt_sc_posttrans virtnetworkd > %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 > @@ -1755,8 +1772,11 @@ exit 0 > %{_prefix}/lib/firewalld/zones/libvirt.xml > %endif > > +%pre daemon-driver-nodedev > +%libvirt_sc_pre virtnodedevd > +%posttrans daemon-driver-nodedev > +%libvirt_sc_posttrans virtnodedevd > %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 > @@ -1768,8 +1788,11 @@ exit 0 > %{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so > %{_mandir}/man8/virtnodedevd.8* > > +%pre daemon-driver-nwfilter > +%libvirt_sc_pre virtnwfilterd > +%posttrans daemon-driver-nwfilter > +%libvirt_sc_posttrans virtnwfilterd > %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 > @@ -1783,8 +1806,11 @@ exit 0 > %{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so > %{_mandir}/man8/virtnwfilterd.8* > > +%pre daemon-driver-secret > +%libvirt_sc_pre virtsecretd > +%posttrans daemon-driver-secret > +%libvirt_sc_posttrans virtsecretd > %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 > @@ -1798,8 +1824,11 @@ exit 0 > > %files daemon-driver-storage > > +%pre daemon-driver-storage-core > +%libvirt_sc_pre virtstoraged > +%posttrans daemon-driver-storage-core > +%libvirt_sc_posttrans virtstoraged > %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 > @@ -1857,7 +1886,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 > @@ -1886,8 +1914,11 @@ exit 0 > %endif > > %if %{with_lxc} > +%pre daemon-driver-lxc > +%libvirt_sc_pre virtlxcd > +%posttrans daemon-driver-lxc > +%libvirt_sc_posttrans virtlxcd > %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 > @@ -1909,8 +1940,11 @@ exit 0 > %endif > > %if %{with_libxl} > +%pre daemon-driver-libxl > +%libvirt_sc_pre virtxend > +%posttrans daemon-driver-libxl > +%libvirt_sc_posttrans virtxend > %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 > @@ -1932,8 +1966,11 @@ exit 0 > %endif > > %if %{with_vbox} > +%pre daemon-driver-vbox > +%libvirt_sc_pre virtvboxd > +%posttrans daemon-driver-vbox > +%libvirt_sc_posttrans virtvboxd > %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@', > Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|