emerge prints a totally unrelated error message when trying to update a package which doesn't satisfy REQUIRED_USE settings (app-misc/mc in this case): shanghai:~ # emerge -uDpv @world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] net-libs/libssh-0.4.8 [0.4.6] USE="-debug -examples -gcrypt -pcap% -server sftp -ssh1 -static-libs zlib" 272 kB Total: 1 package (1 upgrade), Size of downloads: 272 kB !!! Problems have been detected with your world file !!! Please run emaint --check world !!! Ebuilds for the following packages are either all !!! masked or don't exist: app-misc/mc shanghai:~ # emerge -qpv =mc-4.7.4* [ebuild R ] app-misc/mc-4.7.4-r1 USE="-X edit -gpm nls -samba slang" shanghai:~ # emerge -pv mc These are the packages that would be merged, in order: Calculating dependencies... done! !!! The ebuild selected to satisfy "mc" has unmet requirements. - app-misc/mc-4.7.5::gentoo USE="-X edit -gpm (multilib) ncurses nls -samba slang" The following REQUIRED_USE flag constraints are unsatisfied: exactly-one-of ( ncurses slang ) shanghai:~ # USE="-ncurses" emerge -pv mc These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] app-misc/mc-4.7.5 [4.7.4-r1] USE="-X edit -gpm -ncurses% nls -samba slang" 0 kB Total: 1 package (1 upgrade), Size of downloads: 0 kB shanghai:~ # grep mc /var/lib/portage/world app-misc/mc shanghai:~ #
Created attachment 261284 [details] emerge.output.xz
This is fixed in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=dd5175a7e851a12f5740c2481c96b32e5db1f4eb
There's a somewhat related fix here which makes || choices independent of REQUIRED_USE: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=3e343a2e66053dc6375ba7ea04c6966afef995f7
Now it will display like a normal unsatisfied dep, since the "skipped update" message may be inappropriate: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=ebc2fafe4a7261ba6e97c3f0ec134b7ca542d1d7
This is fixed in 2.1.9.36 and 2.2.0_alpha20.