Portage is thinking that distcc-0.15 is a newer version than distcc-1.1, so that as in the steps to reproduce, if I manually go to 1.1, and then emerge -u world, it will be downgraded to 0.15. What weird is that on the emerge -u world, it *knows* that it's a downgrade! Interestingly, I put this into /usr/portage/profiles/packages.mask to try to force it to the current version: <sys-devel/distcc-1.1 But that simply causes all distcc packages to be masked! So I tried this: >=sys-devel/distcc-0.12 And voila. '11' is less than '12' and so wasn't masked, and '15' was masked, so that it stopped trying to downgrade from 1.1 to 0.15 :-) Reproducible: Always Steps to Reproduce: 1. ebuild /usr/portage/sys-devel/distcc-1.1.ebuild merge 2. emerge -up distcc 3. Say wha? Downgrade to 0.15? But it's not masked...
distcc-0.15 is the most recent known-stable version and thus carries the "x86" KEYWORD distcc-1.1 is in the testing phases and thus carries the KEYWORD "~x86" If you had ACCEPT_KEYWORDS="~x86" in your /etc/make.conf the downgrade would not happen.