mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-04-10 08:12:35 +02:00
53 lines
1.6 KiB
Diff
53 lines
1.6 KiB
Diff
Patch-Source: https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/a06eb18980789c30a086785da3d6dd4424c7b1c9
|
|
--
|
|
From a06eb18980789c30a086785da3d6dd4424c7b1c9 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
|
Date: Wed, 10 May 2023 16:24:49 +0300
|
|
Subject: [PATCH] del: fix --rdepends
|
|
|
|
fixes #10898
|
|
---
|
|
src/app_del.c | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/app_del.c b/src/app_del.c
|
|
index e5c6aab..3d0e928 100644
|
|
--- a/src/app_del.c
|
|
+++ b/src/app_del.c
|
|
@@ -16,6 +16,7 @@
|
|
struct del_ctx {
|
|
int recursive_delete : 1;
|
|
struct apk_dependency_array *world;
|
|
+ unsigned int genid;
|
|
int errors;
|
|
};
|
|
|
|
@@ -107,11 +108,15 @@ static void delete_pkg(struct apk_package *pkg0, struct apk_dependency *dep0,
|
|
struct apk_package *pkg, void *pctx)
|
|
{
|
|
struct del_ctx *ctx = (struct del_ctx *) pctx;
|
|
+ struct apk_dependency *d;
|
|
|
|
apk_deps_del(&ctx->world, pkg0->name);
|
|
+ foreach_array_item(d, pkg0->provides)
|
|
+ apk_deps_del(&ctx->world, d->name);
|
|
+
|
|
if (ctx->recursive_delete)
|
|
apk_pkg_foreach_reverse_dependency(
|
|
- pkg0, APK_FOREACH_INSTALLED | APK_DEP_SATISFIES,
|
|
+ pkg0, ctx->genid | APK_FOREACH_INSTALLED | APK_DEP_SATISFIES,
|
|
delete_pkg, pctx);
|
|
}
|
|
|
|
@@ -144,6 +149,7 @@ static int del_main(void *pctx, struct apk_database *db, struct apk_string_array
|
|
struct apk_dependency *d;
|
|
int r = 0;
|
|
|
|
+ ctx->genid = apk_foreach_genid();
|
|
apk_dependency_array_copy(&ctx->world, db->world);
|
|
if (args->num) apk_db_foreach_matching_name(db, args, delete_name, ctx);
|
|
if (ctx->errors) return ctx->errors;
|
|
--
|
|
GitLab
|
|
|