Fixing broken Debian packages
In my job we make use of Vidyo for videoconferencing, but today I ran into an issue after re-imaging my Ubuntu 16.04 desktop.
The latest version of vidyodesktop requires libqt4-gui, which doesn’t
exist in Ubuntu anymore. This always seems to be a problem with non-free
software targeting multiple versions of multiple operating systems.
You can work around the issue, doing something like:
sudo dpkg -i --ignore-depends=libqt4-gui VidyoDesktopInstaller-*.deb
but then you get the dreaded unmet dependencies roadblock which prevents you from future package manager updates and operations, which presents itself like this:
You might want to run 'apt-get -f install' to correct these:
vidyodesktop : Depends: libqt4-gui (>= 4.8.1) but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
It’s a known problem, and it’s been well documented.
The suggested solution was to modify the VidyoDesktopInstaller-*.deb package,
but I didn’t want to do that (because when the next version comes out, it will
need to be handraulicly fixed too - and that’s an ongoing burden I’m not
prepared to live with). So I went looking for another solution - and found
Debian’s equivs package (and thanks to tonyb for pointing me in the right
direction!)
So what we want to do is to create a dummy Debian package that will satisfy
the libqt4-gui requirement. So first off, let’s uninstall vidyodesktop,
and install equivs:
sudo apt-get -f install
sudo apt-get install equivs
Next, let’s make a fake package:
mkdir -p ~/src/fake-libqt4-gui
cd ~/src/fake-libqt4-gui
cat << EOF > fake-libqt4-gui
Section: misc
Priority: optional
Standards-Version: 3.9.2
Package: libqt4-gui
Version: 1:100
Maintainer: Michael Davies <michael@the-davies.net>
Architecture: all
Description: fake libqt4-gui to keep vidyodesktop happy
EOF
And now, let’s build and install the dummy package:
equivs-build fake-libqt4-gui
sudo dpkg -i libqt4-gui_100_all.deb
And now vidyodesktop installs cleanly!
sudo dpkg -i VidyoDesktopInstaller-*.deb