Description of problem: The package xorg-x11-devel includes /usr/X11R6/lib/libGL.a which make it conflicting any other openGL library like them from nVidia. This is cause X load this library in front of libGL.so. This makes other drivers with openGL support break if you need the devel package to develop X applications. (Other libraries just get overwritten but makes the rpm database broken for the involved xorg-x11-devel.) There has two to be done: 1. X must not load any .a archive. 2. The header files and the .a archives has to be for its own in a package without any .so library! Version-Release number of selected component (if applicable): Any in EL4
What is the problem you're seeing? The X server never loads libGL.a and linking against libGL will always pick up the shared library unless you explicitly specify -static on the link line. As for 2. we always ship header files, .so files and sometimes .a files in -devel packages. The non-devel package has the fully versioned .so files, for example: [krh@devserv krh]$ rpm -qlp xorg-x11-Mesa-libGL-6.8.2-1.EL.13.36.i386.rpm /usr/X11R6/lib/libGL.so.1 /usr/X11R6/lib/libGL.so.1.2 /usr/lib/libGL.so.1
I rechecked the bug again and I'm able to clarify it a bit: - The /usr/X11R6/lib/libGL.a is not loaded by the X server (anymore). - But there is still a problem with the X libraries. Package xorg-x11-devel includes /usr/lib/libGL.so which has not to be in a -devel package! This .so library is in fact loaded by the X server. Those file make the problems as it will be in, for example, nvidia-libs package as this is the correct location for the GL driver. So I suggest to 1. wipe out any appearance of a .so file in a -devel package 2. If needed make a separate -gl-libs package holding such libraries to allow to replace them with other packages.
We're not going to change the packaging of X in RHEL4 at this point. Your analysis is also just plain wrong. libGL.a has never been loaded by the X server, and neither is libGL.so.