summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog14
-rw-r--r--debian/control4
-rw-r--r--debian/copyright2
-rw-r--r--debian/lrc.config2
-rw-r--r--debian/patches/120_syslog-parse-upgrade.patch175
-rw-r--r--debian/patches/series3
6 files changed, 196 insertions, 4 deletions
diff --git a/debian/changelog b/debian/changelog
index dc81e50..75724f0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+mailgraph (1.14-23) unstable; urgency=medium
+
+ * Upgrade Parse::Syslog to version 1.11 to support RFC3339 or
+ syslog-ng ISO dates (Closes: #1089039).
+ (Thanks to Dimitar Angelov <mitko@edabg.com>)
+ * Declare compliance with Debian Policy 4.7.2 (No changes needed).
+ * debian/control:
+ - Change Vcs-Git from git: to https:.
+ * debian/copyright:
+ - Add year 2025 to myself.
+ * New debian/lrc.config for overright lrc tests.
+
+ -- Jörg Frings-Fürst <debian@jff.email> Tue, 18 Mar 2025 17:42:22 +0100
+
mailgraph (1.14-22) unstable; urgency=medium
* Refresh debian/patches/0100-new_syslog_format.patch:
diff --git a/debian/control b/debian/control
index fd5095c..42f0c19 100644
--- a/debian/control
+++ b/debian/control
@@ -5,9 +5,9 @@ Maintainer: Jörg Frings-Fürst <debian@jff.email>
Build-Depends:
debhelper-compat (= 13),
po-debconf
-Standards-Version: 4.6.2.0
+Standards-Version: 4.7.2
Homepage: https://mailgraph.schweikert.ch
-Vcs-Git: git://git.jff.email/mailgraph.git
+Vcs-Git: https://git.jff.email/cgit/mailgraph.git
Vcs-Browser: https://git.jff.email/cgit/mailgraph.git
Rules-Requires-Root: no
diff --git a/debian/copyright b/debian/copyright
index b081433..74257d5 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -11,7 +11,7 @@ License: GPL-2
Files: debian/*
Copyright: 2002-2008 Norbert Tretkowski <nobse@debian.org>
2010-2012 Julien Valroff <julien@debian.org>
- 2014-2023 Jörg Frings-Fürst <debian@jff.email>
+ 2014-2025 Jörg Frings-Fürst <debian@jff.email>
License: GPL-2
Files: debian/patches/0100-new_syslog_format.patch
diff --git a/debian/lrc.config b/debian/lrc.config
new file mode 100644
index 0000000..e605943
--- /dev/null
+++ b/debian/lrc.config
@@ -0,0 +1,2 @@
+mailgraph.cgi
+mailgraph.pl
diff --git a/debian/patches/120_syslog-parse-upgrade.patch b/debian/patches/120_syslog-parse-upgrade.patch
new file mode 100644
index 0000000..e815a0b
--- /dev/null
+++ b/debian/patches/120_syslog-parse-upgrade.patch
@@ -0,0 +1,175 @@
+Index: mailgraph-1.14/mailgraph.pl
+===================================================================
+--- mailgraph-1.14.orig/mailgraph.pl
++++ mailgraph-1.14/mailgraph.pl
+@@ -5,7 +5,7 @@
+ # copyright (c) 2000-2007 David Schweikert <david@schweikert.ch>
+ # released under the GNU General Public License
+
+-######## Parse::Syslog 1.09 (automatically embedded) ########
++######## Parse::Syslog 1.11 (automatically embedded) ########
+ package Parse::Syslog;
+ use Carp;
+ use Symbol;
+@@ -13,6 +13,7 @@ use Time::Local;
+ use IO::File;
+ use strict;
+ use vars qw($VERSION);
++use warnings;
+ my %months_map = (
+ 'Jan' => 0, 'Feb' => 1, 'Mar' => 2,
+ 'Apr' => 3, 'May' => 4, 'Jun' => 5,
+@@ -23,7 +24,7 @@ my %months_map = (
+ 'jul' => 6, 'aug' => 7, 'sep' => 8,
+ 'oct' => 9, 'nov' =>10, 'dec' =>11,
+ );
+-sub is_dst_switch($$$)
++sub is_dst_switch
+ {
+ my ($self, $t, $time) = @_;
+ # calculate the time in one hour and see if the difference is 3600 seconds.
+@@ -57,7 +58,7 @@ sub is_dst_switch($$$)
+ # fast timelocal, cache minute's timestamp
+ # don't cache more than minute because of daylight saving time switch
+ # 0: sec, 1: min, 2: h, 3: day, 4: month, 5: year
+-sub str2time($$$$$$$$)
++sub str2time
+ {
+ my $self = shift @_;
+ my $GMT = pop @_;
+@@ -75,6 +76,12 @@ sub str2time($$$$$$$$)
+ my $time;
+ if($GMT) {
+ $time = timegm(@_);
++ # with explicit timezone:
++ if($GMT =~ /^([\+\-])(\d\d):(\d\d)$/) {
++ my $off_secs = 60 * (60*$2 + $3);
++ $off_secs *= -1 if ($1 eq '+');
++ $time += $off_secs;
++ }
+ }
+ else {
+ $time = timelocal(@_);
+@@ -109,7 +116,7 @@ sub str2time($$$$$$$$)
+ $self->{last_time} = $time;
+ return $time+($self->{dst_comp}||0);
+ }
+-sub _use_locale($)
++sub _use_locale
+ {
+ use POSIX qw(locale_h strftime);
+ my $old_locale = setlocale(LC_TIME);
+@@ -121,7 +128,7 @@ sub _use_locale($)
+ }
+ setlocale(LC_TIME, $old_locale);
+ }
+-sub new($$;%)
++sub new
+ {
+ my ($class, $file, %data) = @_;
+ croak "new() requires one argument: file" unless defined $file;
+@@ -140,11 +147,11 @@ sub new($$;%)
+ }
+ elsif(! ref $file) {
+ if($file eq '-') {
+- my $io = new IO::Handle;
++ my $io = IO::Handle->new();
+ $data{file} = $io->fdopen(fileno(STDIN),"r");
+ }
+ else {
+- $data{file} = new IO::File($file, "<");
++ $data{file} = IO::File->new($file, "<");
+ defined $data{file} or croak "can't open $file: $!";
+ }
+ }
+@@ -164,7 +171,7 @@ sub new($$;%)
+ }
+ return bless \%data, $class;
+ }
+-sub _year_increment($$)
++sub _year_increment
+ {
+ my ($self, $mon) = @_;
+ # year change
+@@ -182,7 +189,7 @@ sub _year_increment($$)
+ }
+ $self->{_last_mon} = $mon;
+ }
+-sub _next_line($)
++sub _next_line
+ {
+ my $self = shift;
+ my $f = $self->{file};
+@@ -193,7 +200,7 @@ sub _next_line($)
+ return $f->getline;
+ }
+ }
+-sub _next_syslog($)
++sub _next_syslog
+ {
+ my ($self) = @_;
+ while($self->{_repeat}>0) {
+@@ -213,16 +220,33 @@ sub _next_syslog($)
+ \s+
+ (?:\[LOG_[A-Z]+\]\s+)? # FreeBSD
+ (.*) # text -- 7
++ $/x or
++ $str =~ /^
++ (\d\d\d\d)-(\d\d)-(\d\d) # RFC3339 or syslog-ng ISO date -- 1, 2, 3
++ T
++ (\d+):(\d+):(\d+)(?:\.\d+)? # time (optional frac_sec) -- 4, 5, 6
++ (Z|[\+\-]\d\d:\d\d) # TZ -- 7
++ \s
++ ([-\w\.\@:]+) # host -- 8
++ \s+
++ (.*) # text -- 9
+ $/x or do
+ {
+ warn "WARNING: line not in syslog format: $str";
+ next line;
+ };
+- my $mon = $months_map{$1};
+- defined $mon or croak "unknown month $1\n";
+- $self->_year_increment($mon);
++ my ($time, $host, $text);
+ # convert to unix time
+- my $time = $self->str2time($5,$4,$3,$2,$mon,$self->{year}-1900,$self->{GMT});
++ if (defined($months_map{$1})) { # BSD Syslog
++ my $mon = $months_map{$1};
++ defined $mon or croak "unknown month $1\n";
++ $self->_year_increment($mon);
++ $time = $self->str2time($5,$4,$3,$2,$mon,$self->{year}-1900,$self->{GMT});
++ ($host, $text) = ($6, $7);
++ } else { # RFC3339/syslog-ng
++ $time = $self->str2time($6,$5,$4,$3,$2-1,$1-1900,$7);
++ ($host, $text) = ($8, $9);
++ }
+ if(not $self->{allow_future}) {
+ # accept maximum one day in the present future
+ if($time - time > 86400) {
+@@ -230,7 +254,6 @@ sub _next_syslog($)
+ next line;
+ }
+ }
+- my ($host, $text) = ($6, $7);
+ # last message repeated ... times
+ if($text =~ /^(?:last message repeated|above message repeats) (\d+) time/) {
+ next line if defined $self->{repeat} and not $self->{repeat};
+@@ -287,7 +310,7 @@ sub _next_syslog($)
+ }
+ return undef;
+ }
+-sub _next_metalog($)
++sub _next_metalog
+ {
+ my ($self) = @_;
+ my $file = $self->{file};
+@@ -341,7 +364,7 @@ sub _next_metalog($)
+ }
+ return undef;
+ }
+-sub next($)
++sub next
+ {
+ my ($self) = @_;
+ if($self->{type} eq 'syslog') {
diff --git a/debian/patches/series b/debian/patches/series
index 4bc9277..b0267f0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,4 +7,5 @@
#103_postfix-long-queue-IDs.diff
#105_postscreen.diff
#110_mailgraph.cgi.patch
-0100-new_syslog_format.patch
+#0100-new_syslog_format.patch
+120_syslog-parse-upgrade.patch