| Index: parallel_emerge
|
| diff --git a/parallel_emerge b/parallel_emerge
|
| index 930f53dcd6f1982d92000cb2a74421378182ecb8..6f98f41dfac24460684a3142c223254f0a3c8674 100755
|
| --- a/parallel_emerge
|
| +++ b/parallel_emerge
|
| @@ -1192,41 +1192,23 @@ class DepGraphGenerator(object):
|
| """Update packages that can use prebuilts to do so."""
|
| start = time.time()
|
|
|
| - # The bintree is the database of binary packages. By default, it's
|
| - # empty.
|
| - bintree = emerge.trees[root]["bintree"]
|
| - bindb = bintree.dbapi
|
| - root_config = emerge.root_config
|
| - pkgsettings = emerge.depgraph._frozen_config.pkgsettings[root]
|
| - prebuilt_pkgs = {}
|
| -
|
| - # Populate the DB with packages
|
| - bintree.populate("--getbinpkg" in emerge.opts,
|
| - "--getbinpkgonly" in emerge.opts)
|
| -
|
| # Build list of prebuilt packages
|
| + prebuilt_pkgs = {}
|
| for pkg, info in deps_map.iteritems():
|
| if info and info["action"] == "merge":
|
| if (not info["force_remote_binary"] and info["mandatory_source"] or
|
| "--usepkgonly" not in emerge.opts and pkg not in remote_pkgs):
|
| continue
|
|
|
| - db_keys = list(bindb._aux_cache_keys)
|
| - try:
|
| - db_vals = bindb.aux_get(pkg, db_keys + ["MTIME"])
|
| - except KeyError:
|
| - # No binary package
|
| - continue
|
| -
|
| - mtime = int(db_vals.pop() or 0)
|
| - metadata = zip(db_keys, db_vals)
|
| - db_pkg = Package(built=True, cpv=pkg, installed=False,
|
| - metadata=metadata, onlydeps=False, mtime=mtime,
|
| - operation="merge", root_config=root_config,
|
| - type_name="binary")
|
| + db_pkg = emerge.depgraph._pkg(pkg, "binary", emerge.root_config)
|
| + if info["force_remote_binary"]:
|
| + # Undo our earlier hacks to the use flags so that the use flags
|
| + # display correctly.
|
| + db_pkg.use.enabled = db_pkg.metadata["USE"].split()
|
| prebuilt_pkgs[pkg] = db_pkg
|
|
|
| # Calculate what packages need to be rebuilt due to changes in use flags.
|
| + pkgsettings = emerge.depgraph._frozen_config.pkgsettings[root]
|
| for pkg, db_pkg in prebuilt_pkgs.iteritems():
|
| if not self.CheckUseFlags(pkgsettings, db_pkg, self.package_db[pkg]):
|
| MergeChildren(pkg, "mandatory_source")
|
|
|