aboutsummaryrefslogtreecommitdiffstats
path: root/main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch
blob: d35e2b25af4ab00767194284aa0e1608d700ed26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
From 716d5d91dc331e59d250b053bcc12a3191c94dcd Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Tue, 16 Jul 2013 07:58:13 +0000
Subject: [PATCH 2/2] solver: do not disqualify already disqualified packages

We should not disqualify non-selectable packages as it would mark it as
dirty, forcing it to reconsider the name again, which could end up in
an endless loop.

fixes #2135
---
 src/solver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/solver.c b/src/solver.c
index bf57380..5383d0b 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -313,7 +313,7 @@ static void exclude_non_providers(struct apk_solver_state *ss, struct apk_name *
 	dbg_printf("%s must provide %s\n", name->name, must_provide->name);
 
 	foreach_array_item(p, name->providers) {
-		if (p->pkg->name == must_provide)
+		if (p->pkg->name == must_provide || !p->pkg->ss.pkg_selectable)
 			goto next;
 		foreach_array_item(d, p->pkg->provides)
 			if (d->name == must_provide)
-- 
1.8.3.2