From 668e2495d942e888403f47cd5ce140703a6bb3e1 Mon Sep 17 00:00:00 2001
From: Michael Schroeder <mls@suse.de>
Date: Wed, 22 Mar 2017 11:17:54 +0100
Subject: [PATCH 3/3] Add missing part from last commit
---
src/rules.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/rules.c b/src/rules.c
index 3413c49..26b93ea 100644
--- a/src/rules.c
+++ b/src/rules.c
@@ -3552,6 +3552,7 @@ solver_addbestrules(Solver *solv, int havebestinstalljobs)
if (solv->allowuninstall || solv->allowuninstall_all || (solv->allowuninstallmap.size && MAPTST(&solv->allowuninstallmap, p - installed->start)))
{
/* package is flagged both for allowuninstall and best, add negative rules */
+ d = q.count == 1 ? q.elements[0] : -pool_queuetowhatprovides(pool, &q);
for (i = 0; i < q.count; i++)
MAPSET(&m, q.elements[i]);
r = solv->rules + solv->featurerules + (p - installed->start);
@@ -3561,7 +3562,10 @@ solver_addbestrules(Solver *solv, int havebestinstalljobs)
{
if (MAPTST(&m, p2))
continue;
- solver_addrule(solv, -p2, 0, 0);
+ if (d >= 0)
+ solver_addrule(solv, -p2, d, 0);
+ else
+ solver_addrule(solv, -p2, 0, -d);
queue_push(&r2pkg, p);
}
for (i = 0; i < q.count; i++)
--
2.12.1