]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
allow complex erase jobs
authorMichael Schroeder <mls@suse.de>
Wed, 13 May 2015 15:28:45 +0000 (17:28 +0200)
committerMichael Schroeder <mls@suse.de>
Wed, 13 May 2015 15:28:45 +0000 (17:28 +0200)
src/solver.c

index 3eca8e23bec32cdd2280f6e0e4a2e0f3c2298c20..77aabecc408b2c2473a17787e064fd91ad1db431 100644 (file)
@@ -3869,6 +3869,14 @@ solver_solve(Solver *solv, Queue *job)
                FOR_REPO_SOLVABLES(repo, p, s)
                  solver_addjobrule(solv, -p, 0, 0, i, weak);
            }
+#ifdef ENABLE_COMPLEX_DEPS
+         else if ((select == SOLVER_SOLVABLE_PROVIDES || select == SOLVER_SOLVABLE_NAME) && pool_is_complex_dep(pool, what))
+           {
+             /* no special "erase a specific solvable" handling? */
+             add_complex_jobrules(solv, what, select == SOLVER_SOLVABLE_NAME ? (CPLXDEPS_NAME | CPLXDEPS_TODNF | CPLXDEPS_INVERT) : (CPLXDEPS_TODNF | CPLXDEPS_INVERT), i, weak);
+             break;
+           }
+#endif
          FOR_JOB_SELECT(p, pp, select, what)
            {
              s = pool->solvables + p;