commit:     ae3e58e83b0a3e75990fd2cef04a0c14b3162650
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 00:24:47 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Dec 22 00:26:17 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=ae3e58e8

testVirtualCmakeBootstrapUseConditional: split out virtual/cmake

If we split the dependency conditional on the bootstrap USE flag into a
virtual, then it suffices to rebuild the virtual with USE=-bootstrap
instead of rebuilding jsoncpp:

 * Error: circular dependencies:

(dev-libs/jsoncpp-1.9.2:0/0::test_repo, ebuild scheduled for merge) depends on
 (virtual/cmake-0:0/0::test_repo, ebuild scheduled for merge) (buildtime)
  (dev-util/cmake-3.16.2:0/0::test_repo, ebuild scheduled for merge) (buildtime)
   (dev-libs/jsoncpp-1.9.2:0/0::test_repo, ebuild scheduled for merge) 
(buildtime_slot_op)

It might be possible to break this cycle
by applying the following change:
- virtual/cmake-0 (Change USE: +bootstrap)

Note that this change can be reverted, once the package has been installed.

Bug: https://bugs.gentoo.org/703440
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/tests/resolver/test_circular_choices.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/portage/tests/resolver/test_circular_choices.py 
b/lib/portage/tests/resolver/test_circular_choices.py
index 366f2bc27..ef9e88eac 100644
--- a/lib/portage/tests/resolver/test_circular_choices.py
+++ b/lib/portage/tests/resolver/test_circular_choices.py
@@ -51,8 +51,7 @@ class CircularJsoncppCmakeBootstrapTestCase(TestCase):
                ebuilds = {
                        'dev-libs/jsoncpp-1.9.2': {
                                'EAPI': '7',
-                               'IUSE': '+bootstrap',
-                               'BDEPEND': 'bootstrap? ( 
dev-util/cmake-bootstrap ) !bootstrap? ( dev-util/cmake )'
+                               'BDEPEND': 'virtual/cmake'
                        },
                        'dev-util/cmake-bootstrap-3.16.2': {
                                'EAPI': '7',
@@ -61,13 +60,18 @@ class CircularJsoncppCmakeBootstrapTestCase(TestCase):
                                'EAPI': '7',
                                'BDEPEND': '>=dev-libs/jsoncpp-0.6.0_rc2:0=',
                        },
+                       'virtual/cmake-0': {
+                               'EAPI': '7',
+                               'IUSE': '+bootstrap',
+                               'BDEPEND': 'bootstrap? ( 
dev-util/cmake-bootstrap ) !bootstrap? ( dev-util/cmake )'
+                       },
                }
 
                test_cases = (
                        # Solve bug 703440 with a dependency conditional on the 
bootstrap USE flag.
                        ResolverPlaygroundTestCase(
                                ['dev-util/cmake'],
-                               mergelist = ['dev-util/cmake-bootstrap-3.16.2', 
'dev-libs/jsoncpp-1.9.2', 'dev-util/cmake-3.16.2'],
+                               mergelist = ['dev-util/cmake-bootstrap-3.16.2', 
'virtual/cmake-0', 'dev-libs/jsoncpp-1.9.2', 'dev-util/cmake-3.16.2'],
                                success = True,
                        ),
                )

Reply via email to