The following commit has been merged in the master branch:
commit 71d6e1b6c16df782dbe2736a285e7bd9040becd4
Author: Guillem Jover <[email protected]>
Date: Mon Jun 10 01:09:49 2013 +0200
libdpkg: Only ignore older packages if the existing version is informative
When ignoring older packages (either by explicit request, or when
parsing available files), we should not ignore them when the existing
version is empty, because then we would consider that the empty version
(equivalent to "0-0") is newer than "0~0-0" for example.
This affects any program using libdpkg to parse the available file.
Regression introduced in commit 86823d5792af8328107c3d86e486d2cf373da128.
Closes: #676664
diff --git a/debian/changelog b/debian/changelog
index 60f4c3a..78d1117 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 71076de..b51ca1b 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;
--
dpkg's main repository
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]