summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py41
1 files changed, 6 insertions, 35 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index b773a2759..af352fd5d 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -1147,9 +1147,6 @@ class depgraph(object):
metadata = izip(db_keys, portdb.aux_get(mykey, db_keys))
pkg = Package(type_name="ebuild", root_config=root_config,
cpv=mykey, metadata=metadata, onlydeps=onlydeps)
- pkgsettings.setcpv(pkg)
- pkg.metadata["USE"] = pkgsettings["PORTAGE_USE"]
- pkg.metadata['CHOST'] = pkgsettings.get('CHOST', '')
self._pkg_cache[pkg] = pkg
args.append(PackageArg(arg=x, package=pkg,
root_config=root_config))
@@ -1893,10 +1890,8 @@ class depgraph(object):
continue
reinstall_for_flags = None
cache_key = (pkg_type, root, cpv, pkg_status)
- calculated_use = True
pkg = self._pkg_cache.get(cache_key)
if pkg is None:
- calculated_use = False
try:
metadata = izip(db_keys, db.aux_get(cpv, db_keys))
except KeyError:
@@ -1908,14 +1903,6 @@ class depgraph(object):
metadata = pkg.metadata
if not built:
metadata['CHOST'] = pkgsettings.get('CHOST', '')
- if not built and ("?" in metadata["LICENSE"] or \
- "?" in metadata["PROVIDE"]):
- # This is avoided whenever possible because
- # it's expensive. It only needs to be done here
- # if it has an effect on visibility.
- pkgsettings.setcpv(pkg)
- metadata["USE"] = pkgsettings["PORTAGE_USE"]
- calculated_use = True
self._pkg_cache[pkg] = pkg
if not installed or (built and matched_packages):
@@ -1967,11 +1954,9 @@ class depgraph(object):
if not visible(pkgsettings, pkg_eb):
continue
- if not pkg.built and not calculated_use:
- # This is avoided whenever possible because
- # it's expensive.
- pkgsettings.setcpv(pkg)
- pkg.metadata["USE"] = pkgsettings["PORTAGE_USE"]
+ # Calculation of USE for unbuilt ebuilds is relatively
+ # expensive, so it is only performed lazily, after the
+ # above visibility checks are complete.
if pkg.cp != atom.cp:
# A cpv can be returned from dbapi.match() as an
@@ -1984,8 +1969,6 @@ class depgraph(object):
myarg = None
if root == self.target_root:
try:
- # Ebuild USE must have been calculated prior
- # to this point, in case atoms have USE deps.
myarg = self._iter_atoms_for_pkg(pkg).next()
except StopIteration:
pass
@@ -2235,13 +2218,9 @@ class depgraph(object):
metadata = izip(db_keys, db.aux_get(cpv, db_keys))
except KeyError:
raise portage.exception.PackageNotFound(cpv)
- pkg = Package(cpv=cpv, metadata=metadata,
+ pkg = Package(built=(type_name != "ebuild"), cpv=cpv,
+ metadata=metadata,
root_config=root_config, installed=installed)
- if type_name == "ebuild":
- settings = self.pkgsettings[root_config.root]
- settings.setcpv(pkg)
- pkg.metadata["USE"] = settings["PORTAGE_USE"]
- pkg.metadata['CHOST'] = settings.get('CHOST', '')
self._pkg_cache[pkg] = pkg
return pkg
@@ -4381,11 +4360,6 @@ class depgraph(object):
installed=installed, metadata=metadata,
operation=action, root_config=root_config,
type_name=pkg_type)
- if pkg_type == "ebuild":
- pkgsettings = self.pkgsettings[myroot]
- pkgsettings.setcpv(pkg)
- pkg.metadata["USE"] = pkgsettings["PORTAGE_USE"]
- pkg.metadata['CHOST'] = pkgsettings.get('CHOST', '')
self._pkg_cache[pkg] = pkg
root_config = self.roots[pkg.root]
@@ -4827,10 +4801,7 @@ def get_mask_info(root_config, cpv, pkgsettings,
db.aux_get(cpv, db_keys)))
except KeyError:
metadata = None
- if metadata and not built:
- pkgsettings.setcpv(cpv, mydb=metadata)
- metadata["USE"] = pkgsettings["PORTAGE_USE"]
- metadata['CHOST'] = pkgsettings.get('CHOST', '')
+
if metadata is None:
mreasons = ["corruption"]
else: