$ sudo emerge -av zope-fixers
These are the packages that would be merged, in order:
Calculating dependencies... done!
emerge: there are no ebuilds to satisfy "=dev-lang/python-3.2*".
(dependency required by "net-zope/zope-fixers-1.0" [ebuild])
(dependency required by "zope-fixers" [argument])
|| ( =dev-lang/python-3.2* =dev-lang/python-3.1* )
Portage prints first dependency atom.
Portage should prefer masked version over non-existing one with || ( ) deps then.
- =dev-lang/python-3* in /etc/portage/package.mask
- dev-lang/python-3.1.2-r3 is in portage
- =dev-lang/python-3.2* is not in portage
I guess we could consider this to be a variation of bug 164457, but with the stipulation that existing packages need to be distinguished from those that don't exist.
*** Bug 381821 has been marked as a duplicate of this bug. ***
*** Bug 382551 has been marked as a duplicate of this bug. ***
*** Bug 682044 has been marked as a duplicate of this bug. ***
The depgraph _select_atoms_highest_available method temporarily disables autounmask during atom selection. We want it to loop through the autounmask levels until it selects a satisfiable combination of atoms.
I have a working autounmask patch here, but it needs to be fixed to revert unnecessary autounmask changes when appropriate: