]> git.saurik.com Git - apt.git/commitdiff
Bug 87390
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:56:57 +0000 (16:56 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:56:57 +0000 (16:56 +0000)
Author: jgg
Date: 2001-03-03 23:27:24 GMT
Bug 87390

apt-pkg/policy.cc
debian/changelog

index 029a37df72c99e6550ccea1ae3250dd6be45ec26..e813a09037722bbb2db9df9217b705bff5cc7edc 100644 (file)
@@ -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)
         {
index 86d4958152d052498a2ac89678339243bfe4b18a..3199cfb74718c20f62892e2b640d9b897d5807aa 100644 (file)
@@ -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 <jgg@debian.org>  Thu, 22 Feb 2001 00:39:15 -0500
 
 apt (0.5.0) unstable; urgency=low