From 4e72075fbab32e9368d1305431924f10e78c0546 Mon Sep 17 00:00:00 2001
From: Timo Teräs <timo.teras@iki.fi>
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