From 6aeda9fa854fce99ecda5331e69b782b711bed74 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:56:57 +0000 Subject: [PATCH] Bug 87390 Author: jgg Date: 2001-03-03 23:27:24 GMT Bug 87390 --- apt-pkg/policy.cc | 18 ++++++++++++++++-- debian/changelog | 4 +++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index 029a37df7..e813a0903 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: policy.cc,v 1.2 2001/02/20 07:03:17 jgg Exp $ +// $Id: policy.cc,v 1.3 2001/03/03 23:27:24 jgg Exp $ /* ###################################################################### Package Version Policy implementation @@ -145,9 +145,23 @@ pkgCache::VerIterator pkgPolicy::GetCandidateVer(pkgCache::PkgIterator Pkg) pin that stays at that setting. */ for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; Ver++) - { + { + /* This is a side effect of the condition below, and is added for + completeness, though it should not be necessary */ + if (Ver->Arch == 0) + continue; + for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; VF++) { + /* If this is the status file, and the current version is not the + version in the status file (ie it is not installed, or somesuch) + then it is not a candidate for installation, ever. This weeds + out bogus entries that may be due to config-file states, or + other. */ + if ((VF.File()->Flags & pkgCache::Flag::NotSource) == pkgCache::Flag::NotSource && + Pkg.CurrentVer() != Ver) + continue; + signed Prio = PFPriority[VF.File()->ID]; if (Prio > Max) { diff --git a/debian/changelog b/debian/changelog index 86d495815..3199cfb74 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,7 +15,9 @@ apt (0.5.1) unstable; urgency=low * apt-extracttemplates moved from debconf into apt-utils * s390 archtable entry. Closes: #88232 * Dan's segfault - + * Some instances where the status file can source a package in a + non-sensical way. Closes: #87390 + -- Jason Gunthorpe Thu, 22 Feb 2001 00:39:15 -0500 apt (0.5.0) unstable; urgency=low -- 2.45.2