diff --git a/corosync.spec b/corosync.spec index d08a460..6a7ad52 100644 --- a/corosync.spec +++ b/corosync.spec @@ -18,11 +18,13 @@ Name: corosync Summary: The Corosync Cluster Engine and Application Programming Interfaces Version: 3.1.6 -Release: 2%{?gitver}%{?dist} +Release: 3%{?gitver}%{?dist} License: BSD URL: http://corosync.github.io/corosync/ Source0: http://build.clusterlabs.org/corosync/releases/%{name}-%{version}%{?gittarver}.tar.gz +Patch0: logrotate-Use-copytruncate-method-by-default.patch + # Runtime bits # The automatic dependency overridden in favor of explicit version lock Requires: corosynclib%{?_isa} = %{version}-%{release} @@ -71,6 +73,7 @@ BuildRequires: make %prep %setup -q -n %{name}-%{version}%{?gittarver} +%patch0 -p1 %build %if %{with runautogen} @@ -289,6 +292,9 @@ network splits) %endif %changelog +* Wed Mar 30 2022 Jan Friesse - 3.1.6-3 +- Use copytruncate method for logrotate + * Wed Jan 19 2022 Fedora Release Engineering - 3.1.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/logrotate-Use-copytruncate-method-by-default.patch b/logrotate-Use-copytruncate-method-by-default.patch new file mode 100644 index 0000000..11d2cf3 --- /dev/null +++ b/logrotate-Use-copytruncate-method-by-default.patch @@ -0,0 +1,60 @@ +From 04362046c4a9d7307feb5b68341d567b7d0b94d6 Mon Sep 17 00:00:00 2001 +From: Jan Friesse +Date: Tue, 29 Mar 2022 17:09:22 +0200 +Subject: [PATCH] logrotate: Use copytruncate method by default + +The reopen lograte method has two main problems: +1. It does fail when corosync is not running (solvable by + adding "|| true") +2. If (for some reason, like SELinux) cfgtool -L fails, logrotate + fails and corosync keeps logging into old file. Added "|| true" + makes situation even worse because logrotate removes file but + corosync keeps logging into it. + +Solution is to install copytruncate logrotate snip by default (and +keep reopen config file only for reference). + +Signed-off-by: Jan Friesse +Reviewed-by: Christine Caulfield +--- + conf/logrotate/Makefile.am | 7 ------- + conf/logrotate/corosync-reopen.in | 5 +++++ + 2 files changed, 5 insertions(+), 7 deletions(-) + +diff --git a/conf/logrotate/Makefile.am b/conf/logrotate/Makefile.am +index 4f7b7536..35efa2de 100644 +--- a/conf/logrotate/Makefile.am ++++ b/conf/logrotate/Makefile.am +@@ -34,16 +34,9 @@ MAINTAINERCLEANFILES = Makefile.in + + EXTRA_DIST = corosync-reopen.in corosync-copytruncate.in + +-if HAVE_QB_LOG_FILE_REOPEN +-corosync: corosync-reopen.in +- $(SED) -e 's#@''LOGDIR@#${LOGDIR}#g' \ +- -e 's#@''SBINDIR@#$(sbindir)#g' \ +- $< > $@ +-else + corosync: corosync-copytruncate.in + $(SED) -e 's#@''LOGDIR@#${LOGDIR}#g' \ + $< > $@ +-endif + + logrotatecorosyncdir = ${LOGROTATEDIR} + logrotatecorosync_DATA = corosync +diff --git a/conf/logrotate/corosync-reopen.in b/conf/logrotate/corosync-reopen.in +index 839c5dae..730fb741 100644 +--- a/conf/logrotate/corosync-reopen.in ++++ b/conf/logrotate/corosync-reopen.in +@@ -1,3 +1,8 @@ ++# This logrotate method has two main problems and it's kept only for reference: ++# 1. It does fail when corosync is not running (solvable by adding "|| true") ++# 2. If (for some reason) cfgtool -L fails, logrotate fails and corosync keeps ++# logging into old file. Added "|| true" makes situation even worse ++# because logrotate removes file but corosync keeps logging into it. + @LOGDIR@/corosync.log { + missingok + compress +-- +2.33.1 +