From 4e72075fbab32e9368d1305431924f10e78c0546 Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Sat, 19 Mar 2011 13:58:37 +0200 Subject: state: lock package late for names specified on command line This will fix certain scenarios where multiple packages are installed with full package files specified on command line and they depend on each other. --- src/state.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/state.c b/src/state.c index 7991802..005470c 100644 --- a/src/state.c +++ b/src/state.c @@ -420,10 +420,17 @@ static int apk_state_fix_package(struct apk_state *state, return 0; for (i = 0; i < pkg->depends->num; i++) { - r = apk_state_lock_dependency(state, - &pkg->depends->item[i]); - if (r != 0) - ret = -1; + if (pkg->name->flags & APK_NAME_TOPLEVEL_OVERRIDE) { + r = apk_state_prune_dependency(state, + &pkg->depends->item[i]); + if (r < 0) + ret = -1; + } else { + r = apk_state_lock_dependency(state, + &pkg->depends->item[i]); + if (r != 0) + ret = -1; + } } return ret; -- cgit v1.2.3-70-g09d2