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

Reply via email to