summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Schroeder <mls@suse.de>2014-03-25 11:21:32 +0100
committerMichael Schroeder <mls@suse.de>2014-03-25 11:21:32 +0100
commita9d2523ba9c53490d28a0c164ede5a779aedd365 (patch)
treee349eec928c4ef05020474b4ca604ea93a0c4ec9 /src
parente2331156dd25864d53862e7077de65ad08238e54 (diff)
downloadlibsolv-a9d2523ba9c53490d28a0c164ede5a779aedd365.tar.gz
libsolv-a9d2523ba9c53490d28a0c164ede5a779aedd365.tar.bz2
libsolv-a9d2523ba9c53490d28a0c164ede5a779aedd365.zip
Don't put -SYSTEMSOLVABLE into conflicts
Diffstat (limited to 'src')
-rw-r--r--src/rules.c5
1 files changed, 4 insertions, 1 deletions
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);