Bug #278729 - Inside dep_zapdeps(), ignore USE dependencies since we don't
authorZac Medico <zmedico@gentoo.org>
Mon, 3 Aug 2009 21:20:22 +0000 (21:20 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 3 Aug 2009 21:20:22 +0000 (21:20 -0000)
want USE settings to adversely affect || preference evaluation. Drop invalid
atoms inside _expand_new_virtuals() since we only want real Atom instances
inside dep_zapdeps().

svn path=/main/trunk/; revision=13881

pym/portage/__init__.py

index 28f42ba747ee23e26af845860a7c120881cfa47d..a327bd6449de81def1756d717c0b97905a542deb 100644 (file)
@@ -6918,6 +6918,9 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/",
                                if portage.dep._dep_check_strict:
                                        raise portage.exception.ParseError(
                                                "invalid atom: '%s'" % x)
+                               else:
+                                       # Only real Atom instances are allowed past this point.
+                                       continue
                        else:
                                if x.blocker and x.blocker.overlap.forbid and \
                                        eapi in ("0", "1") and portage.dep._dep_check_strict:
@@ -7139,7 +7142,9 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None):
                for atom in atoms:
                        if atom[:1] == "!":
                                continue
-                       avail_pkg = mydbapi.match(atom)
+                       # Ignore USE dependencies here since we don't want USE
+                       # settings to adversely affect || preference evaluation.
+                       avail_pkg = mydbapi.match(atom.without_use)
                        if avail_pkg:
                                avail_pkg = avail_pkg[-1] # highest (ascending order)
                                avail_slot = "%s:%s" % (dep_getkey(atom),