summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-10-25 05:29:01 +0000
committerZac Medico <zmedico@gentoo.org>2007-10-25 05:29:01 +0000
commitaa6e0cdf098ae7930daa2b3bc7bad80d0574d377 (patch)
tree500f70cad6768f737effc584c834e73d189b46a0
parenta3463bc1dcf821fa8db82469d2195200fc539bad (diff)
downloadportage-aa6e0cdf098ae7930daa2b3bc7bad80d0574d377.tar.gz
portage-aa6e0cdf098ae7930daa2b3bc7bad80d0574d377.tar.bz2
portage-aa6e0cdf098ae7930daa2b3bc7bad80d0574d377.zip
Filter atoms that come from sets when generating
the list of atoms to record in the world file. svn path=/main/trunk/; revision=8288
-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: