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.
cute-signatures
Timo Teräs 2011-03-19 13:58:37 +02:00
parent 93eb38a31a
commit 4e72075fba
1 changed files with 11 additions and 4 deletions

View File

@ -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;