Verified Commit 6bea7ab5 authored by A. Wilcox's avatar A. Wilcox 🦊
Browse files

system/apk-tools: bump to 2.10.4

parent e7026520
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org>
pkgname=apk-tools
pkgver=2.10.3
pkgrel=2
pkgver=2.10.4
pkgrel=0
pkgdesc="Alpine Package Keeper - package manager"
url="https://git.alpinelinux.org/cgit/apk-tools/"
arch="all"
......@@ -13,9 +13,9 @@ 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
search.patch
virtual.patch
"
prepare() {
......@@ -69,7 +69,7 @@ static() {
"$subpkgdir"/sbin/apk.static
}
sha512sums="1b190cfd04c69369bd4f2b708d4df0f8cf2937e1580c95138fd2c2257e7604d015deaca10a9fe0da6742981caadb6b067c15e417a1951866f781b8a5c71c98ee apk-tools-2.10.3.tar.xz
059f0368b096c53357db567bf720f049cf19a88dbf10dc2496a739dfe332a6487b87f07056d7cf6f0c8a385782821547d4aba8c393591c4070838f1c98819dda deep.patch
53d446734d32341cbd9ca00aedcd65d4d99220da354a9339837a6c79609a321f61ae917fb3cd9d4bffebcfc171d06c0f0d315e29a2d16285545c4fa085a75639 list.patch
746d00ce2af554a25db7ecea2b0a4d8f7399d2560efb6bf59ea144012d0163d3e0bad84c799bd706e8be6c0a543d4e35728d6beb269fddbbea626384009129cb pmmx.patch"
sha512sums="d2d9fde0aae9059236f68a3fc2f2186104bb9a099b15d296a6202a20ab2912638f10bb3b9edb70f359d060c5839573c3d50ef37d13095fa01c66dc3219ab6e39 apk-tools-2.10.4.tar.xz
78f863c83af8b245aa38416c47016bcbe95ea8e33802123f6ea54b3752eb3c1ee79e5d6fc76ddedd2fba522b82a7367837f4596321085d54397b27fd5edf3b2f pmmx.patch
5ac09eadabe44fe05c952c25df8f6daca292c63e6e5e3481d57603b8b3f1980385ccd87ad4a87b617353d1f936591afb9ee8815e4d8ec3e33913be2b3e3a3f84 search.patch
4e2a8db82e6e40ae4863d12ee55151468d6e8c383e2e2001015f469e07f47057bc9055ab52a4a04f2bffa41ec225f77a9bd6042d5e1fcbd2908d7393e3aed2a1 virtual.patch"
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
diff --git a/src/list.c b/src/list.c
index e285e3f..dcbaeea 100644
--- a/src/list.c
+++ b/src/list.c
@@ -61,7 +61,7 @@ static int is_orphaned(const struct apk_name *name)
/* repo 1 is always installed-db, so if other bits are set it means the package is available somewhere
* (either cache or in a proper repo)
*/
- return (repos & ~BIT(1)) == 0;
+ return (repos & ~BIT(0)) == 0;
}
/* returns the currently installed package if there is a newer package that satisfies `name` */
@@ -144,7 +144,7 @@ static void filter_package(const struct apk_package *pkg, const struct list_ctx
if (ctx->orphaned && !is_orphaned(pkg->name))
return;
- if (ctx->available && pkg->repos == BIT(1))
+ if (ctx->available && pkg->repos == BIT(0))
return;
if (ctx->upgradable && !is_upgradable(pkg->name, pkg))
0001-list-Detect-orphaned-packages-correctly.patch
0001-list-Detect-orphaned-packages-correctly.patch
--- apk-tools-2.10.1/src/apk_defines.h.old 2018-09-10 08:04:03.000000000 +0000
+++ apk-tools-2.10.1/src/apk_defines.h 2019-01-04 03:31:41.900000000 +0000
@@ -88,7 +88,7 @@
@@ -89,7 +89,7 @@
#if defined(__x86_64__)
#define APK_DEFAULT_ARCH "x86_64"
#elif defined(__i386__)
......
From 530a6e6847657aa9187acd187269ac25f7cdd932 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Tue, 9 Jul 2019 00:40:15 -0500
Subject: [PATCH] search: Show in "simple" help output
Most users probably want to know about the 'search' applet.
Omission from 'apk --help' output reported by fungalnet[1].
[1]: https://www.reddit.com/r/AdelieLinux/comments/c8mtk9/apk_search/
---
src/search.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/search.c b/src/search.c
index 9a71747..0b00a3b 100644
--- a/src/search.c
+++ b/src/search.c
@@ -209,6 +209,7 @@ static struct apk_applet apk_search = {
.help = "Search package by PATTERNs or by indexed dependencies",
.arguments = "PATTERN",
.open_flags = APK_OPENF_READ | APK_OPENF_NO_STATE,
+ .command_groups = APK_COMMAND_GROUP_QUERY,
.context_size = sizeof(struct search_ctx),
.optgroups = { &optgroup_global, &optgroup_applet },
.main = search_main,
--
2.22.0
From b45415b1096e76f40b32326d2798123f81fe5976 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Tue, 2 Jul 2019 15:27:57 +0300
Subject: [PATCH 1/2] add: fix virtual package id generation
Fixes 37fbafcd by adding more input to the hash than just second
grained time stamp - collisions would happen when running apk
scripted.
For virtual package the hash works only as unique identifier, so
try to add elements that should make it unique in most cases.
Fixes #10648
---
src/add.c | 51 +++++++++++++++++++++++++++++++++++----------------
1 file changed, 35 insertions(+), 16 deletions(-)
diff --git a/src/add.c b/src/add.c
index 2d342ab..e028736 100644
--- a/src/add.c
+++ b/src/add.c
@@ -11,6 +11,7 @@
#include <errno.h>
#include <stdio.h>
+#include <unistd.h>
#include "apk_applet.h"
#include "apk_database.h"
#include "apk_print.h"
@@ -80,6 +81,38 @@ static int non_repository_check(struct apk_database *db)
return 1;
}
+static struct apk_package *create_virtual_package(struct apk_database *db, struct apk_name *name)
+{
+ char ver[32];
+ struct apk_package *virtpkg;
+ struct tm tm;
+ EVP_MD_CTX *mdctx;
+ time_t now = apk_time();
+ pid_t pid = getpid();
+
+ localtime_r(&now, &tm);
+ strftime(ver, sizeof ver, "%Y%m%d.%H%M%S", &tm);
+
+ virtpkg = apk_pkg_new();
+ if (virtpkg == NULL) return 0;
+
+ virtpkg->name = name;
+ virtpkg->version = apk_blob_atomize(APK_BLOB_STR(ver));
+ virtpkg->description = strdup("virtual meta package");
+ virtpkg->arch = apk_blob_atomize(APK_BLOB_STR("noarch"));
+
+ mdctx = EVP_MD_CTX_new();
+ EVP_DigestInit_ex(mdctx, apk_checksum_default(), NULL);
+ EVP_DigestUpdate(mdctx, &tm, sizeof tm);
+ EVP_DigestUpdate(mdctx, &pid, sizeof pid);
+ EVP_DigestUpdate(mdctx, virtpkg->name->name, strlen(virtpkg->name->name) + 1);
+ virtpkg->csum.type = EVP_MD_CTX_size(mdctx);
+ EVP_DigestFinal_ex(mdctx, virtpkg->csum.data, NULL);
+ EVP_MD_CTX_free(mdctx);
+
+ return virtpkg;
+}
+
static int add_main(void *ctx, struct apk_database *db, struct apk_string_array *args)
{
struct add_ctx *actx = (struct add_ctx *) ctx;
@@ -93,10 +126,6 @@ static int add_main(void *ctx, struct apk_database *db, struct apk_string_array
if (actx->virtpkg) {
apk_blob_t b = APK_BLOB_STR(actx->virtpkg);
- struct tm tm;
- time_t now;
- char ver[32];
-
apk_blob_pull_dep(&b, db, &virtdep);
if (APK_BLOB_IS_NULL(b) || virtdep.conflict ||
virtdep.result_mask != APK_DEPMASK_ANY ||
@@ -104,24 +133,14 @@ static int add_main(void *ctx, struct apk_database *db, struct apk_string_array
apk_error("%s: bad package specifier");
return -1;
}
-
if (virtdep.name->name[0] != '.' && non_repository_check(db))
return -1;
- now = apk_time();
- localtime_r(&now, &tm);
- strftime(ver, sizeof ver, "%Y%m%d.%H%M%S", &tm);
-
- virtpkg = apk_pkg_new();
- if (virtpkg == NULL) {
+ virtpkg = create_virtual_package(db, virtdep.name);
+ if (!virtpkg) {
apk_error("Failed to allocate virtual meta package");
return -1;
}
- virtpkg->name = virtdep.name;
- apk_blob_checksum(APK_BLOB_STR(ver), apk_checksum_default(), &virtpkg->csum);
- virtpkg->version = apk_blob_atomize(APK_BLOB_STR(ver));
- virtpkg->description = strdup("virtual meta package");
- virtpkg->arch = apk_blob_atomize(APK_BLOB_STR("noarch"));
virtdep.result_mask = APK_VERSION_EQUAL;
virtdep.version = virtpkg->version;
--
2.22.0
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment