switch to use modular daemons by default

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-08-04 18:01:17 +01:00
parent ac122f4525
commit dc6b512f3c
1 changed files with 194 additions and 36 deletions

View File

@ -181,6 +181,11 @@
%define with_dmidecode 0%{!?_without_dmidecode:1}
%endif
%define with_modular_daemons 0
%if 0%{?fedora} >= 35 || 0%{?rhel} >= 9
%define with_modular_daemons 1
%endif
# Force QEMU to run as non-root
%define qemu_user qemu
%define qemu_group qemu
@ -201,7 +206,7 @@
Summary: Library providing a simple virtualization API
Name: libvirt
Version: 7.6.0
Release: 1%{?dist}
Release: 2%{?dist}
License: LGPLv2+
URL: https://libvirt.org/
@ -1076,6 +1081,12 @@ exit 1
%define arg_libssh2 -Dlibssh2=disabled
%endif
%if %{with_modular_daemons}
%define arg_remote_mode -Dremote_default_mode=direct
%else
%define arg_remote_mode -Dremote_default_mode=legacy
%endif
%define when %(date +"%%F-%%T")
%define where %(hostname)
%define who %{?packager}%{!?packager:Unknown}
@ -1106,7 +1117,7 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
-Ddriver_vz=disabled \
-Ddriver_bhyve=disabled \
-Ddriver_ch=disabled \
-Dremote_default_mode=legacy \
%{?arg_remote_mode} \
-Ddriver_interface=enabled \
-Ddriver_network=enabled \
-Dstorage_fs=enabled \
@ -1248,6 +1259,29 @@ mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
# raising the test timeout
VIR_TEST_DEBUG=1 %meson_test --no-suite syntax-check --timeout-multiplier 10
%global libvirt_daemon_schedule_restart() mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || : \
/bin/systemctl is-active %1.service 1>/dev/null 2>&1 && \
touch %{_localstatedir}/lib/rpm-state/libvirt/restart-%1 || :
%global libvirt_daemon_finish_restart() rm -f %{_localstatedir}/lib/rpm-state/libvirt/restart-%1 \
rmdir %{_localstatedir}/lib/rpm-state/libvirt 2>/dev/null || :
%global libvirt_daemon_needs_restart() -f %{_localstatedir}/lib/rpm-state/libvirt/restart-%1
%global libvirt_daemon_perform_restart() if test %libvirt_daemon_needs_restart %1 \
then \
/bin/systemctl try-restart %1.service >/dev/null 2>&1 || : \
fi \
%libvirt_daemon_finish_restart %1
%global libvirt_daemon_systemd_post() %systemd_post %1.socket %1-ro.socket %1-admin.socket %1.service
%global libvirt_daemon_systemd_post_inet() %systemd_post %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket %1.service
%global libvirt_daemon_systemd_preun() %systemd_preun %1.service %1-ro.socket %1-admin.socket %1.socket
%global libvirt_daemon_systemd_preun_inet() %systemd_preun %1.service %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket %1.socket
%pre daemon
# 'libvirt' group is just to allow password-less polkit access to
# libvirtd. The uid number is irrelevant, so we use dynamic allocation
@ -1257,30 +1291,25 @@ getent group libvirt >/dev/null || groupadd -r libvirt
exit 0
%post daemon
%global post_units \\\
virtlockd.socket virtlockd-admin.socket \\\
virtlogd.socket virtlogd-admin.socket \\\
libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket \\\
libvirtd-tcp.socket libvirtd-tls.socket \\\
libvirtd.service \\\
libvirt-guests.service
%libvirt_daemon_systemd_post virtlogd
%libvirt_daemon_systemd_post virtlockdd
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post_inet virtproxyd
%else
%libvirt_daemon_systemd_post_inet libvirtd
%endif
%systemd_post %post_units
%systemd_post libvirt-guests.service
# request daemon restart in posttrans
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
%libvirt_daemon_schedule_restart libvirtd
%preun daemon
%global preun_units \\\
libvirtd.service \\\
libvirtd-tcp.socket libvirtd-tls.socket \\\
libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket \\\
virtlogd.socket virtlogd-admin.socket virtlogd.service \\\
virtlockd.socket virtlockd-admin.socket virtlockd.service \\\
libvirt-guests.service
%systemd_preun libvirt-guests.service
%systemd_preun %preun_units
%libvirt_daemon_systemd_preun_inet libvirtd
%libvirt_daemon_systemd_preun_inet virtproxyd
%libvirt_daemon_systemd_preun virtlogd
%libvirt_daemon_systemd_preun virtlockdd
%postun daemon
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
@ -1302,7 +1331,8 @@ if [ $1 -ge 1 ] ; then
fi
%posttrans daemon
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
if test %libvirt_daemon_needs_restart libvirtd
then
# See if user has previously modified their install to
# tell libvirtd to use --listen
grep -E '^LIBVIRTD_ARGS=.*--listen' /etc/sysconfig/libvirtd 1>/dev/null 2>&1
@ -1338,18 +1368,148 @@ if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
fi
fi
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
%libvirt_daemon_finish_restart libvirtd
%post daemon-driver-network
%if %{with_firewalld_zone}
%firewalld_reload
%endif
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtnetworkd
%endif
%libvirt_daemon_schedule_restart virtnetworkd
%preun
%libvirt_daemon_systemd_preun virtnetworkd
%postun daemon-driver-network
%if %{with_firewalld_zone}
%firewalld_reload
%endif
%posttrans daemon-driver-network
%libvirt_daemon_perform_restart virtnetworkd
%post daemon-driver-nwfilter
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtnwfilterd
%endif
%libvirt_daemon_schedule_restart virtnwfilterd
%preun daemon-driver-nwfilter
%libvirt_daemon_systemd_preun virtnwfilterd
%posttrans daemon-driver-nwfilter
%libvirt_daemon_perform_restart virtnwfilterd
%post daemon-driver-nodedev
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtnodedevd
%endif
%libvirt_daemon_schedule_restart virtnodedevd
%preun daemon-driver-nodedev
%libvirt_daemon_systemd_preun virtnodedevd
%posttrans daemon-driver-nodedev
%libvirt_daemon_perform_restart virtnodedevd
%post daemon-driver-interface
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtinterfaced
%endif
%libvirt_daemon_schedule_restart virtinterfaced
%preun daemon-driver-interface
%libvirt_daemon_systemd_preun virtinterfaced
%posttrans daemon-driver-interface
%libvirt_daemon_perform_restart virtinterfaced
%post daemon-driver-secret
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtsecretd
%endif
%libvirt_daemon_schedule_restart virtsecretd
%preun daemon-driver-secret
%libvirt_daemon_systemd_preun virtsecretd
%posttranstrans daemon-driver-secret
%libvirt_daemon_perform_restart virtsecretd
%post daemon-driver-storage
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtstoraged
%endif
%libvirt_daemon_schedule_restart virtstoraged
%preun daemon-driver-storage
%libvirt_daemon_systemd_preun virtstoraged
%posttrans daemon-driver-storage
%libvirt_daemon_perform_restart virtstoraged
%post daemon-driver-qemu
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtqemud
%endif
%libvirt_daemon_schedule_restart virtqemud
%preun daemon-driver-qemu
%libvirt_daemon_systemd_preun virtqemud
%posttrans daemon-driver-qemu
%libvirt_daemon_perform_restart virtqemud
%post daemon-driver-lxc
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtlxcd
%endif
%libvirt_daemon_schedule_restart virtlxcd
%preun daemon-driver-lxc
%libvirt_daemon_systemd_preun virtlxcd
%posttrans daemon-driver-lxc
%libvirt_daemon_perform_restart virtlxcd
%post daemon-driver-vbox
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtvboxd
%endif
%libvirt_daemon_schedule_restart virtvboxd
%preun daemon-driver-vbox
%libvirt_daemon_systemd_preun virtvboxd
%posttrans daemon-driver-vbox
%libvirt_daemon_perform_restart virtvboxd
%post daemon-driver-libxl
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtxend
%endif
%libvirt_daemon_schedule_restart virtxend
%preun daemon-driver-libxl
%libvirt_daemon_systemd_preun virtxend
%posttrans daemon-driver-libxl
%libvirt_daemon_perform_restart virtxend
%post daemon-config-network
if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
# see if the network used by default network creates a conflict,
@ -1388,15 +1548,13 @@ if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ;
chmod 0600 %{_sysconfdir}/libvirt/qemu/networks/default.xml
# Make sure libvirt picks up the new network defininiton
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
%libvirt_daemon_schedule_restart libvirtd
%libvirt_daemon_schedule_restart virtnetworkd
fi
%posttrans daemon-config-network
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
%libvirt_daemon_perform_restart libvirtd
%libvirt_daemon_perform_restart virtnetworkd
%post daemon-config-nwfilter
for datadir_file in %{_datadir}/libvirt/nwfilter/*.xml; do
@ -1407,15 +1565,12 @@ for datadir_file in %{_datadir}/libvirt/nwfilter/*.xml; do
fi
done
# Make sure libvirt picks up the new nwfilter defininitons
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
%libvirt_daemon_schedule_restart libvirtd
%libvirt_daemon_schedule_restart virtnwfilterd
%posttrans daemon-config-nwfilter
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
%libvirt_daemon_perform_restart libvirtd
%libvirt_daemon_perform_restart virtnwfilterd
%if %{with_qemu}
%pre daemon-driver-qemu
@ -1902,6 +2057,9 @@ exit 0
%changelog
* Wed Aug 4 2021 Daniel P. Berrangé <berrange@redhat.com> - 7.6.0-2
- Switch to use modular daemons by default
* Mon Aug 2 2021 Daniel P. Berrangé <berrange@redhat.com> - 7.6.0-1
- Update to 7.6.0 release