Bug#722258: glx-diversions fails libGL.so.1 - /etc/alternatives
On Mon, Sep 9, 2013 at 10:54 AM, JS jsh...@yahoo.com wrote: I believe this problem comes about because: libgl1-mesa-glx 8.0.5-3 has the library libGL.so.1.2: = dpkg --contents libgl1-mesa-glx_8.0.5-3_i386.deb drwxr-xr-x root/root 0 2012-12-06 17:23 ./ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/i386-linux-gnu/ -rw-r--r-- root/root 363020 2012-12-06 17:22 ./usr/lib/i386-linux-gnu/libGL.so.1.2 while the newer libgl1-mesa-glx 9.1.6-2 has the library: = dpkg --contents /var/cache/apt/archives/libgl1-mesa-glx_9.1.6-2_i386.deb drwxr-xr-x root/root 0 2013-08-12 02:50 ./ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/lib/ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/lib/i386-linux-gnu/ -rw-r--r-- root/root 357692 2013-08-12 02:50 ./usr/lib/i386-linux-gnu/libGL.so.1.2.0 drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/share/ glx-diversions postinst is checking for a final target of libGL.so.1.2 (not libGL.so.1.2.0) so it always fails when the newer libgl1-mesa-glx is installed: validate_diverted_symlink /usr/lib${triplet}libGL.so.1 /usr/lib/mesa-diverted${triplet}libGL.so.1 mesa/libGL.so.1 libGL.so.1.2 This sounds like bug #712304 to me, which was fixed as of glx-diversions 0.4.0. Regards, Vincent -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#722258: glx-diversions fails libGL.so.1 - /etc/alternatives
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. thanks again, Jack From: Vincent Cheng vincentc1...@gmail.com To: JS jsh...@yahoo.com Cc: 722...@bugs.debian.org Sent: Tuesday, September 10, 2013 4:54 AM Subject: Re: Bug#722258: glx-diversions fails libGL.so.1 - /etc/alternatives On Mon, Sep 9, 2013 at 10:54 AM, JS jsh...@yahoo.com wrote: I believe this problem comes about because: libgl1-mesa-glx 8.0.5-3 has the library libGL.so.1.2: = dpkg --contents libgl1-mesa-glx_8.0.5-3_i386.deb drwxr-xr-x root/root 0 2012-12-06 17:23 ./ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/i386-linux-gnu/ -rw-r--r-- root/root 363020 2012-12-06 17:22 ./usr/lib/i386-linux-gnu/libGL.so.1.2 while the newer libgl1-mesa-glx 9.1.6-2 has the library: = dpkg --contents /var/cache/apt/archives/libgl1-mesa-glx_9.1.6-2_i386.deb drwxr-xr-x root/root 0 2013-08-12 02:50 ./ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/lib/ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/lib/i386-linux-gnu/ -rw-r--r-- root/root 357692 2013-08-12 02:50 ./usr/lib/i386-linux-gnu/libGL.so.1.2.0 drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/share/ glx-diversions postinst is checking for a final target of libGL.so.1.2 (not libGL.so.1.2.0) so it always fails when the newer libgl1-mesa-glx is installed: validate_diverted_symlink /usr/lib${triplet}libGL.so.1 /usr/lib/mesa-diverted${triplet}libGL.so.1 mesa/libGL.so.1 libGL.so.1.2 This sounds like bug #712304 to me, which was fixed as of glx-diversions 0.4.0. Regards, Vincent
Bug#722258: closed by Andreas Beckmann a...@debian.org (Re: Bug#722258: glx-diversions fails libGL.so.1 - /etc/alternatives)
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
Bug#722258: glx-diversions fails libGL.so.1 - /etc/alternatives
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
Bug#722258: glx-diversions fails libGL.so.1 - /etc/alternatives
I believe this problem comes about because: libgl1-mesa-glx 8.0.5-3 has the library libGL.so.1.2: = dpkg --contents libgl1-mesa-glx_8.0.5-3_i386.deb drwxr-xr-x root/root 0 2012-12-06 17:23 ./ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/ drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/i386-linux-gnu/ -rw-r--r-- root/root363020 2012-12-06 17:22 ./usr/lib/i386-linux-gnu/libGL.so.1.2 while the newer libgl1-mesa-glx 9.1.6-2 has the library: = dpkg --contents /var/cache/apt/archives/libgl1-mesa-glx_9.1.6-2_i386.deb drwxr-xr-x root/root 0 2013-08-12 02:50 ./ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/lib/ drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/lib/i386-linux-gnu/ -rw-r--r-- root/root357692 2013-08-12 02:50 ./usr/lib/i386-linux-gnu/libGL.so.1.2.0 drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/share/ glx-diversions postinst is checking for a final target of libGL.so.1.2 (not libGL.so.1.2.0) so it always fails when the newer libgl1-mesa-glx is installed: validate_diverted_symlink /usr/lib${triplet}libGL.so.1 /usr/lib/mesa-diverted${triplet}libGL.so.1 mesa/libGL.so.1 libGL.so.1.2 Perhaps the postinst script could check only that the link is owned by the package libgl1-mesa-glx; here is a piece of the postinst script showing the problem: + owner=libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/libGL.so.1 package installing an libGL.so.1 + [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ] + [ -z libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/libGL.so.1 ] + readlink /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 + link=libGL.so.1.2.0 readlink -f of its libGL.so.1 + [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ] + [ libGL.so.1.2.0 = mesa/libGL.so.1 ] + [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ] + [ libGL.so.1.2.0 = libGL.so.1.2 ] + [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ] + [ libGL.so.1.2.0 != libGL.so.1.2 ] + echo Removing diverted 'libGL.so.1' symlink with unexpected target 'libGL.so.1.2.0'. Removing diverted 'libGL.so.1' symlink with unexpected target 'libGL.so.1.2.0'.