aboutsummaryrefslogtreecommitdiffstats
path: root/main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch')
-rw-r--r--main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch b/main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch
new file mode 100644
index 0000000000..d35e2b25af
--- /dev/null
+++ b/main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch
@@ -0,0 +1,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
+