[PATCH v5 2/3] remove sysconfig files

Daniel P. Berrangé berrange at redhat.com
Fri Dec 17 14:58:27 UTC 2021


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 at aepfle.de>

> 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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=- at 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 :|




More information about the libvir-list mailing list