From 9489f8a3dc1deff2548032c102e22c7308df74c7 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Thu, 20 Dec 2012 12:08:55 +0100 Subject: [PATCH] Do not configure pkg if there's an update in transaction. This fixes the following problem: - pkg is installed with state "unpacked". - There's an update of pkg in transaction. - xbps tries to configure the pkg because its state is "unpacked", therefore ignoring the update. --- NEWS | 5 +++++ lib/transaction_ops.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index e198f029..5fb96fef 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,10 @@ xbps-0.19.1 (???): + * libxbps: when a package has not been configured and there's an update + in transaction, libxbps incorrectly tried to ignore the update and + configure this package. Fix this by not ignoring the update even if + package has any state. + * xbps-query(8): -l, --list-packages option now prints pkg state as follows: STATE PKGVER DESCRIPTION diff --git a/lib/transaction_ops.c b/lib/transaction_ops.c index e25f1c40..89233f05 100644 --- a/lib/transaction_ops.c +++ b/lib/transaction_ops.c @@ -145,7 +145,7 @@ trans_find_pkg(struct xbps_handle *xhp, const char *pkg, int action) if ((rv = xbps_set_pkg_state_dictionary(pkg_repod, state)) != 0) return rv; - if (state == XBPS_PKG_STATE_UNPACKED) + if ((action == TRANS_INSTALL) && (state == XBPS_PKG_STATE_UNPACKED)) reason = "configure"; else if (state == XBPS_PKG_STATE_NOT_INSTALLED) reason = "install";