From: Michael Schroeder Date: Fri, 2 Mar 2012 15:33:22 +0000 (+0100) Subject: - cleandeps: also mark products and their buddies as userinstalled X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24f19cda6f72f081de320292c676f6acaffc175c;p=thirdparty%2Flibsolv.git - cleandeps: also mark products and their buddies as userinstalled --- diff --git a/src/rules.c b/src/rules.c index 361af837..b024243b 100644 --- a/src/rules.c +++ b/src/rules.c @@ -2265,6 +2265,26 @@ static void solver_createcleandepsmap(Solver *solv) } dataiterator_free(&di); } + if (1) + { + /* all products and their buddies are userinstalled */ + for (p = installed->start; p < installed->end; p++) + { + Solvable *s = pool->solvables + p; + if (s->repo != installed) + continue; + if (!strncmp("product:", pool_id2str(pool, s->name), 8)) + { + MAPSET(&userinstalled, p - installed->start); + if (pool->nscallback) + { + Id buddy = pool->nscallback(pool, pool->nscallbackdata, NAMESPACE_PRODUCTBUDDY, p); + if (buddy >= installed->start && buddy < installed->end && pool->solvables[buddy].repo == installed) + MAPSET(&userinstalled, buddy); + } + } + } + } /* add all positive elements (e.g. locks) to "userinstalled" */ for (rid = solv->jobrules; rid < solv->jobrules_end; rid++)