summaryrefslogtreecommitdiff
blob: b7c4bb5275dbbfcf85ef86cb5268ece7d602d907 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
https://bugs.gentoo.org/847382#c3
https://github.com/logrotate/logrotate/commit/31cf1099ab8514dfcae5a980bc77352edd5292f8
https://github.com/logrotate/logrotate/commit/7b1fa328bf70eb8434166f151bd075cd1440d0dc

From 31cf1099ab8514dfcae5a980bc77352edd5292f8 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Fri, 27 May 2022 09:56:07 +0200
Subject: [PATCH] lockState: do not print `error:` when exit code is unaffected

Closes: https://github.com/logrotate/logrotate/pull/448
--- a/logrotate.c
+++ b/logrotate.c
@@ -3050,8 +3050,8 @@ static int lockState(const char *stateFilename, int skip_state_lock)
     }
 
     if (sb.st_mode & S_IROTH) {
-        message(MESS_ERROR, "state file %s is world-readable and thus can"
-                " be locked from other unprivileged users."
+        message(MESS_NORMAL, "warning: state file %s is world-readable"
+                " and thus can be locked from other unprivileged users."
                 " Skipping lock acquisition...\n",
                 stateFilename);
         close(lockFd);

From 7b1fa328bf70eb8434166f151bd075cd1440d0dc Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Fri, 27 May 2022 16:02:57 +0200
Subject: [PATCH] log: unify handling of log levels

Use MESS_WARN instead of MESS_NORMAL and make it always use
the `warning:` prefix.  MESS_WARN is now mapped to LOG_WARNING
for syslog.

Also drop MESS_VERBOSE, which was not set anywhere.

Closes: https://github.com/logrotate/logrotate/pull/239
Closes: https://github.com/logrotate/logrotate/pull/449
--- a/config.c
+++ b/config.c
@@ -643,7 +643,7 @@ static void set_criterium(enum criterium *pDst, enum criterium src, int *pSet)
 {
     if (*pSet && (*pDst != src)) {
         /* we are overriding a previously set criterium */
-        message(MESS_VERBOSE, "warning: '%s' overrides previously specified '%s'\n",
+        message(MESS_DEBUG, "note: '%s' overrides previously specified '%s'\n",
                 crit_to_string(src), crit_to_string(*pDst));
     }
     *pDst = src;
@@ -1021,7 +1021,7 @@ static int readConfigFile(const char *configFile, struct logInfo *defConfig)
 
     if (getuid() == ROOT_UID) {
         if ((sb_config.st_mode & 07533) != 0400) {
-            message(MESS_NORMAL,
+            message(MESS_WARN,
                     "Potentially dangerous mode on %s: 0%o\n",
                     configFile, (unsigned) (sb_config.st_mode & 07777));
         }
@@ -1386,7 +1386,7 @@ static int readConfigFile(const char *configFile, struct logInfo *defConfig)
                             RAISE_ERROR();
                         }
                     } else if (!strcmp(key, "errors")) {
-                        message(MESS_NORMAL,
+                        message(MESS_WARN,
                                 "%s: %d: the errors directive is deprecated and no longer used.\n",
                                 configFile, lineNum);
                     } else if (!strcmp(key, "mail")) {
--- a/log.c
+++ b/log.c
@@ -40,9 +40,12 @@ static void log_once(FILE *where, int level, const char *format, va_list args)
 {
     switch (level) {
         case MESS_DEBUG:
-        case MESS_NORMAL:
-        case MESS_VERBOSE:
             break;
+
+        case MESS_WARN:
+            fprintf(where, "warning: ");
+            break;
+
         default:
             fprintf(where, "error: ");
             break;
@@ -78,10 +81,11 @@ void message(int level, const char *format, ...)
                 priority |= LOG_DEBUG;
                 break;
             case MESS_DEBUG:
-            case MESS_VERBOSE:
-            case MESS_NORMAL:
                 priority |= LOG_INFO;
                 break;
+            case MESS_WARN:
+                priority |= LOG_WARNING;
+                break;
             case MESS_ERROR:
                 priority |= LOG_ERR;
                 break;
--- a/log.h
+++ b/log.h
@@ -5,8 +5,7 @@
 
 #define MESS_REALDEBUG  1
 #define MESS_DEBUG      2
-#define MESS_VERBOSE    3
-#define MESS_NORMAL     4
+#define MESS_WARN       4
 #define MESS_ERROR      5
 #define MESS_FATAL      6
 
--- a/logrotate.c
+++ b/logrotate.c
@@ -3050,7 +3050,7 @@ static int lockState(const char *stateFilename, int skip_state_lock)
     }
 
     if (sb.st_mode & S_IROTH) {
-        message(MESS_NORMAL, "warning: state file %s is world-readable"
+        message(MESS_WARN, "state file %s is world-readable"
                 " and thus can be locked from other unprivileged users."
                 " Skipping lock acquisition...\n",
                 stateFilename);
@@ -3106,7 +3106,7 @@ int main(int argc, const char **argv)
         POPT_AUTOHELP { NULL, 0, 0, NULL, 0, NULL, NULL }
     };
 
-    logSetLevel(MESS_NORMAL);
+    logSetLevel(MESS_WARN);
     setlocale (LC_ALL, "");
 
     optCon = poptGetContext("logrotate", argc, argv, options, 0);
@@ -3117,7 +3117,7 @@ int main(int argc, const char **argv)
         switch (arg) {
             case 'd':
                 debug = 1;
-                message(MESS_NORMAL, "WARNING: logrotate in debug mode does nothing"
+                message(MESS_WARN, "logrotate in debug mode does nothing"
                         " except printing debug messages!  Consider using verbose"
                         " mode (-v) instead if this is not what you want.\n\n");
                 /* fallthrough */
--- a/test/test-0080.sh
+++ b/test/test-0080.sh
@@ -10,4 +10,4 @@ cleanup 80
 preptest test.log 80 1 0
 
 $RLR -d test-config.80 2>&1 | \
-    grep -q "warning: 'daily' overrides previously specified 'size'"
+    grep -q "note: 'daily' overrides previously specified 'size'"