While building Mesa 3.4-13 with XFree 3.3.6 (I cannot build with XFree 4.0.3 since the latter is not yet installed and requires Mesa-devel package in order to build) compilation process aborts with the following message: In file included from glxclient.h:41, from clientattrib.c:25: glxint.h:27:23: X11/Xdefs.h: No such file or directory /usr/include/X11/Xdefs.h doesn't exist in XFree86 3.3.6 by definition, this is XFree86 4.0-specific file, so it should be included in Mesa SRPM, but may be it's worth including Mesa 3.4 in the XFree86 4.0.3 package in order to avoid such cyclic dependencies?
Yes, known problem. The right fix is to merge Mesa into the XFree86 package because they depend on each other. (Or better yet, to get rid of XFree86 3.3.x so we can eliminate the need for Mesa). Neither was possible in time for the last release.
What Bero says is correct. I am planning on integrating Mesa directly into XFree86 4.0.3 soon possibly to avoid this loop. If you are using 7.x release of Red Hat Linux, the solution is to install XFree86 first, then build Mesa, then build X, then upgrade X. If you are building in RHL 6.x or earlier it is completely unsupported, and I wouldn't consider it a bug. ;o)
I have integrated the Mesa package into the XFree86 package and it wasn't a particularly amusing task.. ;o( The result was not particularly as fantastic as I had hoped. Instead of a build time race as described above, instead there was a specfile race between XFree86's libGL and Mesa. In terms of man hours spent on trying to get around this dumb problem, it just is not worth the effort. I ripped Mesa back out of XFree86 and am going to continue to do it the way it has been done all along. I really do not think it is that great a deal to have someone preinstall XFree86 to build Mesa, then install Mesa, then build XFree86. Yes it is suboptimal, but there is no simple solution right now, and the workaround is not that much of a problem IMHO. Another reason I am not going to waste any more time on this is that Mesa 3.5.x in the DRI project now aparently has the bits and pieces to provide support natively for 3.3.6 clients that do not grok GLX. This means that XFree86 4.2.0 will very likely not have this problem anymore when released, and the separate Mesa will be unnecessary. If this work can be back ported, then I will incorporate it.