From: Partha Sarathi Satapathy <[email protected]> The existing daemon logrotate configuration only covers libvirtd. File-based logs from modular daemons, such as virtqemud.log, are therefore not rotated.
Parameterize libvirtd.logrotate.in with the daemon name and generate a configuration for each daemon in virt_daemons. Install each configuration in logrotate.d and package it in the same RPM subpackage as the corresponding daemon. Signed-off-by: Partha Satapathy <[email protected]> --- libvirt.spec.in | 14 ++++++++++++++ src/meson.build | 20 ++++++++++++++++++++ src/remote/libvirtd.logrotate.in | 2 +- src/remote/meson.build | 14 ++++---------- 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index 2411fd94c411..055f6a4b8d9c 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -2152,6 +2152,7 @@ exit 0 %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug %endif %attr(0755, root, root) %{_sbindir}/virtlockd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtlockd %{_mandir}/man8/virtlockd.8* %files daemon-plugin-lockd @@ -2165,6 +2166,7 @@ exit 0 %{_datadir}/augeas/lenses/virtlogd.aug %{_datadir}/augeas/lenses/tests/test_virtlogd.aug %attr(0755, root, root) %{_sbindir}/virtlogd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtlogd %{_mandir}/man8/virtlogd.8* %files daemon-proxy @@ -2178,6 +2180,7 @@ exit 0 %{_datadir}/augeas/lenses/virtproxyd.aug %{_datadir}/augeas/lenses/tests/test_virtproxyd.aug %attr(0755, root, root) %{_sbindir}/virtproxyd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtproxyd %{_mandir}/man8/virtproxyd.8* %files daemon-config-network @@ -2200,6 +2203,7 @@ exit 0 %{_unitdir}/virtinterfaced-ro.socket %{_unitdir}/virtinterfaced-admin.socket %attr(0755, root, root) %{_sbindir}/virtinterfaced +%config(noreplace) %{_sysconfdir}/logrotate.d/virtinterfaced %ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/interface/ %{_libdir}/libvirt/connection-driver/libvirt_driver_interface.so %{_mandir}/man8/virtinterfaced.8* @@ -2216,6 +2220,7 @@ exit 0 %{_unitdir}/virtnetworkd-ro.socket %{_unitdir}/virtnetworkd-admin.socket %attr(0755, root, root) %{_sbindir}/virtnetworkd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtnetworkd %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart @@ -2242,6 +2247,7 @@ exit 0 %{_unitdir}/virtnodedevd-ro.socket %{_unitdir}/virtnodedevd-admin.socket %attr(0755, root, root) %{_sbindir}/virtnodedevd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtnodedevd %ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/nodedev/ %{_libdir}/libvirt/connection-driver/libvirt_driver_nodedev.so %{_mandir}/man8/virtnodedevd.8* @@ -2255,6 +2261,7 @@ exit 0 %{_unitdir}/virtnwfilterd-ro.socket %{_unitdir}/virtnwfilterd-admin.socket %attr(0755, root, root) %{_sbindir}/virtnwfilterd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtnwfilterd %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/ %ghost %dir %{_rundir}/libvirt/network/ %ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/nwfilter-binding/ @@ -2277,6 +2284,7 @@ exit 0 %dir %attr(0755, root, root) %{_unitdir}/libvirtd.service.d/ %{_unitdir}/libvirtd.service.d/10-secret.conf %attr(0755, root, root) %{_sbindir}/virtsecretd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtsecretd %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/secrets/ %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/secrets/ %ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/secrets/ @@ -2294,6 +2302,7 @@ exit 0 %{_unitdir}/virtstoraged-ro.socket %{_unitdir}/virtstoraged-admin.socket %attr(0755, root, root) %{_sbindir}/virtstoraged +%config(noreplace) %{_sysconfdir}/logrotate.d/virtstoraged %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/autostart/ @@ -2348,6 +2357,7 @@ exit 0 %{_unitdir}/virtqemud-ro.socket %{_unitdir}/virtqemud-admin.socket %attr(0755, root, root) %{_sbindir}/virtqemud +%config(noreplace) %{_sysconfdir}/logrotate.d/virtqemud %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/autostart/ %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/ @@ -2389,6 +2399,7 @@ exit 0 %{_unitdir}/virtlxcd-ro.socket %{_unitdir}/virtlxcd-admin.socket %attr(0755, root, root) %{_sbindir}/virtlxcd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtlxcd %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/autostart/ @@ -2413,6 +2424,7 @@ exit 0 %{_unitdir}/virtxend-ro.socket %{_unitdir}/virtxend-admin.socket %attr(0755, root, root) %{_sbindir}/virtxend +%config(noreplace) %{_sysconfdir}/logrotate.d/virtxend %config(noreplace) %{_sysconfdir}/libvirt/libxl.conf %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl %config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf @@ -2441,6 +2453,7 @@ exit 0 %{_unitdir}/virtvboxd-ro.socket %{_unitdir}/virtvboxd-admin.socket %attr(0755, root, root) %{_sbindir}/virtvboxd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtvboxd %{_libdir}/libvirt/connection-driver/libvirt_driver_vbox.so %{_mandir}/man8/virtvboxd.8* %endif @@ -2485,6 +2498,7 @@ exit 0 %if %{with_ch} %files daemon-driver-ch %attr(0755, root, root) %{_sbindir}/virtchd +%config(noreplace) %{_sysconfdir}/logrotate.d/virtchd %config(noreplace) %{_sysconfdir}/libvirt/virtchd.conf %{_datadir}/augeas/lenses/virtchd.aug %{_datadir}/augeas/lenses/tests/test_virtchd.aug diff --git a/src/meson.build b/src/meson.build index cab52ce7a30c..4fdc130bfa96 100644 --- a/src/meson.build +++ b/src/meson.build @@ -285,6 +285,26 @@ subdir('vbox') subdir('vmware') subdir('vz') +# Generate a logrotate configuration for every daemon built by this +# configuration. The driver-specific logrotate files for guest logs are +# installed by src/remote/meson.build. +foreach daemon : virt_daemons + daemon_logrotate_conf = configuration_data({ + 'daemon': daemon['name'], + 'localstatedir': localstatedir, + }) + daemon_logrotate = configure_file( + input: 'remote/libvirtd.logrotate.in', + output: '@[email protected]'.format(daemon['name']), + configuration: daemon_logrotate_conf, + ) + install_data( + daemon_logrotate, + install_dir: sysconfdir / 'logrotate.d', + rename: [ daemon['name'] ], + ) +endforeach + driver_sources = files( 'driver.c', diff --git a/src/remote/libvirtd.logrotate.in b/src/remote/libvirtd.logrotate.in index 4e02510c8bb8..f563b253d9a3 100644 --- a/src/remote/libvirtd.logrotate.in +++ b/src/remote/libvirtd.logrotate.in @@ -1,4 +1,4 @@ -@localstatedir@/log/libvirt/libvirtd.log { +@localstatedir@/log/libvirt/@[email protected] { weekly missingok rotate 4 diff --git a/src/remote/meson.build b/src/remote/meson.build index 3525bc34b2de..01dcbe51639d 100644 --- a/src/remote/meson.build +++ b/src/remote/meson.build @@ -130,18 +130,12 @@ foreach name : libvirt_conf_files set_variable(name['virtd'].underscorify(), tmp) endforeach -logrotate_files = [ +driver_logrotate_files = [ 'libvirtd.qemu', 'libvirtd.lxc', 'libvirtd.libxl', ] -if conf.has('WITH_MONOLITHIC_LIBVIRTD') - logrotate_files += [ - 'libvirtd', - ] -endif - if conf.has('WITH_REMOTE') remote_driver_lib = static_library( 'virt_remote_driver', @@ -265,15 +259,15 @@ if conf.has('WITH_REMOTE') runstatedir / 'libvirt' / 'common', ] - logrotate_conf = configuration_data({ + driver_logrotate_conf = configuration_data({ 'localstatedir': localstatedir, }) - foreach name : logrotate_files + foreach name : driver_logrotate_files log_file = configure_file( input: '@[email protected]'.format(name), output: '@[email protected]'.format(name), - configuration: logrotate_conf, + configuration: driver_logrotate_conf, ) install_data( log_file, -- 2.52.0
