51 lines
1.7 KiB
Diff
51 lines
1.7 KiB
Diff
From 5a1919e5206c589b8bf682a288a8954413647e69 Mon Sep 17 00:00:00 2001
|
|
From: Juan RP <xtraeme@gmail.com>
|
|
Date: Sat, 23 Aug 2014 15:54:24 +0200
|
|
Subject: [PATCH] xbps_pkg_is_installed(): a pkg in "unpacked" state is now
|
|
accepted as installed too.
|
|
|
|
The reason is that even if the pkg was not configured, it should still be accepted
|
|
as installed. If installing packages via XBPS_TARGET_ARCH, pkgs are never configured,
|
|
so this must be taken into account.
|
|
|
|
Will be cherry-picked to 0.37 meanwhile.
|
|
---
|
|
include/xbps.h.in | 3 ++-
|
|
lib/util.c | 6 +++---
|
|
2 files changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/include/xbps.h.in b/include/xbps.h.in
|
|
index 5e7fb31..90d7ef4 100644
|
|
--- include/xbps.h.in
|
|
+++ include/xbps.h.in
|
|
@@ -1635,7 +1635,8 @@ int xbps_file_hash_check(const char *file, const char *sha256);
|
|
bool xbps_verify_file_signature(struct xbps_repo *repo, const char *fname);
|
|
|
|
/**
|
|
- * Checks if a package is currently installed by matching \a pkg.
|
|
+ * Checks if a package is currently installed in pkgdb by matching \a pkg.
|
|
+ * To be installed, the pkg must be in "installed" or "unpacked" state.
|
|
*
|
|
* @param[in] xhp The pointer to an xbps_handle struct.
|
|
* @param[in] pkg Package name, version pattern or exact pkg to match.
|
|
diff --git a/lib/util.c b/lib/util.c
|
|
index d10bcee..a34b706 100644
|
|
--- lib/util.c
|
|
+++ lib/util.c
|
|
@@ -79,10 +79,10 @@ xbps_pkg_is_installed(struct xbps_handle *xhp, const char *pkg)
|
|
*/
|
|
if (xbps_pkg_state_dictionary(dict, &state) != 0)
|
|
return -1; /* error */
|
|
- if (state != XBPS_PKG_STATE_INSTALLED)
|
|
- return 0; /* not fully installed */
|
|
+ if (state == XBPS_PKG_STATE_INSTALLED || state == XBPS_PKG_STATE_UNPACKED)
|
|
+ return 1;
|
|
|
|
- return 1;
|
|
+ return 0; /* not fully installed */
|
|
}
|
|
|
|
const char *
|
|
--
|
|
2.1.0
|
|
|