reposyntax: Fix ignored slot spec if the same cpv is in several repos with different...
authorSebastian Luther <SebastianLuther@gmx.de>
Tue, 21 Sep 2010 10:07:57 +0000 (12:07 +0200)
committerZac Medico <zmedico@gentoo.org>
Mon, 27 Sep 2010 06:50:14 +0000 (23:50 -0700)
pym/_emerge/depgraph.py
pym/portage/tests/resolver/test_multirepo.py

index 5c01712d5166d23f9199530dd8ae97fea65f3387..7b9a8fb6c25530bdcac88f5dc81ec511283f9ba2 100644 (file)
@@ -2486,6 +2486,9 @@ class depgraph(object):
                                                        if not InternalPackageSet(initial_atoms=(atom,)
                                                                ).findAtomForPackage(pkg, modified_use=self._pkg_use_enabled(pkg)):
                                                                continue
+                                               if not portage.match_from_list(atom, [pkg]):
+                                                       #There is a matching cpv in the repo, but it violates parts of the atom.
+                                                       continue
                                                yield pkg
 
        def _select_pkg_highest_available(self, root, atom, onlydeps=False):
index c3a45e904117aedded3e8e562a238bcb6c9a22b2..dfa9b0c1904e12bcaeb384a552ca324b9e21ae9c 100644 (file)
@@ -93,12 +93,11 @@ class MultirepoTestCase(TestCase):
                                success = True,
                                check_repo_names = True,
                                mergelist = ["dev-libs/E-1::repo2"]),
-                       #FAIL
-                       #~ ResolverPlaygroundTestCase(
-                               #~ ["dev-libs/E:1"],
-                               #~ success = True,
-                               #~ check_repo_names = True,
-                               #~ mergelist = ["dev-libs/E-1::repo2"]),
+                       ResolverPlaygroundTestCase(
+                               ["dev-libs/E:1"],
+                               success = True,
+                               check_repo_names = True,
+                               mergelist = ["dev-libs/E-1::repo2"]),
                        ResolverPlaygroundTestCase(
                                ["dev-libs/F:1"],
                                success = True,