Bug#596898: libgl1-nvidia-alternatives: Updating almost any package breaks dri

Russ Allbery rra at debian.org
Tue Sep 21 21:00:01 UTC 2010


Ingo Kasten <ingo.kasten at nwn.de> writes:

> after updating:
> ingo at ik:~$  ls -la /usr/lib/libGL.* /etc/alternatives/libGL.*
> lrwxrwxrwx 1 root root     35  8. Sep 17:29 /etc/alternatives/libGL.so ->
> /usr/lib/nvidia/diversions/libGL.so
> lrwxrwxrwx 1 root root     26 20. Sep 07:08 /etc/alternatives/libGL.so.1 ->
> /usr/lib/nvidia/libGL.so.1
> lrwxrwxrwx 1 root root     26  8. Sep 17:29 /usr/lib/libGL.so ->
> /etc/alternatives/libGL.so
> lrwxrwxrwx 1 root root     12 21. Sep 14:30 /usr/lib/libGL.so.1 -> libGL.so.1.3
> -rw-r--r-- 1 root root 425832 23. Feb 2007  /usr/lib/libGL.so.1.3

Oh!  Now it all makes sense.  I didn't even think of that.

> Now it seems to me that I am the one who has to be blamed, too. As far
> as I understand, my system seems to be messed up. I could not find a
> package to where libGL.so.1.3 belongs . Google says , it could be an old
> matrox driver. I never had a matrox card. Until now I have no idea how
> to remove (just delete it?) it and why the script gets linked to it.

> And on the other hand the question remains: How can updating nearly any
> package break the rules of libgl1-nvidia-alternatives? Even if there
> wasn't a libGL.so.1.3, why should updating switch anything? (But maybe I
> am just too dumb to understand... )

Because any upgrade to any library runs ldconfig.

ldconfig's responsibility is to update the SONAME links, so it searches
through /usr/lib to find every library, looks at its SONAME, and creates a
link to that library.  Because of the new way that the NVIDIA libraries
are handled, we no longer install a library directly in /usr/lib, so
normally ldconfig wouldn't do anything about the links we've created.  But
because you have another libGL installed directly in /usr/lib, ldconfig
finds it, sees that the symlink named after its SONAME doesn't point to
it, and changes the symlink "helpfully" for you.

So indeed the root of the problem was the stray /usr/lib/libGL.so.1.3
file, and any update of any package containing a library in /usr/lib and
hence triggering ldconfig would keep repointing the libGL.so.1 symlink at
that library.

Previously, we installed the NVIDIA library directly in /usr/lib, so
ldconfig would find it instead and update the symlink to point to it.

-- 
Russ Allbery (rra at debian.org)               <http://www.eyrie.org/~eagle/>





More information about the pkg-nvidia-devel mailing list