Package: ntpsec
Version: 1.2.0+dfsg1-4
Tags: patch

Dear maintainer:

On a freshly installed Debian system (at least from Debian 11),
installing ntpsec creates by default log entries like this one:

ntpd[325]: statistics directory /var/log/ntpsec/ does not exist or is 
unwriteable, error No such file or directory

Note that this is considered an error and it's shown in red by journalctl.
In fact, this is from line 810 in ntpd/ntpd.c:

msyslog(LOG_ERR, "statistics directory %s does not exist or is unwriteable, error 
%s", statsdir, strerror(errno));

The configuration file, however, says this:

# You must create /var/log/ntpsec (owned by ntpsec:ntpsec) to enable logging.

So the configuration file suggests that you only need to create the directory
to enable logging, but it's otherwise ok for the directory to be missing.

This seems a little bit contradictory to me, and I'll explain:

Either a missing /var/log/ntpsec directory is considered a "supported 
configuration" or it's not.

If it's a supported configuration, then this seems a bug in the program and the 
message should be logged with a priority different than LOG_ERR, like 
LOG_WARNING or LOG_NOTICE. In a general sense, supported configurations should 
not issue error messages. The attached patch just changes LOG_ERR to 
LOG_WARNING. I've tested it and now it shows the message in yellow.

On the other hand, if it's not a supported configuration, then this seems a 
packaging bug and it would be desirable to create /var/log/ntpsec with 
appropriate permissions in the  postinst in an unconditional way (not 
conditionally as it's currently done).

[ Note: I really don't know if a missing /var/log/ntpsec is intended to be a 
supported configuration or not, you might want to contact upstream for that ].

Thanks.
--- a/ntpd/ntpd.c
+++ b/ntpd/ntpd.c
@@ -875,7 +875,7 @@ main(
 #endif
 
        if (access(statsdir, W_OK) != 0) {
-           msyslog(LOG_ERR, "statistics directory %s does not exist or is 
unwriteable, error %s", statsdir, strerror(errno));
+           msyslog(LOG_WARNING, "statistics directory %s does not exist or is 
unwriteable, error %s", statsdir, strerror(errno));
        }
 
        mainloop();

Reply via email to