Updating world to stable x86 today introduced a circular dependency between dev-perl/version & dev-perl/module-build when 'test' is in USE.
Steps to Reproduce:
1. # emerge -pu g-cpan
These are the packages that would be merged, in order:
Calculating dependencies... done!
[nomerge ] app-portage/g-cpan-0.15.0-r1 [0.14.0]
[nomerge ] dev-perl/Shell-EnvImporter-1.04
[nomerge ] dev-perl/Class-MethodMaker-2.10
[nomerge ] dev-perl/module-build-0.28.08 USE="test"
[ebuild N ] dev-perl/version-0.72.03
[ebuild N ] dev-perl/module-build-0.28.08 USE="test"
!!! Error: circular dependencies:
('ebuild', '/', 'dev-perl/module-build-0.28.08', 'merge') depends on
('ebuild', '/', 'dev-perl/version-0.72.03', 'merge') (hard)
('ebuild', '/', 'dev-perl/version-0.72.03', 'merge') depends on
('ebuild', '/', 'dev-perl/module-build-0.28.08', 'merge') (hard)
!!! Note that circular dependencies can often be avoided by temporarily
!!! disabling USE flags that trigger optional dependencies.
Updating g-cpan to a stable version should work when USE='test'.
These DEPEND lines cause the problem:
version-0.72.03.ebuild, ln 19:
module-build-0.28.08.ebuild, ln 27:
test? ( dev-perl/version )
Temporary workaround to remove the dependency:
FEATURES='-test' USE='-test' emerge -pu g-cpan
And, what kind of fix do you expect?
After some research in the gentoo forums, I see that there is no quick and general solution for this kind of problem.
The Gentoo handbook ( http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1 ) first suggests to "resync after a while and try again", but when the circle is actually reasonable (which probably is the case here), it will remain.
The second suggestion is to "check bugzilla", so a bugzilla entry concretely naming the ebuilds involved and the problematic USE flag(s) at least may help users like me, installing or upgrading deep dependencies about which we don't have any in-depth knowledge.
You can either emerge dev-perl/module-build w/ FEATURES="-test" and continue, or package.use.mask test for this ebuild (see man portage). The real solution would be fixing Bug 175808.
*** Bug 187231 has been marked as a duplicate of this bug. ***
*** Bug 189681 has been marked as a duplicate of this bug. ***
*** Bug 191171 has been marked as a duplicate of this bug. ***
*** Bug 215249 has been marked as a duplicate of this bug. ***
*** Bug 229795 has been marked as a duplicate of this bug. ***