summaryrefslogtreecommitdiff
path: root/apt-pkg/deb
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-07-01 13:17:03 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2016-07-01 13:36:40 +0200
commite7edb2fef8370d54a4b8e5a01266e6eda81ef84e (patch)
treeea926604af6bc5439594958083c250786f0f264f /apt-pkg/deb
parenta0ed43f7323b9d7976ed0ba8d437a42e24af9eaf (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.
Diffstat (limited to 'apt-pkg/deb')
-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);