summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-10 06:37:30 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-10 06:37:30 +0000
commitfdceb37c0d9b005c50dda445efe6eb24945da645 (patch)
tree3c8a057d8a0cd068a5bdbed31845ae1fb80a9a39 /bin/emerge
parent6b7b386399d73ab2ef619a846f8e29e9ea8fc7c6 (diff)
downloadportage-fdceb37c0d9b005c50dda445efe6eb24945da645.tar.gz
portage-fdceb37c0d9b005c50dda445efe6eb24945da645.tar.bz2
portage-fdceb37c0d9b005c50dda445efe6eb24945da645.zip
Use cached Package instances in depgraph.display(). (trunk r9794)
svn path=/main/branches/2.1.2/; revision=9795
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge15
1 files changed, 4 insertions, 11 deletions
diff --git a/bin/emerge b/bin/emerge
index 4501731db..4134511bd 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -3832,7 +3832,6 @@ class depgraph(object):
for mylist_index in xrange(len(mylist)):
x, depth, ordered = mylist[mylist_index]
- pkg_node = tuple(x)
pkg_type = x[0]
myroot = x[1]
pkg_key = x[2]
@@ -3864,17 +3863,16 @@ class depgraph(object):
addl += bad(" (is blocking %s)") % block_parents
blockers.append(addl)
else:
+ pkg = self._pkg_cache[tuple(x)]
+ metadata = pkg.metadata
pkg_status = x[3]
pkg_merge = ordered and pkg_status != "nomerge"
- if pkg_node in self._slot_collision_nodes or \
- (pkg_status == "nomerge" and pkg_type != "installed"):
+ if pkg in self._slot_collision_nodes or pkg.onlydeps:
# The metadata isn't cached due to a slot collision or
# --onlydeps.
mydbapi = self.trees[myroot][self.pkg_tree_map[pkg_type]].dbapi
else:
mydbapi = self.mydbapi[myroot] # contains cached metadata
- metadata = dict(izip(self._mydbapi_keys,
- mydbapi.aux_get(pkg_key, self._mydbapi_keys)))
ebuild_path = None
repo_name = metadata["repository"]
built = pkg_type != "ebuild"
@@ -3885,13 +3883,8 @@ class depgraph(object):
raise portage_exception.PackageNotFound(pkg_key)
repo_path_real = os.path.dirname(os.path.dirname(
os.path.dirname(ebuild_path)))
- pkgsettings.setcpv(pkg_key, mydb=mydbapi)
- metadata["USE"] = pkgsettings["PORTAGE_USE"]
else:
repo_path_real = portdb.getRepositoryPath(repo_name)
- pkg_node = Package(type_name=pkg_type, root=myroot,
- cpv=pkg_key, built=built, installed=installed,
- metadata=metadata)
pkg_use = metadata["USE"].split()
try:
restrict = flatten(use_reduce(paren_reduce(
@@ -4041,7 +4034,7 @@ class depgraph(object):
# Prevent USE_EXPAND_HIDDEN flags from being hidden if they
# are the only thing that triggered reinstallation.
reinst_flags_map = {}
- reinstall_for_flags = self._reinstall_nodes.get(pkg_node)
+ reinstall_for_flags = self._reinstall_nodes.get(pkg)
reinst_expand_map = None
if reinstall_for_flags:
reinst_flags_map = map_to_use_expand(