Bug#702782: broken glx alternative

Gaudenz Steinlin gaudenz at debian.org
Mon Mar 11 11:07:07 UTC 2013


Package: nvidia-graphics-drivers-legacy-173xx
Severity: important

[ Reporting agains nvidia-graphics-drivers-legacy-173xx because this is the
package that's broken in the end. But arguably this is either a bug in any
of the alternative packages. Might even be considered as a dpkg bug. Please 
reassign if you think that another package is more appropriate. ]

If you first installs the current nvidia package, then the legacy-173xx
package and then set the nvidia alternative to the legacy package you
end up with a broken glx alternative:

# apt-get install --no-install-recommends xserver-xorg-video-nvidia
# apt-get install --no-install-recommends xserver-xorg-video-nvidia-legacy-173xx
# update-alternatives --config nvidia -> selecting legacy-173xx

# ldd /usr/lib/nvidia/nvidia/libglx.so
	linux-gate.so.1 =>  (0xf7714000)
	libGLcore.so.1 => not found
	libnvidia-tls.so.1 => not found
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf72b1000)
	/lib/ld-linux.so.2 (0xf7715000)
# ls -l /usr/lib/i386-linux-gnu/libGLcore.so.1
ls: cannot access /usr/lib/i386-linux-gnu/libGLcore.so.1: No such file or directory
# ls -l /usr/lib/i386-linux-gnu/nvidia/libGLcore.so.1
lrwxrwxrwx 1 root root 55 Mar 11 10:38 /usr/lib/i386-linux-gnu/nvidia/libGLcore.so.1 -> /etc/alternatives/nvidia--libGLcore.so.1-i386-linux-gnu
# dpkg-reconfigure glx-alternative-nvidia
update-alternatives: warning: forcing reinstallation of alternative /usr/lib/nvidia because link group glx is broken
# ls -l /usr/lib/i386-linux-gnu/libGLcore.so.1
lrwxrwxrwx 1 root root 52 Mar 11 10:52 /usr/lib/i386-linux-gnu/libGLcore.so.1 -> /etc/alternatives/glx--libGLcore.so.1-i386-linux-gnu

The root of the problem is that the current driver does not have 
libGLcore.so.1 so this slave alternative link is not installed when 
glx-alternative-nvidia is first configured. Reconfiguring the 
glx-alternative-nvidia package while the legacy alternative is selected
fixes this.

The issue also appears with the following sequence (in addition to the
above commands):
# apt-get install --no-install-recommends libgl1-mesa-glx
# update-alternatives --config nvidia -> select current
# update-alternatives --config glx -> select mesa-diverted
# update-alternatives --config glx -> select nvidia
# update-alternatives --config nvidia -> select legacy-173xx

And now you are in the broken state again.

The root of the problem is that update-alternatives does not create slave
symlinks that would be broken. So the symlink to libGLcore.so.1 in the glx
alternative is not created if the nvidia alternative is set to current, 
because that library does not exist in that package.

The only solution I currently is to drop the nvidia alternative and to show
all the nvidia driver version as individual options in the glx alternative.
This avoids the "double" alternative redirection which leads to this problem.

Gaudenz

-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (800, 'testing'), (700, 'unstable'), (50, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.8-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_CH.UTF-8, LC_CTYPE=de_CH.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash



More information about the pkg-nvidia-devel mailing list