From a9d2523ba9c53490d28a0c164ede5a779aedd365 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Tue, 25 Mar 2014 11:21:32 +0100 Subject: [PATCH] Don't put -SYSTEMSOLVABLE into conflicts --- src/rules.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rules.c b/src/rules.c index bce12f4..ae4d9c0 100644 --- a/src/rules.c +++ b/src/rules.c @@ -902,7 +902,7 @@ solver_addrpmrulesforsolvable(Solver *solv, Solvable *s, Map *m) p = -makemultiversionconflict(solv, p, con); } /* rule: -n|-p: either solvable _or_ provider of conflict */ - addrpmrule(solv, -n, -p, SOLVER_RULE_RPM_PACKAGE_CONFLICT, con); + addrpmrule(solv, -n, p == SYSTEMSOLVABLE ? 0 : -p, SOLVER_RULE_RPM_PACKAGE_CONFLICT, con); } } } @@ -2434,6 +2434,9 @@ addrpmruleinfo(Solver *solv, Id p, Id d, int type, Id dep) if (p != op || w2 != ow2) return; } + /* should use a different type instead */ + if (type == SOLVER_RULE_RPM_PACKAGE_CONFLICT && !w2) + w2 = -SYSTEMSOLVABLE; } /* yep, rule matches. record info */ queue_push(solv->ruleinfoq, type); -- 2.7.4