elo, I have file /etc/portage/package.keywords/xen-tools with this content: =app-emulation/xen-tools-4.6.1 ~amd64 emerge -uDNva world wants to downgrade app-emulation/xen-tools-4.6.1 to app-emulation/xen-tools-4.6.0-r9:0/4.6::gentoo. emerge -uNva world works as expected. How come?
Probably because of this: :0/4.6 this is the subslot dependency that other installed packages are built against. This means that to update this package you will need to also re-build those installed packages. Right now, emerge is determining that the best solution is to downgrade this package rather than re-build the others. This might be because one or more of the others do not work with the newer version of this package. But also sometimes emerge might not get it completely correct. In those cases usually adding those other packages to the emerge command line helps it get past the downgrade (in this case) and update it and the pakcages built against it. If this is the case, then please mark this as resolved/invalid run: equery d xen-tools to get a list of installed packages depending on xen-tools. From there look at their depends to see which ones are relying on the subslot dependencies.
You are 100% correct, Sir. For the record: I've emerged xen-tools-4.6.1 as it contains patch for the seabios which in turn allows me to compile it successfully on hardened system. But Xen ecosystem, depending on flags you choose, contains few other packages that depends on xen-tools-4.6.0-r9:0/4.6::gentoo. Thank you for your time and help.