The following commit has been merged in the master branch:
commit 058c1fda3c5a6318a91500ec926c66e3fca5400e
Author: Steve Langasek <vor...@debian.org>
Date:   Fri Feb 4 23:12:29 2011 +0100

    dpkg: Complete arch checking of package relationships in the resolver
    
    In places where the architecture qualifier of a dependency has not been
    validated before-hand (through usage of deppossi_pkg_iterator), add a
    manual verification.
    
    In both cases, the checks are not needed with the current rules where
    both Replaces and Breaks can only have “any” as architecture qualifier
    but for completeness, we put them nevertheless.
    
    Signed-off-by: Guillem Jover <guil...@debian.org>

diff --git a/src/archives.c b/src/archives.c
index 039c5e4..bbf6020 100644
--- a/src/archives.c
+++ b/src/archives.c
@@ -228,6 +228,10 @@ does_replace(struct pkginfo *newpigp, struct pkgbin 
*newpifp,
           versiondescribe(&dep->list->version,vdew_always));
     if (!versionsatisfied(oldpifp, dep->list))
       continue;
+    /* The test below can only trigger if dep_replaces start having
+     * arch qualifiers different from “any”. */
+    if (!archsatisfied(oldpifp, dep->list))
+      continue;
     debug(dbg_depcon,"does_replace ... yes");
     return true;
   }
diff --git a/src/packages.c b/src/packages.c
index a7eeeee..df70b9e 100644
--- a/src/packages.c
+++ b/src/packages.c
@@ -470,6 +470,10 @@ breaks_check_one(struct varbuf *aemsgs, enum dep_check *ok,
       breaker->status == stat_configfiles) return;
   if (broken == breaker) return;
   if (!versionsatisfied(&broken->installed, breaks)) return;
+  /* The test below can only trigger if dep_breaks start having
+   * arch qualifiers different from “any”. */
+  if (!archsatisfied(&broken->installed, breaks))
+    return;
   if (ignore_depends(breaker)) return;
   if (virtbroken && ignore_depends(&virtbroken->pkg))
     return;

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to debian-dpkg-cvs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to