From dded261924dba3d86200a2c748443d0f3ec3247b Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Thu, 31 Mar 2011 09:21:24 +0300 Subject: state: late locking for install_if package selection improves behaviour under certain corner case conditions. --- src/state.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/state.c b/src/state.c index d63e1bf..cbc0f25 100644 --- a/src/state.c +++ b/src/state.c @@ -454,6 +454,12 @@ int apk_state_autolock_name(struct apk_state *state, struct apk_name *name, if (use == NULL) return -2; + /* Install_if check did not result in package selection change: + * do not lock the package yet as the preferency might change + * later. */ + if (install_if && use->ipkg != NULL) + return 0; + return apk_state_lock_name(state, name, use); #else /* If any of the choices is installed, we are good. Otherwise, -- cgit v1.2.3-60-g2f50