del: allow deletion of world dependency when it is not installed
this happens e.g. after tmpfs boot when not all packages where available: the dependency is in world, but not installed.cute-signatures
parent
1e36692a8a
commit
2c4f6bb503
|
@ -95,11 +95,14 @@ static void delete_pkg(struct apk_package *pkg0, struct apk_dependency *dep0,
|
||||||
static void delete_name(struct apk_database *db, const char *match,
|
static void delete_name(struct apk_database *db, const char *match,
|
||||||
struct apk_name *name, void *pctx)
|
struct apk_name *name, void *pctx)
|
||||||
{
|
{
|
||||||
|
struct del_ctx *ctx = (struct del_ctx *) pctx;
|
||||||
struct apk_package *pkg;
|
struct apk_package *pkg;
|
||||||
|
|
||||||
pkg = apk_pkg_get_installed(name);
|
pkg = apk_pkg_get_installed(name);
|
||||||
if (pkg != NULL)
|
if (pkg != NULL)
|
||||||
delete_pkg(pkg, NULL, NULL, pctx);
|
delete_pkg(pkg, NULL, NULL, pctx);
|
||||||
|
else
|
||||||
|
apk_deps_del(&ctx->world, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int del_main(void *pctx, struct apk_database *db, struct apk_string_array *args)
|
static int del_main(void *pctx, struct apk_database *db, struct apk_string_array *args)
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
@ARGS
|
||||||
|
--test-repo basic.repo
|
||||||
|
--test-instdb basic.installed
|
||||||
|
--test-world "a b c"
|
||||||
|
del c
|
||||||
|
@EXPECT
|
||||||
|
OK: 0 MiB in 2 packages
|
Loading…
Reference in New Issue