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