Resolves: #1934601 - make renamecopy
and copytruncate
override each other
This commit is contained in:
parent
17dbaf6551
commit
9ea10a8560
89
0003-logrotate-3.18.0-renamecopy-excl.patch
Normal file
89
0003-logrotate-3.18.0-renamecopy-excl.patch
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
From 337eb1492f8b694542d704c7a4612e3211f717e5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
Date: Tue, 27 Apr 2021 20:52:32 +0200
|
||||||
|
Subject: [PATCH 2/2] make `renamecopy` and `copytruncate` override each other
|
||||||
|
|
||||||
|
These option cannot work together. This rule prevents unnecessary
|
||||||
|
rotation failure in case one of the options comes from the global
|
||||||
|
configuration and the other one from log-specific configuration.
|
||||||
|
|
||||||
|
Bug: https://bugzilla.redhat.com/1934601
|
||||||
|
|
||||||
|
Closes: https://github.com/logrotate/logrotate/pull/386
|
||||||
|
|
||||||
|
Upstream-commit: fe53a0efd21c11dbe9705564f92f5d9aa6bf855e
|
||||||
|
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
---
|
||||||
|
config.c | 2 ++
|
||||||
|
logrotate.8.in | 3 ++-
|
||||||
|
test/test-config.24.in | 3 +++
|
||||||
|
test/test-config.58.in | 3 +++
|
||||||
|
4 files changed, 10 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/config.c b/config.c
|
||||||
|
index 91fd412..1bca9e4 100644
|
||||||
|
--- a/config.c
|
||||||
|
+++ b/config.c
|
||||||
|
@@ -1106,10 +1106,12 @@ static int readConfigFile(const char *configFile, struct logInfo *defConfig)
|
||||||
|
newlog->flags &= ~LOG_FLAG_SHAREDSCRIPTS;
|
||||||
|
} else if (!strcmp(key, "copytruncate")) {
|
||||||
|
newlog->flags |= LOG_FLAG_COPYTRUNCATE;
|
||||||
|
+ newlog->flags &= ~LOG_FLAG_TMPFILENAME;
|
||||||
|
} else if (!strcmp(key, "nocopytruncate")) {
|
||||||
|
newlog->flags &= ~LOG_FLAG_COPYTRUNCATE;
|
||||||
|
} else if (!strcmp(key, "renamecopy")) {
|
||||||
|
newlog->flags |= LOG_FLAG_TMPFILENAME;
|
||||||
|
+ newlog->flags &= ~LOG_FLAG_COPYTRUNCATE;
|
||||||
|
} else if (!strcmp(key, "norenamecopy")) {
|
||||||
|
newlog->flags &= ~LOG_FLAG_TMPFILENAME;
|
||||||
|
} else if (!strcmp(key, "copy")) {
|
||||||
|
diff --git a/logrotate.8.in b/logrotate.8.in
|
||||||
|
index 8064d68..f0aa23f 100644
|
||||||
|
--- a/logrotate.8.in
|
||||||
|
+++ b/logrotate.8.in
|
||||||
|
@@ -430,7 +430,7 @@ truncating it, so some logging data might be lost.
|
||||||
|
When this option is used, the \fBcreate\fR option will have no effect,
|
||||||
|
as the old log file stays in place. The \fBcopytruncate\fR option allows
|
||||||
|
storing rotated log files on the different devices using \fBolddir\fR
|
||||||
|
-directive.
|
||||||
|
+directive. The \fBcopytruncate\fR option implies \fBnorenamecopy\fR.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fBnocopytruncate\fR
|
||||||
|
@@ -444,6 +444,7 @@ Log file is renamed to temporary filename in the same directory by adding
|
||||||
|
and log file is copied from temporary filename to final filename. In the end,
|
||||||
|
temporary filename is removed. The \fBrenamecopy\fR option allows storing
|
||||||
|
rotated log files on the different devices using \fBolddir\fR directive.
|
||||||
|
+The \fBrenamecopy\fR option implies \fBnocopytruncate\fR.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fBnorenamecopy\fR
|
||||||
|
diff --git a/test/test-config.24.in b/test/test-config.24.in
|
||||||
|
index 35cfcd3..7a2a760 100644
|
||||||
|
--- a/test/test-config.24.in
|
||||||
|
+++ b/test/test-config.24.in
|
||||||
|
@@ -1,5 +1,8 @@
|
||||||
|
create
|
||||||
|
|
||||||
|
+# will be overridden by copytruncate
|
||||||
|
+renamecopy
|
||||||
|
+
|
||||||
|
&DIR&/test*.log {
|
||||||
|
daily
|
||||||
|
copytruncate
|
||||||
|
diff --git a/test/test-config.58.in b/test/test-config.58.in
|
||||||
|
index 34906da..79058be 100644
|
||||||
|
--- a/test/test-config.58.in
|
||||||
|
+++ b/test/test-config.58.in
|
||||||
|
@@ -1,5 +1,8 @@
|
||||||
|
create
|
||||||
|
|
||||||
|
+# will be overridden by renamecopy
|
||||||
|
+copytruncate
|
||||||
|
+
|
||||||
|
&DIR&/test.log {
|
||||||
|
renamecopy
|
||||||
|
weekly
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
@ -13,6 +13,9 @@ Patch: 0001-logrotate-3.18.0-fix-resource-leaks.patch
|
|||||||
# unify documentation of copy/copytruncate/renamecopy (#1934629)
|
# unify documentation of copy/copytruncate/renamecopy (#1934629)
|
||||||
Patch: 0002-logrotate-3.18.0-copytruncate-doc.patch
|
Patch: 0002-logrotate-3.18.0-copytruncate-doc.patch
|
||||||
|
|
||||||
|
# make `renamecopy` and `copytruncate` override each other (#1934601)
|
||||||
|
Patch: 0003-logrotate-3.18.0-renamecopy-excl.patch
|
||||||
|
|
||||||
BuildRequires: acl
|
BuildRequires: acl
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -114,6 +117,7 @@ fi
|
|||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue May 04 2021 Kamil Dudka <kdudka@redhat.com> - 3.18.0-3
|
* Tue May 04 2021 Kamil Dudka <kdudka@redhat.com> - 3.18.0-3
|
||||||
|
- make `renamecopy` and `copytruncate` override each other (#1934601)
|
||||||
- unify documentation of copy/copytruncate/renamecopy (#1934629)
|
- unify documentation of copy/copytruncate/renamecopy (#1934629)
|
||||||
- fix resource leaks reported by Coverity
|
- fix resource leaks reported by Coverity
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user