7 #include "solverdebug.h"
9 #include "repo_rpmdb.h"
10 #include "pool_fileconflicts.h"
13 iterate_handle(Pool *pool, Id p, void *cbdata)
15 Solvable *s = pool->solvables + p;
20 rpm_byrpmdbid(0, 0, (void **)cbdata);
23 if (!s->repo->rpmdbid)
25 rpmdbid = s->repo->rpmdbid[p - s->repo->start];
28 return rpm_byrpmdbid(rpmdbid, 0, (void **)cbdata);
38 Queue todo, conflicts;
42 installed = repo_create(pool, "@System");
43 pool_set_installed(pool, installed);
44 repo_add_rpmdb(installed, 0, 0, 0);
46 queue_init(&conflicts);
47 FOR_REPO_SOLVABLES(installed, p, s)
49 pool_findfileconflicts(pool, &todo, &conflicts, &iterate_handle, (void *)&state);
51 for (i = 0; i < conflicts.count; i += 5)
52 printf("%s: %s[%s] %s[%s]\n", id2str(pool, conflicts.elements[i]), solvid2str(pool, conflicts.elements[i + 1]), id2str(pool, conflicts.elements[i + 2]), solvid2str(pool, conflicts.elements[i + 3]), id2str(pool, conflicts.elements[i + 4]));
57 pool_add_fileconflicts_deps(pool, &conflicts);
58 pool_addfileprovides(pool);
59 pool_createwhatprovides(pool);
60 pool_setdebuglevel(pool, 0);
61 Solver *solv = solver_create(pool);
63 solver_solve(solv, &job);
64 if (solv->problems.count)
65 solver_printallsolutions(solv);
69 queue_free(&conflicts);