{ SOLVER_FLAG_KEEP_ORPHANS, "keeporphans", 0 },
{ SOLVER_FLAG_BREAK_ORPHANS, "breakorphans", 0 },
{ SOLVER_FLAG_FOCUS_INSTALLED, "focusinstalled", 0 },
+ { SOLVER_FLAG_YUM_OBSOLETES, "yumobsoletes", 0 },
{ 0, 0, 0 }
};
}
}
+ /* dump disabled packages (must come before the namespace/job lines) */
+ if (pool->considered)
+ {
+ Id p;
+ FOR_POOL_SOLVABLES(p)
+ if (!MAPTST(pool->considered, p))
+ {
+ cmd = pool_tmpjoin(pool, "disable pkg ", testcase_solvid2str(pool, p), 0);
+ strqueue_push(&sq, cmd);
+ }
+ }
+
s = testcase_getsolverflags(solv);
if (*s)
{
{
char *sp;
Id how, what;
- if (!prepared)
+ if (prepared <= 0)
{
pool_addfileprovides(pool);
pool_createwhatprovides(pool);
for (i = 2; i < npieces; i++)
queue_push(&q, testcase_str2solvid(pool, pieces[i]));
/* now do the callback */
- if (!prepared)
+ if (prepared <= 0)
{
pool_addfileprovides(pool);
pool_createwhatprovides(pool);
{
break;
}
+ else if (!strcmp(pieces[0], "disable") && npieces == 3)
+ {
+ Id p;
+ if (strcmp(pieces[1], "pkg"))
+ {
+ pool_debug(pool, SOLV_ERROR, "testcase_read: bad disable type '%s'\n", pieces[1]);
+ continue;
+ }
+ if (!prepared)
+ pool_createwhatprovides(pool);
+ prepared = -1;
+ if (!pool->considered)
+ {
+ pool->considered = solv_calloc(1, sizeof(Map));
+ map_init(pool->considered, pool->nsolvables);
+ map_setall(pool->considered);
+ }
+ p = testcase_str2solvid(pool, pieces[2]);
+ if (p)
+ MAPCLR(pool->considered, p);
+ else
+ pool_debug(pool, SOLV_ERROR, "disable: unknown package '%s'\n", pieces[2]);
+ }
else
{
pool_debug(pool, SOLV_ERROR, "testcase_read: cannot parse command '%s'\n", pieces[0]);