summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Luther <SebastianLuther@gmx.de>2010-09-21 12:07:57 +0200
committerZac Medico <zmedico@gentoo.org>2010-09-26 23:50:14 -0700
commitc83e9fc6e3d45124514b53ed41d0df32dc937c4d (patch)
tree6fa1d3b1965e78b72bfb3562e4388d73cf75140f
parente177e729bad3659cb2610f511928f90868bbebc3 (diff)
downloadportage-c83e9fc6e3d45124514b53ed41d0df32dc937c4d.tar.gz
portage-c83e9fc6e3d45124514b53ed41d0df32dc937c4d.tar.bz2
portage-c83e9fc6e3d45124514b53ed41d0df32dc937c4d.zip
reposyntax: Fix ignored slot spec if the same cpv is in several repos with different SLOT
-rw-r--r--pym/_emerge/depgraph.py3
-rw-r--r--pym/portage/tests/resolver/test_multirepo.py11
2 files changed, 8 insertions, 6 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 5c01712d5..7b9a8fb6c 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -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):
diff --git a/pym/portage/tests/resolver/test_multirepo.py b/pym/portage/tests/resolver/test_multirepo.py
index c3a45e904..dfa9b0c19 100644
--- a/pym/portage/tests/resolver/test_multirepo.py
+++ b/pym/portage/tests/resolver/test_multirepo.py
@@ -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,