libGL requires libnvidia version 285, although version 290 is installed

I wanted to compile my game tuxomania (Tuxomania) in openSUSE 12.1 i586
From what I remember it worked fine a few weeks ago.

Now I get this:
Linking CXX executable tuxomania
/usr/lib/gcc/i586-suse-linux/4.6/…/…/…/…/i586-suse-linux/bin/ld: warning: libnvidia-tls.so.285.05.09, needed by /usr/lib/gcc/i586-suse-linux/4.6/…/…/…/libGL.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc/i586-suse-linux/4.6/…/…/…/…/i586-suse-linux/bin/ld: warning: libnvidia-glcore.so.285.05.09, needed by /usr/lib/gcc/i586-suse-linux/4.6/…/…/…/libGL.so, not found (try using -rpath or -rpath-link)

I found out that I have the NVIDIA driver version 290, not 285, installed from the official NVIDIA repo:

rpm -qa | grep nvidia

x11-video-nvidiaG02-290.10-13.1.i586
nvidia-gfxG02-kmp-desktop-290.10_k3.1.0_1.2-12.1.i586
nvidia-computeG02-290.10-13.1.i586

Then I tried this:
vincent@vincent:~/workspace/tuxomania/build> ldd /usr/lib/libGL.so
linux-gate.so.1 => (0xffffe000)
** libnvidia-tls.so.285.05.09 => not found
libnvidia-glcore.so.285.05.09 => not found**
libX11.so.6 => /usr/lib/libX11.so.6 (0xb74d9000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb74c7000)
libc.so.6 => /lib/libc.so.6 (0xb735a000)
libdl.so.2 => /lib/libdl.so.2 (0xb7355000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7335000)
/lib/ld-linux.so.2 (0xb770e000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb7331000)

So it seems that libGL is expecting to use libnvidia version 285, even though I have a 290.

Am I missing something or is this a bug ?

I’d expect libGL to accept any version of the driver.

I tried reinstalling Mesa and Mesa-devel, which contain libGL, but without success.

This is openSUSE 12.1 i586 with all updates installed.

Thanks,

Vincent

Ok solved it.

It turns out I had an old NVIDIA driver installed using the “run” package from the NVIDIA website. That was until I decided to use the official repo instead of installing manually each time. It seems that the RPMs from the repo didn’t clean that old driver.

To clean it up, I did this:
./NVIDIA-Linux-x86-285.05.09.run --uninstall

I didn’t even need to reinstall to newer nvidia rpm packages !

ldd now says this:
vincent@vincent:~/workspace/tuxomania> ldd /usr/lib/libGL.so.1
linux-gate.so.1 => (0xffffe000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7653000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb7641000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb763d000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7636000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb762f000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb7622000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7607000)
libdl.so.2 => /lib/libdl.so.2 (0xb7602000)
libc.so.6 => /lib/libc.so.6 (0xb7496000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7476000)
librt.so.1 => /lib/librt.so.1 (0xb746c000)
/lib/ld-linux.so.2 (0xb781d000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb7468000)