Update parallel_emerge to the latest portage version
We are upreving portage. parallel_emerge need to be updated to work with some
refactored part of portage.
BUG=chromium:398269
TEST=./build_packages works for portage 2.2.10 and 2.1.11.
Change-Id: I38ac070c510acf009e988c7ae58cb6c3ec35391d
Reviewed-on: https://chromium-review.googlesource.com/210131
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
diff --git a/scripts/parallel_emerge.py b/scripts/parallel_emerge.py
index a0d9902..d196256 100644
--- a/scripts/parallel_emerge.py
+++ b/scripts/parallel_emerge.py
@@ -453,7 +453,7 @@
# pylint: disable=W0212
digraph = depgraph._dynamic_config.digraph
root = emerge.settings["ROOT"]
- final_db = depgraph._dynamic_config.mydbapi[root]
+ final_db = get_db(depgraph._dynamic_config, root)
for node, node_deps in digraph.nodes.items():
# Calculate dependency packages that need to be installed first. Each
# child on the digraph is a dependency. The "operation" field specifies
@@ -1800,6 +1800,19 @@
x.join(1)
+def get_db(config, root):
+ """ Return the dbapi.
+ Handles both portage 2.1.11 and 2.2.10 (where mydbapi has been removed).
+
+ TODO(bsimonnet): Remove this once portage has been uprevd.
+ """
+ try:
+ return config.mydbapi[root]
+ except AttributeError:
+ # pylint: disable=W0212
+ return config._filtered_trees[root]['graph_db']
+
+
def real_main(argv):
parallel_emerge_args = argv[:]
deps = DepGraphGenerator()
@@ -1849,7 +1862,7 @@
portage_upgrade = False
root = emerge.settings["ROOT"]
# pylint: disable=W0212
- final_db = emerge.depgraph._dynamic_config.mydbapi[root]
+ final_db = get_db(emerge.depgraph._dynamic_config, root)
if root == "/":
for db_pkg in final_db.match_pkgs("sys-apps/portage"):
portage_pkg = deps_graph.get(db_pkg.cpv)