if you specify "emerge =foo-1.0-r4", then it only works if foo-1.0-r4 is the latest available, or if it is in a different slot: nosferatu 3.1 # emerge =sys-libs/glibc-2.2.5-r4 -p These are the packages that I would merge, in order. Calculating dependencies !!! Couldn't find match for =sys-libs/glibc-2.2.5-r4; aborting. nosferatu 3.1 # emerge =sys-libs/glibc-2.2.5-r5 -p These are the packages that I would merge, in order. Calculating dependencies ...done! [ebuild U ] sys-libs/glibc-2.2.5-r5 to / nosferatu 3.1 # emerge =gtkglarea-1.2.3-r1 -p These are the packages that I would merge, in order. Calculating dependencies ...done! [ebuild U ] x11-libs/gtkglarea-1.2.3-r1 to / nosferatu 3.1 # emerge =gtkglarea-1.99.0 -p These are the packages that I would merge, in order. Calculating dependencies ...done! [ebuild R ] x11-libs/gtkglarea-1.99.0 to / nosferatu 3.1 #
This holds true for portage-2.0.10.
OK, bug found and fixed in (to-be-released) Portage 2.0.11. The problem was that our visible() masking function had a logic error that would cause ~ deps in the packages file in particular to get incorrectly masked.