summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-01-03 00:55:38 -0800
committerZac Medico <zmedico@gentoo.org>2011-01-03 00:55:38 -0800
commit5fb13528549d4b47bd807b3824405a231e596549 (patch)
tree77c8f8b20fd61a2e6a1d27236abb942b45b37d66
parent029ec2b89b7d55c68d89b6dff3dbe5539825e71a (diff)
downloadportage-5fb13528549d4b47bd807b3824405a231e596549.tar.gz
portage-5fb13528549d4b47bd807b3824405a231e596549.tar.bz2
portage-5fb13528549d4b47bd807b3824405a231e596549.zip
depgraph: fix bug #350254 and test it
-rw-r--r--pym/_emerge/depgraph.py3
-rw-r--r--pym/portage/tests/resolver/test_multirepo.py16
2 files changed, 15 insertions, 4 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index f62af31b8..a167b452f 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2871,7 +2871,8 @@ class depgraph(object):
modified_use=self._pkg_use_enabled(pkg)):
continue
- if dont_miss_updates:
+ if packages_with_invalid_use_config and \
+ (not pkg.installed or dont_miss_updates):
# Check if a higher version was rejected due to user
# USE configuration. The packages_with_invalid_use_config
# list only contains unbuilt ebuilds since USE can't
diff --git a/pym/portage/tests/resolver/test_multirepo.py b/pym/portage/tests/resolver/test_multirepo.py
index e6475762d..23f8f0200 100644
--- a/pym/portage/tests/resolver/test_multirepo.py
+++ b/pym/portage/tests/resolver/test_multirepo.py
@@ -28,6 +28,9 @@ class MultirepoTestCase(TestCase):
"dev-libs/F-1::repo1": { "SLOT": "1" },
"dev-libs/F-1::repo2": { "SLOT": "1" },
+
+ "dev-libs/G-1::repo1": { "EAPI" : "4", "IUSE":"+x +y", "REQUIRED_USE" : "" },
+ "dev-libs/G-1::repo2": { "EAPI" : "4", "IUSE":"+x +y", "REQUIRED_USE" : "^^ ( x y )" },
}
sets = {
@@ -113,6 +116,14 @@ class MultirepoTestCase(TestCase):
success = True,
check_repo_names = True,
mergelist = ["dev-libs/F-1::repo1"]),
+
+ # Check interaction between repo priority and unsatsisfied
+ # REQUIRED_USE, for bug #350254.
+ ResolverPlaygroundTestCase(
+ ["=dev-libs/G-1"],
+ check_repo_names = True,
+ success = False),
+
)
playground = ResolverPlayground(ebuilds=ebuilds, sets=sets)
@@ -206,9 +217,8 @@ class MultirepoTestCase(TestCase):
mergelist = ["dev-libs/A-2::repo1", "dev-libs/B-2"]),
ResolverPlaygroundTestCase(
["=dev-libs/B-3"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-1", "dev-libs/B-3"]),
+ success = False,
+ check_repo_names = True),
#package.keywords test
ResolverPlaygroundTestCase(