From 4e245d61daa731ebab0ac7e0f7bd87ba6c63f116 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Tue, 14 Jun 2016 13:15:40 +0200 Subject: [PATCH 1/2] Change cleandeps code so that it keeps all providers It will report less unneeded packages, but it will also not erase the wrong providers. --- src/rules.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/rules.c b/src/rules.c index 32855e4..07c293a 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)) @@ -4400,12 +4399,9 @@ solver_createcleandepsmap(Solver *solv, Map *cleandepsmap, int unneeded) } #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) @@ -4434,12 +4430,9 @@ solver_createcleandepsmap(Solver *solv, Map *cleandepsmap, int unneeded) } #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) -- 2.7.4