]> git.pld-linux.org Git - packages/exim.git/commitdiff
- rel 12; exigrep now supports bz2, xz, lzma compressed log files, too auto/th/exim-4.80.1-12
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 12 Oct 2013 18:39:36 +0000 (20:39 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 12 Oct 2013 18:39:36 +0000 (20:39 +0200)
exim-bug-659.patch [new file with mode: 0644]
exim.spec

diff --git a/exim-bug-659.patch b/exim-bug-659.patch
new file mode 100644 (file)
index 0000000..bd683f6
--- /dev/null
@@ -0,0 +1,83 @@
+From 4f061bd7f1cd0d2410731f194cf1e6d23014df0d Mon Sep 17 00:00:00 2001
+From: Todd Lyons <tlyons@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
+
index 2debc109dc3e4dc402c7899313b95525e7117b17..46c2a5a2338ffc1a10d13cf7d3ba19b7ec6a2a5c 100644 (file)
--- 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
 
This page took 0.180924 seconds and 4 git commands to generate.