From 574ce54dae3089d6d2886bac6b8895510b0ececb Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 1 Jul 2016 13:17:03 +0200 Subject: reinstalling local deb file is no downgrade MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- apt-pkg/deb/deblistparser.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apt-pkg/deb') 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); -- cgit v1.2.3