mesa-9999 won't compile if libXxf86vm-9999 is not installed, because /usr/include/X11/extensions/xf86vmode.h is missing. I had libXxf86vm-1.0.2 installed and mesa would not compile. This also impacts allegro and maybe some other libs. Reproducible: Always Steps to Reproduce: 1.layman -a x11 2. make sure =x11-libs/libXxf86vm-9999 is not in /etc/portage.package.unmask 3. emerge libXxf86vm (downgrade it) 4. emerge mesa Actual Results: mesa halted with a compile error (it was missing a prototype from xf86vmode.h Expected Results: mesa should compile
No, the problem is that you are using an unholy constellation of stable and unstable parts of X.org. Which may or may not work. In your case it is probably x11-proto/xf86vidmodeproto-2.3 (or 9999) x11-libs/libXxf86vm-1.0.2 This cannot work, as xf86vmode.h was removed from xf86vidmodeproto-2.3 and added to libXxf86vm-1.1.0
I know that was the problem, because I solved it. The idea behind a package manager is that it should resolve dependencies correctly. This includes the correct versions.When I unmasked the unstable versions of x11-drm, mesa and xorg-server, I had to unmask a bunch of unstable libraries to install it. This included xf86vidmodeproto, but not libXxf86vm. I started with: =x11-base/x11-drm-99999999 =x11-base/xorg-server-9999 =media-libs/mesa-9999 Than I had to add: =x11-proto/xextproto-9999 =x11-base/xorg-drivers-9999 =x11-libs/libXi-9999 =x11-libs/libXext-9999 =x11-libs/libXinerama-9999 =x11-libs/libX11-9999 =x11-libs/libxcb-9999 =x11-proto/xproto-9999 =x11-proto/xcb-proto-9999 =x11-drivers/xf86-video-ati-9999 =x11-libs/libdrm-9999 =x11-drivers/xf86-input-synaptics-9999 =x11-drivers/xf86-input-evdev-9999 =x11-libs/libXtst-9999 And only after I added the line below, it worked. =x11-libs/libXxf86vm-9999 The only package depending on it, is xorg-x11, which I don't use since it installs a whole bunch of other stuff I don't need.
Mixing stable and unstable parts of X.org is possible but not supported. Do not expect Gentoo to keep you from shooting yourself in your foot. The alternative would be to introduce blocks like qt-4.5 did, but whether it is worth the hassle is questionable.
We have actually started adding blockers here and there in current masked packages (and in overlay ebuilds). But we do need to go over the whole lot. I'm sure we've missed a few. Those blockers should also be added to -9999 ebuilds. Thanks
I've checked all currently masked proto packages and I've added blockers where necessary. Hopefully, the blockers should now prevent this bug. Thanks