From 84941a5967c099e29c172fe1c8f5741dc2bef159 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Wed, 1 May 2019 08:59:16 -0500
Subject: list: Detect orphaned packages correctly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

BIT(1) corresponds with decimal 2, which is the first available 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..202dab2 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(APK_REPOSITORY_CACHED)) == 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(APK_REPOSITORY_CACHED))
 		return;
 
 	if (ctx->upgradable && !is_upgradable(pkg->name, pkg))
-- 
cgit v1.2.3-70-g09d2