packages: poldek/poldek-dont-lose-deps.patch (NEW) - fixes bug described in...

megabajt megabajt at pld-linux.org
Sun Nov 22 14:06:05 CET 2009


Author: megabajt                     Date: Sun Nov 22 13:06:05 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fixes bug described in http://lists.pld-linux.org/mailman/pipermail/pld-devel-pl/2009-November/150519.html

---- Files affected:
packages/poldek:
   poldek-dont-lose-deps.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/poldek/poldek-dont-lose-deps.patch
diff -u /dev/null packages/poldek/poldek-dont-lose-deps.patch:1.1
--- /dev/null	Sun Nov 22 14:06:05 2009
+++ packages/poldek/poldek-dont-lose-deps.patch	Sun Nov 22 14:06:00 2009
@@ -0,0 +1,38 @@
+diff -urN a/install3/misc.c b/install3/misc.c
+--- a/install3/misc.c	2009-11-22 01:39:59.000000000 +0100
++++ b/install3/misc.c	2009-11-22 01:35:25.795536883 +0100
+@@ -319,7 +319,7 @@
+     for (i=0; i < n_array_size(candidates); i++) {
+         struct pkg *cand = n_array_nth(candidates, i);
+ 
+-        if (pkg_is_colored_like(cand, marker)) {
++        if (!pkg_isset_mf(ictx->processed, cand, PKGMARK_BLACK) && pkg_is_colored_like(cand, marker)) {
+             if (tmp == NULL)
+                 tmp = n_array_clone(candidates);
+             
+@@ -354,7 +354,7 @@
+                 struct pkg **best_pkg, tn_array *candidates)
+ {
+     tn_array *suspkgs = NULL, *tmpkgs;
+-    int found = 0;
++    int found = 0, i;
+ 
+     *best_pkg = NULL;
+     found = pkgset_find_match_packages(ictx->ps, pkg, req, &suspkgs, 1);//ictx->strict);
+@@ -391,6 +391,16 @@
+ 
+     //trace(indent, "after removed rmmarked -> %d package(s)",
+     //      n_array_size(suspkgs));
++
++    /* remove marked as BLACK from suspected packages, they have broken deps */
++    for (i = 0; i < n_array_size(suspkgs); i++) {
++	struct pkg *suspkg = n_array_nth(suspkgs, i);
++	
++	if (pkg_isset_mf(ictx->processed, suspkg, PKGMARK_BLACK)) {
++	    trace(indent, "- marked as BLACK %s", pkg_id(suspkg));
++	    n_array_remove_nth(suspkgs, i--);
++	}
++    }
+         
+     if (n_array_size(suspkgs) == 0) {
+         found = 0;
================================================================


More information about the pld-cvs-commit mailing list