summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog3
-rw-r--r--lib/dpkg/parse.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 60f4c3a1e..78d11178a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -79,6 +79,9 @@ dpkg (1.17.0) UNRELEASED; urgency=low
* Remove update-alternatives, dpkg-divert and dpkg-statoverride
compatibility symlinks under /usr/sbin/.
* Remove install-info wrapper.
+ * Only ignore older packages if the existing version is informative. This
+ allows any program using libdpkg to parse the available file to see again
+ packages with versions lesser than 0-0 (like 0~0-0). Closes: #676664
[ Updated manpages translations ]
* Fix incorrect translation of "fortify" in French manpage for dpkg-buildflags
diff --git a/lib/dpkg/parse.c b/lib/dpkg/parse.c
index 71076de27..b51ca1b3d 100644
--- a/lib/dpkg/parse.c
+++ b/lib/dpkg/parse.c
@@ -742,6 +742,7 @@ int parsedb(const char *filename, enum parsedbflags flags,
db_pkgbin = &db_pkg->installed;
if (((flags & pdb_ignoreolder) || ps.type == pdb_file_available) &&
+ dpkg_version_is_informative(&db_pkgbin->version) &&
dpkg_version_compare(&new_pkgbin->version, &db_pkgbin->version) < 0)
continue;