I have this problem with two machines (maybe more, I haven't checked). Both on ~amd64 with nothing special.
I just did a complete world update and cleanup. Now I do this:
# emerge -vp xorg-server
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild U ] x11-base/xorg-drivers-1.16 [1.15] INPUT_DEVICES="evdev -acecad -aiptek -elographics -fpit -hyperpen -joystick -keyboard -mouse -mutouch -penmount -synaptics -tslib -vmmouse -void -wacom" VIDEO_CARDS="intel -apm -ast -chips -cirrus -dummy -epson -fbdev -fglrx (-freedreno) (-geode) -glint -i128 (-i740) -mach64 -mga -modesetting -neomagic -nouveau -nv -nvidia (-omap) (-omapfb) -qxl -r128 -radeon -radeonsi -rendition -s3% -s3virge -savage -siliconmotion -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l -vesa -via -virtualbox -vmware (-voodoo)" 0 KiB
[ebuild r U ] x11-base/xorg-server-1.16.0:0/1.16.0 [1.15.1:0/1.15.1] USE="ipv6 nptl suid udev xorg -dmx -doc (-glamor) -kdrive -minimal (-selinux) -static-libs -systemd% -tslib -unwind -wayland% -xnest -xvfb" 5,697 KiB
[ebuild rR ] x11-drivers/xf86-input-evdev-2.8.4 0 KiB
[ebuild r U ] x11-drivers/xf86-video-intel-2.99.914 [2.99.911-r1] USE="dri sna udev xvmc -debug -glamor -uxa" 2,189 KiB
Total: 4 packages (3 upgrades, 1 reinstall), Size of downloads: 7,885 KiB
The following packages are causing rebuilds:
(x11-base/xorg-server-1.16.0:0/1.16.0::gentoo, ebuild scheduled for merge) causes rebuilds for:
(x11-drivers/xf86-video-intel-2.99.914:0/0::gentoo, ebuild scheduled for merge)
(x11-drivers/xf86-input-evdev-2.8.4:0/0::gentoo, ebuild scheduled for merge)
* IMPORTANT: 12 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.
There's an xorg-server update that wasn't built. Weird. If I run 'emerge -puDN @world' again it comes back empty.
xorg-server is in the world file:
# grep xorg-server /var/lib/portage/world
Relevant bits from my make.conf:
CFLAGS="-O2 -march=native -fomit-frame-pointer -pipe"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --complete-graph=y --keep-going=y"
# emerge --version
Portage 2.2.12 (python 2.7.8-final-0, default/linux/amd64/13.0/desktop, gcc-4.8.3, glibc-2.19-r1, 3.16.1-gentoo x86_64)
Do you need any more info?
Is it still picked up if you use 'emerge -vpD xorg-server' ?
There's a chance, that one of your packages has a restriction on xorg-server version.
You can show reverse dependencies like this:
emerge -pv --depclean xorg-server
I have reproduced this bug in the past, no there was nothing that needed an older version. If you "emerge -1 xorg-server" to force the upgrade, then "emerge -uDNav world", everything is consistent and there are no problems.
Looks like this is caused by the following commit:
a862cc5dd1a56114fa579c5fb01b518b243666d9 : Solve some slot conflicts without backtracking
My guess is that _solve_non_slot_operator_slot_conflicts (from commit a862cc5dd1a5) is solving slot conflicts triggered by slot operators before self._dynamic_config._slot_operator_replace_installed has had a chance to become populated by the first backtrack run.
I now have a copy of Ben's configuration, with which I hope to reproduce this bug.
In the following branch I have a test case (based on Ben's configuration) that reproduces this bug:
It shows that _solve_non_slot_operator_slot_conflicts removes both versions of xorg-server from the graph, since they don't have any non-conflict parents (except for @selected which matches both instances).
Created attachment 385084 [details, diff]
_solve_non_slot_operator_slot_conflicts: fix bug #522084
Fix _solve_non_slot_operator_slot_conflicts to add all parents to the conflict_graph, even for parents where the atom matches all relevant nodes. Otherwise, we risk removing all of the matched nodes from the graph, which would cause a missed update.
This is in git now:
*** Bug 519536 has been marked as a duplicate of this bug. ***
*** Bug 523486 has been marked as a duplicate of this bug. ***
This is fixed in portage-2.2.14.
*** Bug 506022 has been marked as a duplicate of this bug. ***