From: Arch Librarian Date: Mon, 20 Sep 2004 16:56:57 +0000 (+0000) Subject: Bug 87390 X-Git-Tag: 0.7.24ubuntu1~1080 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/6aeda9fa854fce99ecda5331e69b782b711bed74 Bug 87390 Author: jgg Date: 2001-03-03 23:27:24 GMT Bug 87390 --- 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