Don't discard root_config information when resolving SetArgs
SetArgs include which ROOT they are destined for, so use that information
when resolving the initial_arg_list rather than assuming the SetArg is
meant for the default ROOT.
This change means lakitu no longer fails with a collision between udev
and systemd when libcap is uprevved.
BUG=chromium:1039933
TEST=`emerge-lakitu -pgDu --with-bdeps=y --rebuild-if-new-rev target-os`
Change-Id: Ifded0753a3a6952f01b39f46b15cc734320b7f70
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/portage_tool/+/2048533
Tested-by: Chris McDonald <cjmcdonald@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Chris McDonald <cjmcdonald@chromium.org>
diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
index 6be1b3e..1058b5d 100644
--- a/lib/_emerge/depgraph.py
+++ b/lib/_emerge/depgraph.py
@@ -4324,6 +4324,10 @@
for arg in self._expand_set_args(args, add_to_digraph=True):
for atom in arg.pset.getAtoms():
+ if isinstance(arg, SetArg):
+ myroot = arg.root_config.root
+ else:
+ myroot = self._frozen_config.target_root
self._spinner_update()
dep = Dependency(atom=atom, onlydeps=onlydeps,
root=myroot, parent=arg)