summaryrefslogtreecommitdiff
path: root/system/apk-tools
diff options
context:
space:
mode:
Diffstat (limited to 'system/apk-tools')
-rw-r--r--system/apk-tools/APKBUILD4
-rw-r--r--system/apk-tools/deep.patch50
2 files changed, 53 insertions, 1 deletions
diff --git a/system/apk-tools/APKBUILD b/system/apk-tools/APKBUILD
index 10360db6a..78478e51e 100644
--- a/system/apk-tools/APKBUILD
+++ b/system/apk-tools/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org>
pkgname=apk-tools
pkgver=2.10.3
-pkgrel=1
+pkgrel=2
pkgdesc="Alpine Package Keeper - package manager"
url="https://git.alpinelinux.org/cgit/apk-tools/"
arch="all"
@@ -13,6 +13,7 @@ makedepends_host="zlib-dev openssl openssl-dev linux-headers"
makedepends="$makedepends_build $makedepends_host"
subpackages="$pkgname-static"
source="https://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.xz
+ deep.patch
list.patch
pmmx.patch
"
@@ -69,5 +70,6 @@ static() {
}
sha512sums="1b190cfd04c69369bd4f2b708d4df0f8cf2937e1580c95138fd2c2257e7604d015deaca10a9fe0da6742981caadb6b067c15e417a1951866f781b8a5c71c98ee apk-tools-2.10.3.tar.xz
+059f0368b096c53357db567bf720f049cf19a88dbf10dc2496a739dfe332a6487b87f07056d7cf6f0c8a385782821547d4aba8c393591c4070838f1c98819dda deep.patch
53d446734d32341cbd9ca00aedcd65d4d99220da354a9339837a6c79609a321f61ae917fb3cd9d4bffebcfc171d06c0f0d315e29a2d16285545c4fa085a75639 list.patch
746d00ce2af554a25db7ecea2b0a4d8f7399d2560efb6bf59ea144012d0163d3e0bad84c799bd706e8be6c0a543d4e35728d6beb269fddbbea626384009129cb pmmx.patch"
diff --git a/system/apk-tools/deep.patch b/system/apk-tools/deep.patch
new file mode 100644
index 000000000..b9e361717
--- /dev/null
+++ b/system/apk-tools/deep.patch
@@ -0,0 +1,50 @@
+From b0be9f610c02bb2d5e681a3904940d311e9de298 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Mon, 3 Jun 2019 14:53:46 +0300
+Subject: solver: fix common dependency merging to inherit pinning and flags
+
+Notably this fixes occasional issues when doing upgrade with multiple
+versions of same packages. Without this the upgrade flag is not always
+propagated properly down the dependency chain.
+---
+ src/solver.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/solver.c b/src/solver.c
+index e10cf8b..2121dd9 100644
+--- a/src/solver.c
++++ b/src/solver.c
+@@ -462,6 +462,8 @@ static void reconsider_name(struct apk_solver_state *ss, struct apk_name *name)
+ name->name, name0->name);
+ name0->ss.requirers++;
+ name_requirers_changed(ss, name0);
++ foreach_array_item(p, name0->providers)
++ inherit_pinning_and_flags(ss, p->pkg, pkg);
+ }
+ }
+ }
+@@ -510,7 +512,6 @@ static int compare_providers(struct apk_solver_state *ss,
+ unsigned int solver_flags;
+ int r;
+
+-
+ /* Prefer existing package */
+ if (pkgA == NULL || pkgB == NULL)
+ return (pkgA != NULL) - (pkgB != NULL);
+@@ -675,8 +676,11 @@ static void select_package(struct apk_solver_state *ss, struct apk_name *name)
+
+ if (name->ss.requirers || name->ss.has_iif) {
+ foreach_array_item(p, name->providers) {
+- dbg_printf(" consider "PKG_VER_FMT" iif_triggered=%d, tag_ok=%d, selectable=%d, provider_priority=%d, installed=%d\n",
+- PKG_VER_PRINTF(p->pkg), p->pkg->ss.iif_triggered, p->pkg->ss.tag_ok, p->pkg->ss.pkg_selectable,
++ dbg_printf(" consider "PKG_VER_FMT" iif_triggered=%d, tag_ok=%d, selectable=%d, available=%d, flags=0x%x, provider_priority=%d, installed=%d\n",
++ PKG_VER_PRINTF(p->pkg),
++ p->pkg->ss.iif_triggered, p->pkg->ss.tag_ok,
++ p->pkg->ss.pkg_selectable, p->pkg->ss.pkg_available,
++ p->pkg->ss.solver_flags,
+ p->pkg->provider_priority, p->pkg->ipkg != NULL);
+ /* Ensure valid pinning and install-if trigger */
+ if (name->ss.requirers == 0 &&
+--
+cgit v1.2.1
+