summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/__init__.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 9eef9b6a3..6ad1c3865 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -586,6 +586,8 @@ def create_world_atom(pkg_key, metadata, args_set, root_config):
be greedy with respect to slots. Unslotted system packages will not be
stored in world."""
arg_atom = args_set.findAtomForPackage(pkg_key, metadata)
+ if not arg_atom:
+ return None
cp = portage.dep_getkey(arg_atom)
new_world_atom = cp
sets = root_config.settings.sets
@@ -1731,12 +1733,15 @@ class depgraph(object):
that happen to match arguments are not incorrectly marked as nomerge."""
args_set = self._sets["args"]
for myarg, myatom in arg_atoms:
- if myatom in args_set:
+ if myatom in self._set_atoms:
continue
- args_set.add(myatom)
self._set_atoms.add(myatom)
- if not oneshot:
- myfavorites.append(myatom)
+ if not self._get_parent_sets(myroot, myatom):
+ args_set.add(myatom)
+ if not oneshot:
+ # Filter out atoms that came from
+ # sets like system and world.
+ myfavorites.append(myatom)
pprovideddict = pkgsettings.pprovideddict
for arg, atom in arg_atoms:
try: