emerge -Uv world wants to downgrade packages Reproducible: Always Steps to Reproduce: new binutils has been emerged some time ago, after which older ebuild has been marked to be used in portage. emerge -puUv world Actual Results: 1g root # emerge -puUv world These are the packages that I would merge, in order: Calculating world dependencies ...done! [ebuild U ] sys-apps/diffutils-2.8.7 [2.8.4-r4] -build -nls -static 1,033 kB [ebuild U ] media-libs/libpng-1.2.5-r5 [1.2.5-r4] 369 kB [ebuild UD] sys-devel/binutils-2.14.90.0.8-r1 [2.15.90.0.3-r1] -bootstrap -build -nls 0 kB Total size of downloads: 1,402 kB Expected Results: 1g root # emerge -puUv world These are the packages that I would merge, in order: Calculating world dependencies ...done! [ebuild U ] sys-apps/diffutils-2.8.7 [2.8.4-r4] -build -nls -static 1,033 kB [ebuild U ] media-libs/libpng-1.2.5-r5 [1.2.5-r4] 369 kB
This happens when the installed version has actually been removed from the portage tree. It could very well be by design since according to portage that *is* and upgrade, but I'll let the portage team decide that.
this is intended behaviour, sys-devel/binutils-2.15.* have been masked with KEYWORDS="-*" because these versions will cause strange problems. portage will always downgrade a masked package, even with -U option. for some arches they've been unmasked, but i think your arch is not under these. next time supply the output of emerge --info this will make diagnose of bugs easier.
Spot on Sven, If security flaws exist in the latest versions of any software and there is no quick workaround, the latest version will be removed, resulting in an apperent upgrade that drops a version. There are probably a few other good reasons for a -U showing a downgrade but it will only happen if it is putting your system in jepody. In the end its your choice though.