[packages/exim] - rel 12; exigrep now supports bz2, xz, lzma compressed log files, too
arekm
arekm at pld-linux.org
Sat Oct 12 20:39:39 CEST 2013
commit 2634bfffebcc8a9290a6d3fb16399f923df97722
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sat Oct 12 20:39:36 2013 +0200
- rel 12; exigrep now supports bz2, xz, lzma compressed log files, too
exim-bug-659.patch | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
exim.spec | 6 ++--
2 files changed, 86 insertions(+), 3 deletions(-)
---
diff --git a/exim.spec b/exim.spec
index 2debc10..46c2a5a 100644
--- a/exim.spec
+++ b/exim.spec
@@ -15,7 +15,7 @@ Summary(pl.UTF-8): Agent Transferu Poczty Uniwersytetu w Cambridge
Summary(pt_BR.UTF-8): Servidor de correio eletrônico exim
Name: exim
Version: 4.80.1
-Release: 11
+Release: 12
Epoch: 2
License: GPL
Group: Networking/Daemons/SMTP
@@ -51,7 +51,7 @@ Patch5: localscan_dlopen_%{name}_4.20_or_better.patch
# http://sourceforge.net/projects/eximdsn/
Patch7: %{name}_463_dsn_1_3.patch
Patch8: %{name}-spam-timeout.patch
-
+Patch9: exim-bug-659.patch
Patch10: %{name}-force-sigalrm.patch
Patch11: %{name}-bug-1057.patch
URL: http://www.exim.org/
@@ -167,7 +167,7 @@ Pliki nagłówkowe dla Exima.
%patch7 -p1
%patch8 -p1
-
+%patch9 -p2
%patch10 -p1
%patch11 -p1
diff --git a/exim-bug-659.patch b/exim-bug-659.patch
new file mode 100644
index 0000000..bd683f6
--- /dev/null
+++ b/exim-bug-659.patch
@@ -0,0 +1,83 @@
+From 4f061bd7f1cd0d2410731f194cf1e6d23014df0d Mon Sep 17 00:00:00 2001
+From: Todd Lyons <tlyons at exim.org>
+Date: Sat, 12 Oct 2013 09:42:31 -0700
+Subject: [PATCH] Bug 1334: AutoDetect compression type in exigrep
+
+Does not use any extra perl modules.
+Attempts hard coded types first, so no extra code for the standard
+ case.
+Easy to add more compression types.
+---
+ src/src/exigrep.src | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 49 insertions(+)
+
+diff --git a/src/src/exigrep.src b/src/src/exigrep.src
+index 0950b58..eadf4c7 100644
+--- a/src/src/exigrep.src
++++ b/src/src/exigrep.src
+@@ -124,6 +124,50 @@ elsif ( ($invert && (($insensitive && !/$pattern/io) || !/$pattern/o)) ||
+ { print "$_\n"; }
+ }
+
++# Rotated log files are frequently compressed and there are a variety of
++# formats it could be compressed with. Rather than use just one that is
++# detected and hardcoded at Exim compile time, detect and use what the
++# logfile is compressed with on the fly.
++#
++# List of known compression extensions and their associated commands:
++my $compressors = {
++ gz => { cmd => 'zcat', args => '' },
++ bz2 => { cmd => 'bzcat', args => '' },
++ xz => { cmd => 'xzcat', args => '' },
++ lzma => { cmd => 'lzma', args => '-dc' }
++};
++my $csearch = 0;
++
++sub detect_compressor_bin
++ {
++ my $ext = shift();
++ my $c = $compressors->{$ext}->{cmd};
++ $compressors->{$ext}->{bin} = `which $c`;
++ chomp($compressors->{$ext}->{bin});
++ }
++
++sub detect_compressor_capable
++ {
++ my $filename = shift();
++ map { &detect_compressor_bin($_) } keys %$compressors
++ if (!$csearch);
++ $csearch = 1;
++ return undef
++ unless (grep {$filename =~ /\.(?:$_)$/} keys %$compressors);
++ # Loop through them, figure out which one it detected,
++ # and build the commandline.
++ my $cmdline = undef;
++ foreach my $ext (keys %$compressors)
++ {
++ if ($filename =~ /\.(?:$ext)$/)
++ {
++ $cmdline = $compressors->{$ext}->{bin} ." ".
++ $compressors->{$ext}->{args};
++ last;
++ }
++ }
++ return $cmdline;
++ }
+
+ # The main program. Extract the pattern and make sure any relevant characters
+ # are quoted if the -l flag is given. The -t flag gives a time-on-queue value
+@@ -154,6 +198,11 @@ if (@ARGV)
+ open(LOG, "ZCAT_COMMAND $filename |") ||
+ die "Unable to zcat $filename: $!\n";
+ }
++ elsif (my $cmdline = &detect_compressor_capable($filename))
++ {
++ open(LOG, "$cmdline $filename |") ||
++ die "Unable to decompress $filename: $!\n";
++ }
+ else
+ {
+ open(LOG, "<$filename") || die "Unable to open $filename: $!\n";
+--
+1.7.9.5
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/exim.git/commitdiff/2634bfffebcc8a9290a6d3fb16399f923df97722
More information about the pld-cvs-commit
mailing list