Package: dpkg
Version: 1.18.10
Tags: patch
In jessie and earlier, dpkg-parsechangelog will parse an unfinalised
changelog. Ie, one that looks like this:
dpkg (1.18.11~0iwj1) UNRELEASED; urgency=medium
* dpkg-parsechangelog: Tolerate, once more, unfinalised changelogs.
Avoids:
Can't call method "epoch" on an undefined value
at /usr/share/perl5/Dpkg/Changelog.pm line 498.
--
It would print something like this:
dpkg-parsechangelog: warning: debian/changelog(l23): badly formatted
trailer line
LINE: --
dpkg-parsechangelog: warning: debian/changelog(l25): found start of
entry where expected more change data or trailer
LINE: chiark-utils (4.5.0~iwj4) unstable; urgency=medium
dpkg-parsechangelog: warning: debian/changelog(l25): found end of file
where expected more change data or trailer
but it would exit with status zero and produce the necessary output.
IMO finalising changelogs early is poor practice (particularly when
using revision control systems like git). Arguably some kind of force
option might be a useful safety catch.
But for now, I have just fixed the bug which causes the
apparently-intended fallback to not work.
Thanks,
Ian.
>From dd832d939be64011bba7e9a846fa52ea125fdc2d Mon Sep 17 00:00:00 2001
From: Ian Jackson <[email protected]>
Date: Sat, 5 Nov 2016 13:39:29 +0000
Subject: [PATCH] dpkg-parsechangelog: Tolerate, once more, unfinalised
changelogs. Avoids: Can't call method "epoch" on an undefined value at
/usr/share/perl5/Dpkg/Changelog.pm line 498.
Signed-off-by: Ian Jackson <[email protected]>
---
debian/changelog | 9 +++++++++
scripts/Dpkg/Changelog.pm | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/debian/changelog b/debian/changelog
index 695c55d..4ecaef2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+dpkg (1.18.11~0iwj1) UNRELEASED; urgency=medium
+
+ * dpkg-parsechangelog: Tolerate, once more, unfinalised changelogs.
+ Avoids:
+ Can't call method "epoch" on an undefined value
+ at /usr/share/perl5/Dpkg/Changelog.pm line 498.
+
+ -- Ian Jackson <[email protected]> Sat, 05 Nov 2016 13:39:13
+0000
+
dpkg (1.18.10) unstable; urgency=medium
[ Guillem Jover ]
diff --git a/scripts/Dpkg/Changelog.pm b/scripts/Dpkg/Changelog.pm
index 0424db6..234c3db 100644
--- a/scripts/Dpkg/Changelog.pm
+++ b/scripts/Dpkg/Changelog.pm
@@ -495,7 +495,7 @@ sub _format_dpkg {
$f->{Distribution} = join(' ', $src->get_distributions());
$f->{Maintainer} = $src->get_maintainer() // '';
$f->{Date} = $src->get_timestamp() // '';
- $f->{Timestamp} = $src->get_timepiece->epoch // '';
+ $f->{Timestamp} = $src->get_timepiece && $src->get_timepiece->epoch // '';
$f->{Changes} = $src->get_dpkg_changes();
# handle optional fields
--
2.10.1
--
Ian Jackson <[email protected]> These opinions are my own.
If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.