"vdpau-va-driver" has unmet dependencies on Ubuntu 16.04, any official resolution?

Solution 1:

I encountered the same dependency conflict and investigated this a bit using the following commands

  • checking package dependencies
    • debian -> ubuntu -> xbmc (current policy)
    • use apt-cache depends va-driver-all (depends on)
    • use apt-cache rdepends va-driver-all (is dependency of)
  • show package installed
    • use apt-cache show libva1

Note: For the short version scroll to the bottom of this entry. The following passage is created so that it may serve as a reference for how to use apt-cache apt-get to resolve dependency conflicts. This is by no means a complete guide and it was my first investigation of apt conflicts, so if I misused or missed something please leave a comment, I am happy to learn!

INVESTIGATION: What was confusing to me was that in the reference here (for debian) the dependency is either mesa-va-driver or vdpau-va-driver. Since I am using ubuntu and requiring the ubuntu version of this package, I need the repository here (ubuntu). Somehow in the development process to ubuntu the dependency is only on the vdpau-va-driver. I have however already installed the mesa-va-driver, which apparently breaks vdpau-va-driver, if I interpret the subsequent apt-cache depends mesa-va-drivers output correctly.

Edit: Stumbled across a great resource from the archlinux wiki that summarises the video acceleration libraries neatly. see here

~ $ sudo apt-cache depends mesa-va-drivers
mesa-va-drivers
  Depends: libva1
  Depends: libc6
  Depends: libdrm-amdgpu1
  Depends: libdrm-nouveau2
  Depends: libdrm-radeon1
  Depends: libdrm2
  Depends: libelf1
  Depends: libexpat1
  Depends: libgcc1
  Depends: libllvm6.0
  Depends: libsensors4
  Depends: libstdc++6
  Depends: libx11-xcb1
  Depends: libxcb-dri2-0
  Depends: libxcb-dri3-0
  Depends: libxcb-present0
  Depends: libxcb-sync1
  Depends: libxcb-xfixes0
  Depends: libxcb1
  Depends: libxshmfence1
  Depends: zlib1g
  Breaks: vdpau-va-driver
  Replaces: vdpau-va-driver
  Enhances: libva1

The actual linked repository and its dependencies then can be seen using apt-cache policy vdpau-va-driver and is linked to the original ubuntu archive

sudo apt-cache depends vdpau-va-driver
vdpau-va-driver
  Depends: libc6
 |Depends: libgl1-mesa-glx
  Depends: <libgl1>
    libgl1-mesa-glx
  Depends: libvdpau1
  Depends: libx11-6
 |Depends: <libva-driver-abi-0.39>
  Depends: <libva-driver-abi-0.31>
  Enhances: libva1
~ $ sudo apt-cache policy vdpau-va-driver
vdpau-va-driver:
  Installed: (none)
  Candidate: 0.7.4-5
  Version table:
     0.7.4-5 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

Where the installation of vdpau-va-driver with sudo apt-get -o Debug::pkgProblemSolver=yes install vdpau-va-driver

~ $ sudo apt-get -o Debug::pkgProblemSolver=yes install vdpau-va-driver
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 vdpau-va-driver : Depends: libva-driver-abi-0.39 or
                            libva-driver-abi-0.31 but it is not installable
E: Unable to correct problems, you have held broken packages.

fails due to the missing libva-driver-abi-0.39.

Note: Here is libva-driver-abi-0.39 a virtual package of libva1 which I already have installed. The corresponding apt-cache policy libva1 output

~ $ apt-cache policy libva1
libva1:
  Installed: 1.7.3~xenial
  Candidate: 1.7.3~xenial
  Version table:
 *** 1.7.3~xenial 500
        500 http://ppa.launchpad.net/team-xbmc/ppa/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status
     1.7.0-1ubuntu0.1 500
        500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
     1.7.0-1 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

shows that I have installed libva1 for kodi using the manually to my apt source list added repository http://ppa.launchpad.net/team-xbmc/ppa/ubuntu xenial/main. see

So the available version vdpau-va-driver is linked to the archive ubuntu version of libva1, which is 1.7.0-1 while the kodi repository from team-xbmc has already version 1.7.3 from which it seems that the link of the vdpau-va-driver to the ubuntu archive version requires either the virtual package libva-driver-abi-0.31 or libva-driver-abi-0.39 from libva1 but the team-xbmc version seems not to provide it, or atleast my apt package manager can't find it.

In conclusion the policy output shows the following chain

mesa-va-drivers (ubuntu)

libva1 (xbmc) -> va-driver-all (xbmc) -> vdpau-va-driver (ubuntu) -> libva-driver-abi-0.31 or - 0.39 (ubuntu) -> libva1 (ubuntu) -x-> libva1 installed (xbmc)

~ $ apt-cache policy mesa-va-drivers vdpau-va-driver va-driver-all libva1
mesa-va-drivers:
  Installed: 18.0.5-0ubuntu0~16.04.1
  Candidate: 18.0.5-0ubuntu0~16.04.1
  Version table:
 *** 18.0.5-0ubuntu0~16.04.1 500
        500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
        100 /var/lib/dpkg/status
     11.2.0-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
vdpau-va-driver:
  Installed: (none)
  Candidate: 0.7.4-5
  Version table:
     0.7.4-5 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
va-driver-all:
  Installed: (none)
  Candidate: 1.7.3~xenial
  Version table:
     1.7.3~xenial 500
        500 http://ppa.launchpad.net/team-xbmc/ppa/ubuntu xenial/main amd64 Packages
     1.7.0-1ubuntu0.1 500
        500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
     1.7.0-1 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
libva1:
  Installed: 1.7.3~xenial
  Candidate: 1.7.3~xenial
  Version table:
 *** 1.7.3~xenial 500
        500 http://ppa.launchpad.net/team-xbmc/ppa/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status
     1.7.0-1ubuntu0.1 500
        500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
     1.7.0-1 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

I suspect that the xbmc repository http://ppa.launchpad.net/team-xbmc/ppa/ubuntu xenial/main causes some dependency conflicts or is missing the virtual package, but could also be the package manager and some misconfiguration locally.

DETERMINE DEPENDENCIES: However with the following output of apt-cache rdepends va-driver-all the problem causing package can be investigated about what it actually affects on your system

~ $ apt-cache rdepends va-driver-all
va-driver-all
Reverse Depends:
 |libva1
 |libva1
 |libva1
~ $ apt-cache depends libva1
libva1
  Depends: libc6
  Breaks: vlc-nox
 |Recommends: va-driver-all
  Recommends: <va-driver>
    i965-va-driver
    mesa-va-drivers
    vdpau-va-driver

PACKAGE REMOVAL: Here it shows that only libva1 wants this package va-driver-all but only as a recommend, meaning it should not break something or still work without it. Therefore removing the package is done using

sudo apt-get remove va-driver-all

TL/DR: The conclusion is to investigate the dependency and if nothing depends on the problem causing package removing it. See the last two command listings for how to investigate whether to remove it.