Thanks Andreas,
I would add that since I did not want to risk upgrading my nvidia drivers from their current pinned version, there was no problem fixing this issue while staying with glx-diversions_0.2.2: 1. I added a local diversion: local diversion of /usr/lib/i386-linux-gnu/libGL.so.1.2.0 to /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1.2.0 2. in mesa-diverted, I added a hard link from libGL.so.1.2.0 to libGL.so.1.2 3. and also a symlink from libGL.so.1 -> libGL.so.1.2 With those manual changes, glx-diversions_0.2.2 can be reinstalled without errors and hardware acceleration works again. Maybe the change to libgl1-mesa-glx could have been avoided if the postinstall script added more args to the function: validate_diverted_symlink ... `dpkg --listfiles libgl1-mesa-glx | grep '^/usr/lib' | xargs basename -a` so that however libgl1-mesa-glx chose to version its libGL.so, they would still be found by glx-diversions postinstall. thanks, --jack ________________________________ From: Debian Bug Tracking System <ow...@bugs.debian.org> To: js <jsh...@yahoo.com> Sent: Tuesday, September 10, 2013 8:30 AM Subject: Bug#722258 closed by Andreas Beckmann <a...@debian.org> (Re: Bug#722258: glx-diversions fails libGL.so.1 -> /etc/alternatives) This is an automatic notification regarding your Bug report which was filed against the glx-diversions package: #722258: glx-diversions fails libGL.so.1 -> /etc/alternatives It has been closed by Andreas Beckmann <a...@debian.org>. Their explanation is attached below along with your original report. If this explanation is unsatisfactory and you have not received a better one in a separate message then please contact Andreas Beckmann <a...@debian.org> by replying to this email. -- 722258: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=722258 Debian Bug Tracking System Contact ow...@bugs.debian.org with problemsVersion: 0.4.0 On 2013-09-10 13:02, JS wrote: > Vincent, > > You're right, thank you for pointing this out. I've checked that > glx-diversions_0.4.0 does include a libGL.so.1.2.0 > as one of the arguments to validate_diverted_symlink and so will not have > this problem. > > I was not able to use this version of glx-diversions as I've kept my version > of the nvidia drivers pinned to 304.64-4. > > This bug should be closed as a duplicate that has already been fixed in the > latest version. Closing. BTW, libgl1-mesa-glx has a fix pending that adds a Breaks: glx-diversions (<< 0.4) so people won't be able to do this broken partial upgrade any more. Andreas Package: glx-diversions Version: 0.2.2 Severity: normal Dear Maintainer, ==================================================================== I updated libgl1-mesa-glx to version 9.1.6-2 (from 8.0.5-3) and saw that afterwards /usr/lib/i386-linux-gnu/libGL.so.1 -> libGL.so.1.2.0 instead of the /etc/alternatives/glx--... that would lead to the nvidia library. Therefore the hardware acceleration was broken. I tried purging all the nvidia files and reinstalling but the problem persists because the glx-alternatives postinst script does a validate_diverted_symlink() and does a "Restoring diverted libGL.so.1 symlink". After reinstalling glx-diversions (many attempts), this left libGL.so.1 pointing to the library from libgl1-mesa-glx. This happened even after I removed all the nvidia packages, manually removed any remaining diversions for '*glx*' so that only libgl1-mesa-glx was left, with no diversions. I would have thought glx-diversions would have left the diversion in place and tried to leave the symlink pointing to /etc/alternatives. Manually setting this link to point to /etc/alternatives/glx--... does restore hardware acceleration but this seems to break whenever another package is installed, so is not a real workaround. I have the nvidia drivers pinned to 306.64-4 and therefore glx-diversions is pinned to 0.2.2 (I understand this is not the latest version). Here is a typical session from /var/log/apt/term.log showing the problem (see especially lines marked with >>>): Log started: 2013-09-09 09:52:53 Selecting previously unselected package glx-diversions. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 943874 files and directories currently installed.) Unpacking glx-diversions (from .../glx-diversions_0.2.2_i386.deb) ... Selecting previously unselected package glx-alternative-mesa. Unpacking glx-alternative-mesa (from .../glx-alternative-mesa_0.2.2_i386.deb) ... Selecting previously unselected package glx-alternative-nvidia. Unpacking glx-alternative-nvidia (from .../glx-alternative-nvidia_0.2.2_i386.deb) ... Selecting previously unselected package libgl1-nvidia-alternatives. Unpacking libgl1-nvidia-alternatives (from .../libgl1-nvidia-alternatives_304.64-4_i386.deb) ... Selecting previously unselected package libglx-nvidia-alternatives. Unpacking libglx-nvidia-alternatives (from .../libglx-nvidia-alternatives_304.64-4_i386.deb) ... Selecting previously unselected package nvidia-alternative. Unpacking nvidia-alternative (from .../nvidia-alternative_304.64-4_i386.deb) ... Selecting previously unselected package nvidia-support. Unpacking nvidia-support (from .../nvidia-support_20120630+3_i386.deb) ... Selecting previously unselected package libgl1-nvidia-glx:i386. Unpacking libgl1-nvidia-glx:i386 (from .../libgl1-nvidia-glx_304.64-4_i386.deb) ... Selecting previously unselected package libxvmcnvidia1:i386. Unpacking libxvmcnvidia1:i386 (from .../libxvmcnvidia1_304.64-4_i386.deb) ... Selecting previously unselected package xserver-xorg-video-nvidia. Unpacking xserver-xorg-video-nvidia (from .../xserver-xorg-video-nvidia_304.64-4_i386.deb) ... Selecting previously unselected package nvidia-vdpau-driver:i386. Unpacking nvidia-vdpau-driver:i386 (from .../nvidia-vdpau-driver_304.64-4_i386.deb) ... Selecting previously unselected package nvidia-kernel-dkms. Unpacking nvidia-kernel-dkms (from .../nvidia-kernel-dkms_304.64-4_i386.deb) ... Selecting previously unselected package nvidia-glx. Unpacking nvidia-glx (from .../nvidia-glx_304.64-4_i386.deb) ... Selecting previously unselected package nvidia-settings. Unpacking nvidia-settings (from .../nvidia-settings_304.64-1_i386.deb) ... Processing triggers for man-db ... Processing triggers for menu ... Processing triggers for gnome-menus ... Processing triggers for mime-support ... Processing triggers for desktop-file-utils ... Setting up glx-diversions (0.2.2) ... No diversion 'diversion of /usr/lib/debug/usr/lib/xorg/modules/extensions/libglx.so to /usr/lib/mesa-diverted/libglx.so.dbg by glx-diversions', none removed. No diversion 'diversion of /usr/lib/xorg/modules/extensions/libglx.so to /usr/lib/mesa-diverted/libglx.so by glx-diversions', none removed. Adding 'diversion of /usr/lib/libGL.so to /usr/lib/mesa-diverted/libGL.so by glx-diversions' Adding 'diversion of /usr/lib/i386-linux-gnu/libGL.so to /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so by glx-diversions' Adding 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so to /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so by glx-diversions' Adding 'diversion of /usr/lib/libGL.so.1 to /usr/lib/mesa-diverted/libGL.so.1 by glx-diversions' Adding 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1 to /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 by glx-diversions' Adding 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1 by glx-diversions' Adding 'diversion of /usr/lib/libGL.so.1.2 to /usr/lib/mesa-diverted/libGL.so.1.2 by glx-diversions' Adding 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1.2 to /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1.2 by glx-diversions' Adding 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1.2 to /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.2 by glx-diversions' >>> Removing diverted 'libGL.so.1' symlink with unexpected target >>> 'libGL.so.1.2.0'. >>> Restoring diverted 'libGL.so.1' symlink. Setting up glx-alternative-mesa (0.2.2) ... Setting up glx-alternative-nvidia (0.2.2) ... Setting up libgl1-nvidia-alternatives (304.64-4) ... Setting up libglx-nvidia-alternatives (304.64-4) ... Setting up nvidia-alternative (304.64-4) ... Setting up nvidia-support (20120630+3) ... Setting up nvidia-vdpau-driver:i386 (304.64-4) ... Setting up nvidia-kernel-dkms (304.64-4) ... Loading new nvidia-304.64 DKMS files... First Installation: checking all kernels... Building only for 3.2.0-4-686-pae Building initial module for 3.2.0-4-686-pae Done. nvidia: Running module version sanity check. - Original module - No original module exists within this kernel - Installation - Installing to /lib/modules/3.2.0-4-686-pae/updates/dkms/ depmod..... DKMS: install completed. Setting up nvidia-settings (304.64-1) ... Processing triggers for nvidia-alternative ... update-alternatives: using /usr/lib/nvidia/current to provide /usr/lib/nvidia/nvidia (nvidia) in auto mode Processing triggers for glx-alternative-nvidia ... update-alternatives: using /usr/lib/nvidia to provide /usr/lib/glx (glx) in auto mode Setting up libgl1-nvidia-glx:i386 (304.64-4) ... Setting up libxvmcnvidia1:i386 (304.64-4) ... Setting up xserver-xorg-video-nvidia (304.64-4) ... Setting up nvidia-glx (304.64-4) ... No diversion 'diversion of /usr/lib/xorg/modules/extensions/libGLcore.so to /usr/lib/nvidia/libGLcore.so.xlibmesa by nvidia-glx', none removed. No diversion 'diversion of /usr/lib/xorg/modules/extensions/libGLcore.a to /usr/lib/nvidia/libGLcore.a.xlibmesa by nvidia-glx', none removed. No diversion 'diversion of /usr/lib/xorg/modules/extensions/libglx.a to /usr/lib/nvidia/libglx.a.xlibmesa by nvidia-glx', none removed. Processing triggers for libc-bin ... Processing triggers for menu ... Processing triggers for glx-alternative-mesa ... >>> update-alternatives: warning: forcing reinstallation of alternative >>> /usr/lib/nvidia because link group glx is broken Processing triggers for libc-bin ... Log ended: 2013-09-09 09:54:22 Log started: 2013-09-09 09:55:34 Selecting previously unselected package libnvidia-ml1:i386. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 944143 files and directories currently installed.) Unpacking libnvidia-ml1:i386 (from .../libnvidia-ml1_304.64-4_i386.deb) ... Selecting previously unselected package nvidia-xconfig. Unpacking nvidia-xconfig (from .../nvidia-xconfig_304.48-1_i386.deb) ... Selecting previously unselected package nvidia-smi. Unpacking nvidia-smi (from .../nvidia-smi_304.64-4_i386.deb) ... Processing triggers for man-db ... Setting up libnvidia-ml1:i386 (304.64-4) ... Setting up nvidia-xconfig (304.48-1) ... Setting up nvidia-smi (304.64-4) ... Processing triggers for libc-bin ... Log ended: 2013-09-09 09:55:41 Log started: 2013-09-09 09:58:23 (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 944169 files and directories currently installed.) Preparing to replace libgl1-mesa-glx:i386 9.1.6-2 (using .../libgl1-mesa-glx_9.1.6-2_i386.deb) ... Unpacking replacement libgl1-mesa-glx:i386 ... Processing triggers for glx-alternative-mesa ... update-alternatives: warning: forcing reinstallation of alternative /usr/lib/nvidia because link group glx is broken Processing triggers for libc-bin ... Setting up libgl1-mesa-glx:i386 (9.1.6-2) ... Processing triggers for libc-bin ... Log ended: 2013-09-09 09:58:28 ==================================================================== -- Package-specific info: Diversions: diversion of /usr/lib/i386-linux-gnu/libGL.so to /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so by glx-diversions diversion of /usr/lib/i386-linux-gnu/libGL.so.1 to /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 by glx-diversions diversion of /usr/lib/i386-linux-gnu/libGL.so.1.2 to /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1.2 by glx-diversions diversion of /usr/lib/libGL.so to /usr/lib/mesa-diverted/libGL.so by glx-diversions diversion of /usr/lib/libGL.so.1 to /usr/lib/mesa-diverted/libGL.so.1 by glx-diversions diversion of /usr/lib/libGL.so.1.2 to /usr/lib/mesa-diverted/libGL.so.1.2 by glx-diversions diversion of /usr/lib/x86_64-linux-gnu/libGL.so to /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so by glx-diversions diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1 by glx-diversions diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1.2 to /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.2 by glx-diversions /usr/lib/mesa-diverted: total 172 4 drwxr-xr-x 4 root root 4096 Sep 9 09:53 ./ 160 drwxr-xr-x 378 root root 159744 Sep 9 09:54 ../ 4 drwxr-xr-x 2 root root 4096 Sep 9 09:58 i386-linux-gnu/ 4 drwxr-xr-x 2 root root 4096 Jun 30 2012 x86_64-linux-gnu/ /usr/lib/mesa-diverted/i386-linux-gnu/: total 8 4 drwxr-xr-x 2 root root 4096 Sep 9 09:58 ./ 4 drwxr-xr-x 4 root root 4096 Sep 9 09:53 ../ 0 lrwxrwxrwx 1 root root 14 Aug 12 02:50 libGL.so.1 -> libGL.so.1.2.0 /usr/lib/mesa-diverted/x86_64-linux-gnu/: total 8 4 drwxr-xr-x 2 root root 4096 Jun 30 2012 ./ 4 drwxr-xr-x 4 root root 4096 Sep 9 09:53 ../ Alternative 'glx': glx - auto mode link currently points to /usr/lib/nvidia /usr/lib/nvidia - priority 100 slave glx--libGL.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libGL.so.1 slave glx--libXvMCNVIDIA.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA.so.1 slave glx--libXvMCNVIDIA_dynamic.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA_dynamic.so.1 slave glx--libnvidia-cfg.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libnvidia-cfg.so.1 slave glx--linux-libglx.so: /usr/lib/nvidia/libglx.so slave glx--nvidia-bug-report.sh: /usr/lib/nvidia/nvidia-bug-report.sh slave glx--nvidia_drv.so: /usr/lib/nvidia/nvidia_drv.so Current 'best' version is '/usr/lib/nvidia'. 0 lrwxrwxrwx 1 root root 15 Sep 9 09:58 /etc/alternatives/glx -> /usr/lib/nvidia/ 0 lrwxrwxrwx 1 root root 41 Sep 9 09:58 /etc/alternatives/glx--libGL.so.1-i386-linux-gnu -> /usr/lib/i386-linux-gnu/nvidia/libGL.so.1 0 lrwxrwxrwx 1 root root 49 Sep 9 09:58 /etc/alternatives/glx--libXvMCNVIDIA.so.1-i386-linux-gnu -> /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA.so.1 0 lrwxrwxrwx 1 root root 57 Sep 9 09:58 /etc/alternatives/glx--libXvMCNVIDIA_dynamic.so.1-i386-linux-gnu -> /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA_dynamic.so.1 0 lrwxrwxrwx 1 root root 49 Sep 9 09:58 /etc/alternatives/glx--libnvidia-cfg.so.1-i386-linux-gnu -> /usr/lib/i386-linux-gnu/nvidia/libnvidia-cfg.so.1 0 lrwxrwxrwx 1 root root 25 Sep 9 09:58 /etc/alternatives/glx--linux-libglx.so -> /usr/lib/nvidia/libglx.so 0 lrwxrwxrwx 1 root root 36 Sep 9 09:58 /etc/alternatives/glx--nvidia-bug-report.sh -> /usr/lib/nvidia/nvidia-bug-report.sh* 0 lrwxrwxrwx 1 root root 29 Sep 9 09:58 /etc/alternatives/glx--nvidia_drv.so -> /usr/lib/nvidia/nvidia_drv.so File System: 0 lrwxrwxrwx 1 root root 21 Sep 9 09:54 /usr/lib/glx -> /etc/alternatives/glx/ 0 lrwxrwxrwx 1 root root 14 Sep 9 09:58 /usr/lib/i386-linux-gnu/libGL.so.1 -> libGL.so.1.2.0 352 -rw-r--r-- 1 root root 357692 Aug 12 02:50 /usr/lib/i386-linux-gnu/libGL.so.1.2.0 420 -rw-r--r-- 1 root root 429272 Dec 11 2011 /usr/lib/xorg/modules/extensions/libglx.so -- System Information: Debian Release: 7.0 APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 3.2.0-4-686-pae (SMP w/6 CPU cores) Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/dash Versions of packages glx-diversions depends on: ii dpkg 1.16.10 ii nvidia-installer-cleanup 20111111+3 Versions of packages glx-diversions recommends: ii glx-alternative-mesa 0.2.2 glx-diversions suggests no packages. Versions of packages nvidia-glx depends on: ii dpkg 1.16.10 ii libgl1-nvidia-glx 304.64-4 ii libxvmcnvidia1 304.64-4 ii nvidia-alternative 304.64-4 ii nvidia-installer-cleanup 20111111+3 ii nvidia-kernel-dkms [nvidia-kernel-dkms] 304.64-4 ii nvidia-support 20120630+3 ii nvidia-vdpau-driver 304.64-4 ii xserver-xorg-video-nvidia 304.64-4 Versions of packages nvidia-glx recommends: ii nvidia-settings 304.64-1 Versions of packages nvidia-glx suggests: ii nvidia-kernel-dkms [nvidia-kernel-dkms] 304.64-4 Versions of packages glx-diversions is related to: pn glx-alternative-fglrx <none> ii glx-alternative-mesa 0.2.2 ii glx-alternative-nvidia 0.2.2 pn libgl1-dev <none> ii libgl1-mesa-glx [libgl1] 9.1.6-2 ii libgl1-nvidia-glx [libgl1-nvidia-glx-any] 304.64-4 ii nvidia-glx [nvidia-glx-any] 304.64-4 ii xserver-xorg-video-nvidia [xserver-xorg-video-nvidia-any] 304.64-4 -- no debconf information