Currently, for example for the case of evdev, I see this in ebuild:
input_devices_evdev? ( x11-drivers/xf86-input-evdev )
This will lead to an unsolvable block (after long time of dependencies calculation) and portage being unable to take advantage of its autounmask feature to resolve it.
On the other hand, if it would explicetly also force:
input_devices_evdev? ( >=x11-drivers/xf86-input-evdev-2.10.0 )
That would help portage to resolve the dependency and unmask the needed package directly
!<x11-drivers/xf86-input-evdev-2.10.0 is a blocker because it causes file collisions with >=xorg-server-1.18.
We could move that blocker to xorg-server itself instead, not sure if that would help.
I don't think it will help as portage won't try to update evdev to resolve the blocker and, then, it will fail in the same way.
On the other hand, if >=...-2.10.0 is put in RDEPEND behind the input_devices_evdev? USE, it will unmask that newer versions and, then, be able to update (and will also probably help portage to calculate deps faster instead of relying on backtrack to try to resolve the blocker).
The blocker must remain in place due to the file collision.
It might be worth entertaining whether additionally adding >=x11-drivers/xf86-input-evdev-2.10.0 to dependencies in order to work around portage limitations might be a good idea.
I lean towards no, because if you upgrade xorg-server with --upgrade --deep there should be no problem, and we only support running latest stable or latest unstable xorg packages together anyway (ie. not trying to mix stable xf86-video-evdev with unstable xorg-drivers). But if others have a stronger opinion about this I will leave the decision to them.
The bug has been closed via the following commit(s):
Author: Matt Turner <email@example.com>
AuthorDate: 2018-06-08 04:48:50 +0000
Commit: Matt Turner <firstname.lastname@example.org>
CommitDate: 2018-06-08 04:53:13 +0000
x11-base/xorg-drivers: Remove unnecessary blockers
x11-base/xorg-drivers/xorg-drivers-1.20.ebuild | 57 +++++++++-----------------
x11-base/xorg-drivers/xorg-drivers-9999.ebuild | 57 +++++++++-----------------
2 files changed, 40 insertions(+), 74 deletions(-)