Date: Tue, 2 Sep 2025 06:44:21 GMT From: Xin LI <delphij@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 39d668f1e09e - main - newsyslog(8): Remove the -c command line option. Message-ID: <202509020644.5826iLYv092718@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=39d668f1e09ebfc678b3c69c19a0ad0391361c56 commit 39d668f1e09ebfc678b3c69c19a0ad0391361c56 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2025-09-02 06:44:12 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2025-09-02 06:44:12 +0000 newsyslog(8): Remove the -c command line option. The -c command-line option, which allowed setting a global compression method, is removed in favor of the <compress> directive in newsyslog.conf. The motivation of this change is to eliminate a source of potential confusion. Since newsyslog(8) is typically invoked by cron(8), having a command line option that can override it could cause inconsistent behavior (specifying in crontab would take precedence). Suggested by: karels Differential Revision: https://reviews.freebsd.org/D43466 --- usr.sbin/newsyslog/newsyslog.8 | 22 +--------- usr.sbin/newsyslog/newsyslog.c | 29 ++----------- usr.sbin/newsyslog/newsyslog.conf.5 | 84 +++++++++++++++++++++++++++---------- 3 files changed, 65 insertions(+), 70 deletions(-) diff --git a/usr.sbin/newsyslog/newsyslog.8 b/usr.sbin/newsyslog/newsyslog.8 index 6d4fc378e790..7429e3b8eb01 100644 --- a/usr.sbin/newsyslog/newsyslog.8 +++ b/usr.sbin/newsyslog/newsyslog.8 @@ -14,7 +14,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd December 22, 2023 +.Dd September 1, 2025 .Dt NEWSYSLOG 8 .Os .Sh NAME @@ -24,7 +24,6 @@ .Nm .Op Fl CFNPnrsv .Op Fl a Ar directory -.Op Fl c Ar none Ns | Ns Ar legacy Ns | Ns Ar bzip2 Ns | Ns Ar gzip Ns | Ns Ar xz Ns | Ns Ar zstd .Op Fl d Ar directory .Op Fl f Ar config_file .Op Fl S Ar pidfile @@ -79,25 +78,6 @@ and mode three (above) assumes that this is so. The following options can be used with .Nm : .Bl -tag -width indent -.It Fl c Ar none Ns | Ns Ar legacy Ns | Ns Ar bzip2 Ns | Ns Ar gzip Ns | Ns Ar xz Ns | Ns Ar zstd -Instructs -.Nm -to use the specified compression method when a file is flagged for compression. -The default method is -.Dq legacy , -which interprets the -.Sy J, X, Y, Z -flags in the configuration file according to their historical meanings. -This default setting can be overridden by specifying -.Fl c Ar none , -which causes -.Nm -to ignore all compression flags. -Alternatively, specifying one of the compression methods: -.Sy bzip2 , gzip , xz , -or -.Sy zstd , -will apply the chosen method to all files flagged for compression. .It Fl f Ar config_file Instruct .Nm diff --git a/usr.sbin/newsyslog/newsyslog.c b/usr.sbin/newsyslog/newsyslog.c index d07f302fd24f..7ebdd7cbc0dd 100644 --- a/usr.sbin/newsyslog/newsyslog.c +++ b/usr.sbin/newsyslog/newsyslog.c @@ -701,19 +701,12 @@ parse_args(int argc, char **argv) hostname_shortlen = strcspn(hostname, "."); /* Parse command line options. */ - while ((ch = getopt(argc, argv, "a:c:d:f:nrst:vCD:FNPR:S:")) != -1) + while ((ch = getopt(argc, argv, "a:d:f:nrst:vCD:FNPR:S:")) != -1) switch (ch) { case 'a': archtodir++; archdirname = optarg; break; - case 'c': - if (!parse_compression_type(optarg, &compress_type_override)) { - warnx("Unrecognized compression method '%s'.", optarg); - usage(); - } - compress_type_set = true; - break; case 'd': destdir = optarg; break; @@ -858,26 +851,10 @@ parse_doption(const char *doption) static void usage(void) { - int i; - char *alltypes = NULL, *tmp = NULL; - - for (i = 0; i < COMPRESS_TYPES; i++) { - if (i == COMPRESS_NONE) { - (void)asprintf(&tmp, "%s|legacy", compress_type[i].name); - } else { - (void)asprintf(&tmp, "%s|%s", alltypes, compress_type[i].name); - } - if (alltypes) - free(alltypes); - alltypes = tmp; - tmp = NULL; - } fprintf(stderr, - "usage: newsyslog [-CFNPnrsv] [-a directory] [-c %s]\n" - " [-d directory] [-f config_file]\n" - " [-S pidfile] [-t timefmt] [[-R tagname] file ...]\n", - alltypes); + "usage: newsyslog [-CFNPnrsv] [-a directory] [-d directory] [-f config_file]\n" + " [-S pidfile] [-t timefmt] [[-R tagname] file ...]\n"); exit(1); } diff --git a/usr.sbin/newsyslog/newsyslog.conf.5 b/usr.sbin/newsyslog/newsyslog.conf.5 index 2887ecb226aa..d94c39332597 100644 --- a/usr.sbin/newsyslog/newsyslog.conf.5 +++ b/usr.sbin/newsyslog/newsyslog.conf.5 @@ -18,7 +18,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd November 11, 2024 +.Dd September 1, 2025 .Dt NEWSYSLOG.CONF 5 .Os .Sh NAME @@ -44,8 +44,7 @@ reads a configuration file, normally .Pa /etc/newsyslog.conf , to determine which logs may potentially be rotated and archived. -Each line has five mandatory fields and four optional fields, -separated with whitespace. +.Pp Blank lines or lines beginning with .Ql # are ignored. @@ -63,34 +62,73 @@ in this case preceding is removed and .Ql # is treated as an ordinary character. +.Pp +The special +.Dq Ar <compress> +and +.Dq Ar <include> +lines are defined as follows: +.Bl -tag -width indent +.It Ar <compress> Ns Ar none Ns | Ns Ar legacy Ns | Ns Ar bzip2 Ns | Ns Ar gzip Ns | Ns Ar xz Ns | Ns Ar zstd +This special option sets the global compress method, +it should be placed before all log file entries in +.Nm +configuration file. +The global compress method applies to all log files flagged as +compressible +.Dq Sy J , +.Dq Sy X , +.Dq Sy Y , +.Dq Sy Z +.Ar flags +below. +.Pp +The following compression methods are available: +.Bl -tag -width indent +.It Cm none +No compression is performed, even when a log file is marked as +compressible. This is useful for filesystems that have native +compression support. +.It Cm legacy +Interprets the +.Sy J, X, Y, Z +flags in the configuration file according to their historical meanings. +This is the default method. +.It Cm bzip2 +Use +.Xr bzip2 1 +for all compressible log files. +.It Cm gzip +Use +.Xr gzip 1 +for all compressible log files. +.It Cm xz +Use +.Xr xz 1 +for all compressible log files. +.It Cm zstd +Use +.Xr zstd 1 +for all compressible log files. +.El +.It Ar <include> +The special <include> entry is used to include other configuration +files and supports globbing. +.El +.Pp +Each other line has five mandatory fields and four optional fields, +separated with whitespace. The fields of the configuration file are as follows: .Bl -tag -width indent .It Ar logfile_name Name of the system log file to be archived, -or one of the special strings -.Dq Li <compress> , -.Dq Li <default> , -or -.Dq Li <include> . -The <compress> entry, -which should be placed at the beginning of the -.Nm -configuration file, -sets the global compress method. -This method is applied when a log file is flagged as -compressible, -which has the same effect of passing a compress method to the -.Fl c -option on the -.Xr newsyslog 8 -command line. +or the special string +.Dq Ar <default> . The special <default> entry will only be used if a log file name is given as a command line argument to .Xr newsyslog 8 , and if that log file name is not matched by any other line in the configuration file. -The include entry is used to include other configuration -files and supports globbing. .It Ar owner : Ns Ar group This optional field specifies the owner and group for the archive file. The @@ -432,7 +470,7 @@ can be the signal number, e.g., 30 for .El .Sh EXAMPLES The following is an example of the -.Dq Aq Li include +.Dq <include> entry: .Dl "<include> /etc/newsyslog-local.conf" .Sh SEE ALSO
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202509020644.5826iLYv092718>