diff options
author | Timo Teräs <timo.teras@iki.fi> | 2011-03-19 13:58:37 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2011-03-19 14:17:02 +0200 |
commit | 4e72075fbab32e9368d1305431924f10e78c0546 (patch) | |
tree | 7e717a12f43aea598e5f59f668fc931f5e492a95 | |
parent | 93eb38a31ae97f1cb470f18c6019ede19c5c314e (diff) | |
download | aports-4e72075fbab32e9368d1305431924f10e78c0546.tar.bz2 aports-4e72075fbab32e9368d1305431924f10e78c0546.tar.xz |
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.
-rw-r--r-- | src/state.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/state.c b/src/state.c index 7991802778..005470ccde 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; |