Today I reworked the mesa and xorg-server ebuilds to do things the cool way with the latest git sources. Mesa added an autoconf build, thanks to Dan Nicholson, which makes the ebuild a lot simpler and less error-prone by being more standardized. There’s no XCB support yet–if nobody else adds it, I’ll probably do it eventually. It’s just autoconf, no automake, so the installation side of the ebuild stayed pretty complex. There’s a few strange things going on with what headers mesa installs that I haven’t looked into besides just deleting them.
Also, these updates incorporate the first major step to removing the extra copy of the mesa source code used to build xorg-server. The GLcore module is now built within mesa instead of xorg-server, thanks to George Sapountzis. This created a circular dependency between xorg-server and mesa, so I made a new ebuild called mesa-glcore. Unfortunately this means that libmesa.a still gets built twice. The other half of getting the mesa source out of the xorg-server build is libglx, and I’m hoping someone does it soon (hint, hint!).
This work is all available in the Gentoo x11 overlay, which you can add with the simple command `layman -a x11`.
You guys use the XCB target, huh? I didn’t think anybody used that. It looks like the easiest thing to do is add a –with-xcb or –enable-xcb (maybe it should be DRI specific, like –enable-dri-xcb?) that just adds -DUSE_XCB and adjusts the PKG_CHECK_MODULES for DRI. Is that all there is to it? That’s what I gather from looking at configs/linux-dri-xcb.
Here’s how I set it up in the old system, so that sounds mostly reasonable:
DEFINES += -DUSE_XCB
X11_INCLUDES += `pkg-config –cflags-only-I xcb` `pkg-config –cflags-only-I x11-xcb` `pkg-config –cflags-only-I xcb-glx`
GL_LIB_DEPS += `pkg-config –libs xcb` `pkg-config –libs x11-xcb` `pkg-config –libs xcb-glx`
It doesn’t look DRI-specific — it changes src/glx/x11/{indirect.c,glxext.c}, which are compiled unconditionally. The old linux-indirect config mentions glx/x11, too.
Unconditionally on DRI, that is … they of course aren’t compiled for osmesa.