summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-07-01 13:17:03 +0200
committerJulian Andres Klode <jak@debian.org>2016-08-31 13:49:37 +0200
commit574ce54dae3089d6d2886bac6b8895510b0ececb (patch)
treec74f9f44b1d7c38ac199883e6f6257b36d659b91 /apt-pkg
parent267314664da07b892bff7c2ee8060faaa3bed74d (diff)
reinstalling local deb file is no downgrade
If we have a (e.g. locally built) deb file installed and do try to install it again apt complained about this being a downgrade, but it wasn't as it is the very same version… it was just confused into not merging the versions together which looks like a downgrade then. The same size assumption is usually good, but given that volatile files are parsed last (even after the status file) the base assumption no longer holds, but is easy to adept without actually changing anything in practice. (cherry picked from commit e7edb2fef8370d54a4b8e5a01266e6eda81ef84e)
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/deb/deblistparser.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc
index e24ced271..f7f64debd 100644
--- a/apt-pkg/deb/deblistparser.cc
+++ b/apt-pkg/deb/deblistparser.cc
@@ -999,7 +999,7 @@ bool debListParser::SameVersion(unsigned short const Hash, /*{{{*/
// status file is parsed last, so the first version we encounter is
// probably also the version we have downloaded
unsigned long long const Size = Section.FindULL("Size");
- if (Size != 0 && Size != Ver->Size)
+ if (Size != 0 && Ver->Size != 0 && Size != Ver->Size)
return false;
// available everywhere, but easier to check here than to include in VersionHash
unsigned char MultiArch = ParseMultiArch(false);