aboutsummaryrefslogtreecommitdiffstats
path: root/main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-07-16 08:21:11 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-07-16 08:25:28 +0000
commitec3b11dc1bec500609eebdd951720b3836e68d8c (patch)
tree0819027d91f74e8e3201c6ff38db75854311c59b /main/apk-tools/0002-solver-do-not-disqualify-already-disqualified-packag.patch
parent3f5ae0cf4f9b72fd52eca9aeb41aa3954d5d0b71 (diff)
downloadaports-ec3b11dc1bec500609eebdd951720b3836e68d8c.tar.bz2
aports-ec3b11dc1bec500609eebdd951720b3836e68d8c.tar.xz
main/apk-tools: fix to not hang when splitting -libs packages
also fix segault when --root dir is invalid and rename lua-apk to lua5.2-apk. ref #2134 ref #2135
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
+