broken alternatives broke vdpau in mplayer

Bug #510390 reported by Fabien Tassin
42
This bug affects 9 people
Affects Status Importance Assigned to Milestone
NVIDIA Drivers Ubuntu
Invalid
Undecided
Unassigned
nvidia-graphics-drivers (Ubuntu)
Fix Released
Medium
Alberto Milone

Bug Description

mplayer is no longer able to use vdpau

VDPAU nvidia: Error detected 0 5376
VDPAU nvidia: Backtrace:
--: /usr/lib/libvdpau_nvidia.so [0x3894000] DSO load base
00: /usr/lib/libvdpau_nvidia.so [0x3898169]
01: /usr/lib/libvdpau_nvidia.so [0x3899475] vdp_imp_device_create_x11
[vdpau] Error when calling vdp_device_create_x11: 1

it seems there's a mismatch between the vdpau lib and the driver.
looking at my apt logs, I see this:

Setting up nvidia-current (190.53-0ubuntu6) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/lib/nvidia-current/ld.so.conf because link group gl_conf is broken.
update-alternatives: warning: skip creation of /usr/lib32/vdpau/libvdpau_nvidia.so.1 because associated file /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so.1 (of link group gl_conf) doesn't exist.
Loading new nvidia-current-190.53 DKMS files...
...

and indeed:

$ ls -l /usr/lib/libvdpau_nvidia.* /usr/lib/nvidia-current/vdpau/*
lrwxrwxrwx 1 root root 28 2009-10-27 23:14 /usr/lib/libvdpau_nvidia.so -> libvdpau_nvidia.so.185.18.36
-rw-r--r-- 1 root root 1434200 2009-10-26 10:50 /usr/lib/libvdpau_nvidia.so.185.18.36
lrwxrwxrwx 1 root root 20 2010-01-20 23:46 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so -> libvdpau_nvidia.so.1
lrwxrwxrwx 1 root root 25 2010-01-20 23:46 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.1 -> libvdpau_nvidia.so.190.53
-rw-r--r-- 1 root root 1472992 2010-01-19 16:22 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.190.53

fixing /usr/lib/libvdpau_nvidia.so to point to /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so fixes mplayer.

Jorge Castro (jorge)
Changed in nvidia-drivers-ubuntu:
status: New → Confirmed
Revision history for this message
Alberto Milone (albertomilone) wrote :

Thanks for reporting the problem. Installing a slave link in /usr/lib/ should do it.

Changed in nvidia-drivers-ubuntu:
status: Confirmed → Invalid
Changed in nvidia-graphics-drivers (Ubuntu):
status: New → Triaged
assignee: nobody → Alberto Milone (albertomilone)
importance: Undecided → Medium
Changed in nvidia-graphics-drivers (Ubuntu):
status: Triaged → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package nvidia-graphics-drivers - 190.53-0ubuntu8

---------------
nvidia-graphics-drivers (190.53-0ubuntu8) lucid; urgency=low

  * Install slave link to libvdpau_nvidia.so in /usr/lib
    and /usr/lib32 (on amd64) so as not to break
    compatibility with applications which look for
    libvdpau_nvidia.so (LP: #510390).
 -- Alberto Milone <email address hidden> Thu, 21 Jan 2010 20:56:06 +0100

Changed in nvidia-graphics-drivers (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Fabien Tassin (fta) wrote :

still doesn't work.

The link is back to:

$ ls -l /usr/lib/libvdpau_nvidia.so*
lrwxrwxrwx 1 root root 28 2010-01-22 10:52 /usr/lib/libvdpau_nvidia.so -> libvdpau_nvidia.so.185.18.36
-rw-r--r-- 1 root root 1434200 2009-10-26 10:50 /usr/lib/libvdpau_nvidia.so.185.18.36
$ ls -l /usr/lib*/vdpau/libvdpau_nvidia.so*
lrwxrwxrwx 1 root root 38 2010-01-22 10:51 /usr/lib/vdpau/libvdpau_nvidia.so.1 -> /etc/alternatives/libvdpau_nvidia.so.1
$ ls -l /etc/alternatives/libvdpau_nvidia.so.1
lrwxrwxrwx 1 root root 50 2010-01-22 10:51 /etc/alternatives/libvdpau_nvidia.so.1 -> /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.1

So mplayer needs an alternative on /usr/lib/libvdpau_nvidia.so, not on /usr/lib/vdpau/libvdpau_nvidia.so.1

Revision history for this message
Fabien Tassin (fta) wrote :

oh, here are the new install logs:

Setting up nvidia-current (190.53-0ubuntu8) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/lib/nvidia-current/ld.so.conf because link group gl_conf is broken.
update-alternatives: warning: skip creation of /usr/lib32/vdpau/libvdpau_nvidia.so.1 because associated file /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so.1 (of link group gl_conf) doesn't exist.
update-alternatives: warning: skip creation of /usr/lib32/libvdpau_nvidia.so because associated file /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so (of link group gl_conf) doesn't exist.
Loading new nvidia-current-190.53 DKMS files...
Building only for 2.6.32-11-generic
..

Revision history for this message
Alberto Milone (albertomilone) wrote :

Here's what happens if I switch to the alternative provided by nvidia-current:

:~$ sudo update-alternatives --config gl_conf
[sudo] password for alberto:
There are 4 choices for the alternative gl_conf (providing /etc/ld.so.conf.d/GL.conf).

  Selection Path Priority Status
------------------------------------------------------------
  0 /usr/lib/nvidia-current/ld.so.conf 9700 auto mode
* 1 /usr/lib/mesa/ld.so.conf 500 manual mode
  2 /usr/lib/nvidia-173/ld.so.conf 9620 manual mode
  3 /usr/lib/nvidia-96/ld.so.conf 9600 manual mode
  4 /usr/lib/nvidia-current/ld.so.conf 9700 manual mode

Press enter to keep the current choice[*], or type selection number: 4
update-alternatives: using /usr/lib/nvidia-current/ld.so.conf to provide /etc/ld.so.conf.d/GL.conf (gl_conf) in manual mode.
update-alternatives: warning: skip creation of /usr/lib32/vdpau/libvdpau_nvidia.so.1 because associated file /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so.1 (of link group gl_conf) doesn't exist.
update-alternatives: warning: skip creation of /usr/lib32/libvdpau_nvidia.so because associated file /usr/lib32/nvidia-current/vdpau/libvdpau_nvidia.so (of link group gl_conf) doesn't exist.

:~$ ls -l /usr/lib/* | grep vdpau
lrwxrwxrwx 1 root root 36 Jan 23 13:01 /usr/lib/libvdpau_nvidia.so -> /etc/alternatives/libvdpau_nvidia.so
drwxr-xr-x 2 root root 4096 Jan 21 21:09 vdpau
/usr/lib/vdpau:
lrwxrwxrwx 1 root root 38 Jan 23 13:01 libvdpau_nvidia.so.1 -> /etc/alternatives/libvdpau_nvidia.so.1

:~$ ls -l /etc/alternatives/libvdpau_nvidia.so
lrwxrwxrwx 1 root root 48 Jan 23 13:01 /etc/alternatives/libvdpau_nvidia.so -> /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so

:~$ ls -l /etc/alternatives/libvdpau_nvidia.so.1
lrwxrwxrwx 1 root root 50 Jan 23 13:01 /etc/alternatives/libvdpau_nvidia.so.1 -> /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.1

Or, in other words /usr/lib/libvdpau_nvidia.so points to /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so while /usr/lib/vdpau/libvdpau_nvidia.so.1 points to /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.1

According to Nvidia, this is the correct behaviour (see bug #432172).

Note: "warning: skip creation of /usr/lib32/" etc. is correct, as those slave links will be installed only on 64 bit systems

As regards the output that you posted:
1) How come do you have libvdpau_nvidia.so.185.18.36 if the current driver is 190.53? Did you install any unofficial packages from some PPA or (even worse) did you install the driver from the nvidia installer?

2) This line suggests that what I say in 1) may be correct:
update-alternatives: warning: forcing reinstallation of alternative /usr/lib/nvidia-current/ld.so.conf because link group gl_conf is broken.

Revision history for this message
Fabien Tassin (fta) wrote :

no, but i have nvidia-185-libvdpau installed.

root@ix:/usr/lib # dpkg -S libvdpau_nvidia.so.185.18.36
nvidia-185-libvdpau: /usr/lib/libvdpau_nvidia.so.185.18.36
root@ix:/usr/lib # dpkg -l | grep nvidia
pi nvidia-173-modaliases 173.14.22-0ubuntu6 Modaliases for the NVIDIA binary X.Org drive
ii nvidia-180-kernel-source 185.18.36-0ubuntu9 Transitional package for nvidia-glx-185-kern
ii nvidia-180-modaliases 185.18.36-0ubuntu9 Transitional package for nvidia-185-modalias
ii nvidia-185-kernel-source 190.53-0ubuntu8 Transitional package for nvidia-glx-185-kern
ii nvidia-185-libvdpau 185.18.36-0ubuntu9 Video Decode and Presentation API for Unix
ii nvidia-185-modaliases 190.53-0ubuntu8 Transitional package for nvidia-185-modalias
pi nvidia-96-modaliases 96.43.14-0ubuntu6 Modaliases for the NVIDIA binary X.Org drive
ii nvidia-common 0.2.18 Find obsolete NVIDIA drivers
ii nvidia-current 190.53-0ubuntu8 NVIDIA binary Xorg driver, kernel module and
ii nvidia-current-modaliases 190.53-0ubuntu8 Modaliases for the NVIDIA binary X.Org drive
pc nvidia-glx 1:1.0.9639+2.6.22.4-14.9 NVIDIA binary XFree86 4.x/X.Org driver
ii nvidia-glx-180 185.18.36-0ubuntu9 Transitional package for nvidia-glx-185
ii nvidia-glx-185 190.53-0ubuntu8 Transitional package for nvidia-glx-185
ii nvidia-settings 190.53-0ubuntu1 Tool of configuring the NVIDIA graphics driv

i should probably clean that up

Revision history for this message
Fabien Tassin (fta) wrote :
Download full text (3.3 KiB)

root@ix:/usr/lib # dpkg -l | grep nvidia
ii nvidia-173-modaliases 173.14.22-0ubuntu6 Modaliases for the NVIDIA binary X.Org drive
ii nvidia-96-modaliases 96.43.14-0ubuntu6 Modaliases for the NVIDIA binary X.Org drive
ii nvidia-common 0.2.18 Find obsolete NVIDIA drivers
ii nvidia-current 190.53-0ubuntu8 NVIDIA binary Xorg driver, kernel module and
ii nvidia-current-modaliases 190.53-0ubuntu8 Modaliases for the NVIDIA binary X.Org drive
pc nvidia-glx 1:1.0.9639+2.6.22.4-14.9 NVIDIA binary XFree86 4.x/X.Org driver
ii nvidia-settings 190.53-0ubuntu1 Tool of configuring the NVIDIA graphics driv

mplayer still does work:

[vdpau] Could not open dynamic library libvdpau.so.1

root@ix:/usr/lib # find /usr/lib -name libvdpau.so.1 -ls
root@ix:/usr/lib # find /usr/lib -name \*nvidia\*.so\* -ls
36798466 0 lrwxrwxrwx 1 root root 38 Jan 23 20:36 /usr/lib/vdpau/libvdpau_nvidia.so.1 -> /etc/alternatives/libvdpau_nvidia.so.1
13959205 0 lrwxrwxrwx 1 root root 23 Jan 22 10:48 /usr/lib/nvidia-current/libnvidia-cfg.so.1 -> libnvidia-cfg.so.190.53
13893650 8 -rw-r--r-- 1 root root 4484 Jan 21 21:45 /usr/lib/nvidia-current/libnvidia-tls.so.190.53
34816035 0 lrwxrwxrwx 1 root root 20 Jan 22 10:48 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so -> libvdpau_nvidia.so.1
34816031 0 lrwxrwxrwx 1 root root 25 Jan 22 10:48 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.1 -> libvdpau_nvidia.so.190.53
34816032 1444 -rw-r--r-- 1 root root 1472992 Jan 21 21:45 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.190.53
13893649 116 -rw-r--r-- 1 root root 118168 Jan 21 21:45 /usr/lib/nvidia-current/libnvidia-cfg.so.190.53
7585794 8 -rw-r--r-- 1 root root 4656 Jan 21 21:45 /usr/lib/nvidia-current/tls/libnvidia-tls.so.190.53
7586124 0 lrwxrwxrwx 1 root root 23 Jan 14 01:13 /usr/lib/nvidia-current/tls/libnvidia-tls.so.1 -> libnvidia-tls.so.190.53
13959174 0 lrwxrwxrwx 1 root root 23 Jan 22 10:48 /usr/lib/nvidia-current/libnvidia-tls.so.1 -> libnvidia-tls.so.190.53
8208404 4192 -rw-r--r-- 1 root root 4288040 Jan 21 21:45 /usr/lib/nvidia-current/xorg/nvidia_drv.so
13959203 0 lrwxrwxrwx 1 root root 18 Jan 22 10:48 /usr/lib/nvidia-current/libnvidia-cfg.so -> libnvidia-cfg.so.1
6602854 0 lrwxrwxrwx 1 root root 28 Jan 23 20:36 /usr/lib/xorg/modules/drivers/nvidia_drv.so -> /etc/alternatives/nvidia_drv
16024690 112 -rw-r--r-- 1 root root 108168 Jun 2 2009 /usr/lib/directfb-1.2-0/gfxdrivers/libdirectfb_nvidia.so
6652338 20 -rw-r--r-- 1 root root ...

Read more...

Revision history for this message
Alberto Milone (albertomilone) wrote :

Ok, I guess I'll have to make transitional packages for nvidia-185-libvdpau then.

Revision history for this message
Mario Limonciello (superm1) wrote :

mplayer needs to be fixed to build-dep on libvdpau-dev / dep on libvdpau rather than using the old nvidia libvdpau stuff. It won't work properly with it right now.

Revision history for this message
Blackpaw (blackpaw) wrote :

I'm seeing this bug again in kubuntu 11.04

Revision history for this message
fejes (anthony-fejes) wrote :

Confirm that I'm also seeing this bug in kubuntu 11.04

Revision history for this message
Joshua R. Poulson (jrp) wrote :

I am also seeing this on Natty, perhaps the old nvidia drivers did not uninstall cleanly?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.