poldek: poldek/install3/misc.c - scoring: do not score packages ma...

mis mis at pld-linux.org
Wed Jan 30 22:25:30 CET 2008


Author: mis                          Date: Wed Jan 30 21:25:30 2008 GMT
Module: poldek                        Tag: HEAD
---- Log message:
- scoring: do not score packages marked for removal

---- Files affected:
poldek/poldek/install3:
   misc.c (1.2 -> 1.3) 

---- Diffs:

================================================================
Index: poldek/poldek/install3/misc.c
diff -u poldek/poldek/install3/misc.c:1.2 poldek/poldek/install3/misc.c:1.3
--- poldek/poldek/install3/misc.c:1.2	Fri Jan 25 15:24:39 2008
+++ poldek/poldek/install3/misc.c	Wed Jan 30 22:25:25 2008
@@ -210,15 +210,19 @@
                  pkg_cmp_name_evr(pkg, prev), same_packages_different_arch);
         }
         
-        if (i3_is_pkg_installed(ictx->ts, pkg, &cmprc) && cmprc > 0) 
-            scores[i] += 5; /* already installed and upgradeable - sweet */
-        
+        if (i3_is_pkg_installed(ictx->ts, pkg, &cmprc) && cmprc > 0) {
+            if (!iset_has_kind_of_pkg(ictx->unset, pkg))
+                scores[i] += 5; /* already installed and upgradeable - sweet */
+        }
+
+        DBGF("  %d %d %d\n", i, scores[i], conflicts[i]);
         if (pkg->cnflpkgs != NULL)
             for (j = 0; j < n_array_size(pkg->cnflpkgs); j++) {
                 struct reqpkg *cpkg = n_array_nth(pkg->cnflpkgs, j);
                 if (i3_is_marked(ictx, cpkg->pkg)) {
-                    conflicts[i]++;
+                    conflicts[i] += 1;
                     scores[i] -= 5;
+                    DBGF_F("  %d %d %d\n", i, scores[i], conflicts[i]);
                 }
             }
         
@@ -233,6 +237,7 @@
                   pkg_id(pkg));
             scores[i] -= 10;
         }
+        DBGF("%d %d %d\n", i, scores[i], conflicts[i]);
     }
     
     max_score = scores[0];
@@ -430,7 +435,7 @@
     unsigned ma_flags = ictx->ma_flags | POLDEK_MA_PROMOTE_CAPEPOCH; 
     
     return pkgdb_match_req(ictx->ts->db, req, ma_flags, 
-                           iset_packages(ictx->unset));
+                           iset_packages_by_recno(ictx->unset));
 }
 
 struct pkg *i3_choose_equiv(struct poldek_ts *ts, const struct capreq *cap,
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/install3/misc.c?r1=1.2&r2=1.3&f=u



More information about the pld-cvs-commit mailing list