First, the output of emerge -up --deep world: ---- 8< ---- # emerge -up --deep world These are the packages that I would merge, in order: Calculating world dependencies ...done! [ebuild UD] sys-apps/module-init-tools-0.9.12-r1 [0.9.15_pre4] [ebuild UD] app-cdr/cdrtools-2.01_alpha14 [2.01_alpha20] [ebuild UD] app-cdr/xcdroast-0.98_alpha13 [0.98_alpha15-r2] [ebuild UD] media-sound/sox-12.17.3-r3 [12.17.4-r1] [ebuild UD] media-video/mplayer-0.92 [1.0_pre3] [ebuild UD] app-cdr/cdrdao-1.1.7-r1 [1.1.7-r3] [ebuild UD] app-cdr/k3b-0.9 [0.10.3-r2] ---- 8< ---- As you can see, there are only packages to be downgraded. These should be ignored using the -U option. However, the output of emerge -Uup --deep world is as follows: ---- 8< ---- emerge -uUp --deep world These are the packages that I would merge, in order: Calculating world dependencies / !!! all ebuilds that could satisfy ">=app-cdr/cdrtools-2.01_alpha17" have been masked. !!! (dependency required by "app-cdr/xcdroast-0.98_alpha15-r2" [ebuild]) !!! Problem with ebuild app-cdr/xcdroast-0.98_alpha15-r2 !!! Possibly a DEPEND/*DEPEND problem. !!! Depgraph creation failed. ---- 8< ---- My guess is that it tries to calculate the dependencies of to-be-downgraded packages, which should be - but are not - ignored. The expected result would be that emerge reports no packages to be upgraded using the -Uup option in this case. The listed packages above were emerged using the ACCEPT_KEYWORDS="~x86". This is normally not set, so of course these packages are usually masked (which is why emerge wants to downgrade them). I'm currently looking for some way to do deep world-updates without these packages to be downgraded. This fails because of the same reason - the dependencies cannot be satisfied. Currently I just re-emerge them after they were downgraded... is there any other way? Reproducible: Always Steps to Reproduce: 1. 2. 3.
Use /etc/portage/package.keywords in 2.0.50 series of portages.