From: Michael Schroeder Date: Tue, 14 Jun 2016 11:15:40 +0000 (+0200) Subject: Change cleandeps code so that it keeps all providers X-Git-Tag: 0.6.23~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e245d61daa731ebab0ac7e0f7bd87ba6c63f116;p=thirdparty%2Flibsolv.git Change cleandeps code so that it keeps all providers It will report less unneeded packages, but it will also not erase the wrong providers. --- diff --git a/src/rules.c b/src/rules.c index 32855e4a..07c293ac 100644 --- a/src/rules.c +++ b/src/rules.c @@ -3869,10 +3869,7 @@ complex_cleandeps_addback(Pool *pool, Id ip, Id req, Map *im, Map *installedm, Q { if (!MAPTST(installedm, -p)) break; - continue; } - if (MAPTST(im, p)) - break; } if (!p) { @@ -3880,6 +3877,8 @@ complex_cleandeps_addback(Pool *pool, Id ip, Id req, Map *im, Map *installedm, Q { if (p < 0) continue; + if (MAPTST(im, p)) + continue; if (!MAPTST(installedm, p)) continue; if (p == ip || MAPTST(userinstalled, p - pool->installed->start)) @@ -4399,13 +4398,10 @@ solver_createcleandepsmap(Solver *solv, Map *cleandepsmap, int unneeded) continue; } #endif - FOR_PROVIDES(p, pp, req) - if (MAPTST(&im, p)) - break; - if (p) - continue; FOR_PROVIDES(p, pp, req) { + if (MAPTST(&im, p)) + continue; if (MAPTST(&installedm, p)) { if (p == ip) @@ -4433,13 +4429,10 @@ solver_createcleandepsmap(Solver *solv, Map *cleandepsmap, int unneeded) continue; } #endif - FOR_PROVIDES(p, pp, req) - if (MAPTST(&im, p)) - break; - if (p) - continue; FOR_PROVIDES(p, pp, req) { + if (MAPTST(&im, p)) + continue; if (MAPTST(&installedm, p)) { if (p == ip)