From 309b4a2e3bfa8d9255fa3e325bf42f62ad99bd73 Mon Sep 17 00:00:00 2001 From: Pavel Simovec Date: Mon, 4 Aug 2025 20:41:32 +0200 Subject: [PATCH] Add support for zstd-compressed log files Resolves: RHEL-97021 --- logwatch.spec | 8 +++++++- zstd-log-support.patch | 31 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 zstd-log-support.patch diff --git a/logwatch.spec b/logwatch.spec index 3ab0216..9423510 100644 --- a/logwatch.spec +++ b/logwatch.spec @@ -2,13 +2,14 @@ Summary: A log file analysis program Name: logwatch Version: 7.5.5 -Release: 7%{?dist} +Release: 8%{?dist} License: MIT URL: https://sourceforge.net/projects/logwatch Source0: logwatch-%{version}.tar.gz Patch0: cron.patch Patch1: systemd-deactivated.patch Patch2: sshd-sort-by-count.patch +Patch3: zstd-log-support.patch #Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz BuildRequires: perl-generators Requires: grep @@ -37,6 +38,7 @@ of the package on many systems. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %build @@ -131,6 +133,10 @@ echo "# Configuration overrides for specific logfiles/services may be placed her %{_unitdir}/logwatch.timer %changelog +* Mon Aug 04 2025 Pavel Simovec +- Add support for zstd-compressed log files +- Resolves: RHEL-97021 + * Thu Nov 28 2024 Pavel Simovec - 7.5.5-7 - sshd: sort IP addresses reported by count - Resolves: RHEL-69277 diff --git a/zstd-log-support.patch b/zstd-log-support.patch new file mode 100644 index 0000000..116d56e --- /dev/null +++ b/zstd-log-support.patch @@ -0,0 +1,31 @@ +diff --color -urN a/scripts/logwatch.pl b/scripts/logwatch.pl +--- a/scripts/logwatch.pl 2025-07-15 12:47:54.869744800 +0200 ++++ b/scripts/logwatch.pl 2025-07-15 16:34:26.473278680 +0200 +@@ -96,6 +96,7 @@ + $Config{'pathtozcat'} = "zcat"; + $Config{'pathtobzcat'} = "bzcat"; + $Config{'pathtoxzcat'} = "xzcat"; ++$Config{'pathtozstdcat'} = "zstdcat"; + $Config{'output'} = "stdout"; #8.0 + $Config{'format'} = "text"; #8.0 + $Config{'encode'} = "none"; #8.0 +@@ -746,7 +747,7 @@ + + # Handle compressed log files using the archive codepath + foreach my $lf (@{$LogFileData{$LogFile}{'logfiles'}}) { +- if ($lf =~ /\.(?:gz|bz2|xz)$/) { ++ if ($lf =~ /\.(?:gz|bz2|xz|zst)$/) { + push @{$LogFileData{$LogFile}{'archives'}}, $lf; + } else { + push @FileList, $lf; +@@ -798,6 +799,10 @@ + my $arguments = "'${Archive}' 2>/dev/null >> $DestFile"; + system("$Config{'pathtoxzcat'} $arguments") == 0 + or die "system '$Config{'pathtoxzcat'} $arguments' failed: $?" ++ } elsif (($Archive =~ m/zst$/) && (-f "$Archive") && (-s "$Archive")) { ++ my $arguments = "'${Archive}' 2>/dev/null >> $DestFile"; ++ system("$Config{'pathtozstdcat'} $arguments") == 0 ++ or die "system '$Config{'pathtozstdcat'} $arguments' failed: $?" + } elsif ((-f "$Archive") && (-s "$Archive")) { + my $arguments = "'${Archive}' >> $DestFile"; + system("$Config{'pathtocat'} $arguments") == 0