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 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 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'"