- don't pass name spaces for now
authorMichael Schroeder <mls@suse.de>
Fri, 5 Oct 2007 23:19:53 +0000 (23:19 +0000)
committerMichael Schroeder <mls@suse.de>
Fri, 5 Oct 2007 23:19:53 +0000 (23:19 +0000)
- don't supplement bad architectures

src/pool.c
src/solver.c

index 0abf7da..b7e6dfb 100644 (file)
@@ -336,10 +336,12 @@ addrelproviders(Pool *pool, Id d)
        queuepushunique(&plist, p);
       break;
     case REL_NAMESPACE:
+#if 0
       /* unknown namespace, just pass through */
       pp = GET_PROVIDESP(evr, p);
       while ((p = *pp++) != 0)
        queuepush(&plist, p);
+#endif
       break;
     default:
       break;
index 749a1bb..e5c0b5f 100644 (file)
@@ -806,6 +806,10 @@ addrulesforsupplements(Solver *solv, Map *m)
       if (MAPTST(m, i))
        continue;
       s = pool->solvables + i;
+      if (s->arch == ARCH_SRC || s->arch == ARCH_NOSRC)
+       continue;
+      if (pool->id2arch && (s->arch > pool->lastarch || !pool->id2arch[s->arch]))
+       continue;
       sup = 0;
       if ((supp = s->supplements) != 0)
        {
@@ -1807,6 +1811,8 @@ run_solver(Solver *solv, int disablerules, int doweak)
                    continue;
 
                  if (dq.count > 1)
+                   prune_to_recommended(solv, &dq);
+                 if (dq.count > 1)
                    prune_best_version_arch(pool, &dq);
 #if 0
                  s = pool->solvables + dq.elements[0];
@@ -1969,6 +1975,10 @@ run_solver(Solver *solv, int disablerules, int doweak)
                  s = pool->solvables + i;
                  if (!s->supplements && !s->freshens)
                    continue;
+                 if (s->arch == ARCH_SRC || s->arch == ARCH_NOSRC)
+                   continue;
+                 if (pool->id2arch && (s->arch > pool->lastarch || !pool->id2arch[s->arch]))
+                   continue;
                  if ((supp = s->supplements) != 0)
                    {
                      while ((sup = *supp++) != 0)