Mail archive
alpine-devel

Re: [alpine-devel] [PATCH] list: Detect orphaned packages correctly

From: Timo Teras <timo.teras_at_iki.fi>
Date: Sat, 23 Mar 2019 17:29:52 +0200

Hi,

Seems this is a bug in the relatively new 'list' applet. Rest of the
code uses:
        repos == BIT(APK_REPOSITORY_CACHED)

maybe also use this syntax consistently in both locations.

Care to update the patch with this?

Thanks,
Timo

On Thu, 21 Mar 2019 18:42:32 -0500
"A. Wilcox" <AWilcox_at_Wilcox-Tech.com> wrote:

> BIT(1) corresponds with decimal 2, which is the first available
> repository. BIT(0) corresponds with decimal 1, which is the installed
> repository.
>
> Before this fix, `apk list -O` would list every package installed
> from the first available repository, which is the 'system' repository
> on most Adélie Linux computers.
>
> After this fix, `apk list -O` correctly lists only the packages which
> are no longer available.
> ---
> src/list.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/list.c b/src/list.c
> index e285e3f..dcbaeea 100644
> --- a/src/list.c
> +++ b/src/list.c
> _at_@ -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` */ _at_@ -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))



---
Unsubscribe:  alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Sat Mar 23 2019 - 17:29:52 UTC