Home

Compiling VDR xineliboutput frontend on Ubuntu 9.10

Introduction

VDR is very picky about server<->frontend versions, at least when using the xineliboutput frontend described here. The software versions have to match or VDR frontend will act very weirdly or not at all. I wrote this small howto mostly to remind myself what I did to fix my Ubuntu 9.10-based frontend after accidentally upgrading VDR server on my Debian Testing box :).

Basic knowledge of VDR configuration is assumed.

Preparing the client (frontend) computer

First you need to prepare the build environment on the frontend (client) computer. This is done thusly:

$ sudo -s
$ apt-get build-dep vdr-plugin-xineliboutput

This install various development packages plus stuff required to build the VDR frontends. Next download the VDR source package. You can either use the exact same version as on server (see below for the technique) or fetch a matching version from VDR homepage. In any case extract the VDR sources to, say, ~/opt/. We'll be copying the vdr-xineliboutput sources into it's plugin directory later on.

Note: installing vdr sources may not be strictly necessary. However, unless vdr-xineliboutput is located inside VDR's source tree, it's build process complains about missing config.h file. This may or may not be a problem - I didn't verify which is the case.

Fetching sources that match server's xineliboutput version

Next you need to check which version of vdr-xineliboutput the server is using. This package contain both the server-side vdr plugin as well as client-side frontends, vdr-sxfe (for X11) and vdr-fbfe (from framebuffer). On Debian, you can check it's version like this:

$ aptitude show vdr-plugin-xineliboutput

If installed version is a standard release, you can probably download the matching vdr-xineliboutput release from it's homepage. However, if a CVS version is being used, you're better of fetching the exact sources your server is using. If you're using Debian on the server side, do something like this:

$ sudo -s
$ cd
$ aptitude update && aptitude install apt-src
$ apt-src install --location . -i xineliboutput-sxfe

This fetches the sources for the vdr-xineliboutput version the server is using, applies the Debian patches and starts building the package. You can safely interrupt (CTRL-C) the process once compiling of vdr-xineliboutput starts. After this copy over the source directory to the frontend computer, e.g. with

$ scp -r vdr-plugin-xineliboutput-something samuli@amilo:~/opt/vdr-1.6.0/PLUGINS/src/

This assumes you have a VDR source extracted to ~/opt/vdr-1.6.0. Note that the vdr-xineliboutput build process assumes that it's initiated from vdr-something/PLUGINS/src/ - if it's not, it may fail.

Building the frontend

Now that you have sources in ~/opt/vdr-1.6.0/PLUGINS/src/vdr-plugin-xineliboutput-something, you can build the frontend. This process is pretty scarcely documented, but something like this should work:

$ cd ~/opt/vdr-1.6.0/PLUGINS/src/vdr-plugin-xineliboutput-something
$ make frontends
$ sudo make install

Now, one might assume that this is enough. However, it's probably not. Although vdr-xineliboutput probably builds just fine, you may be missing some runtime dependencies such as mpeg demuxer for Xine itself. This is easy to fix by installing the binary dependencies for the package which contains the frontend you want (e.g. vdr-sxfe). On Ubuntu/Debian the frontend package is called xineliboutput-sxfe. After you've installed it's dependencies your custom built vdr frontend should work just fine, e.g. with

$ vdr-sxfe servername

If this does not work, use

$ vdr-sxfe --verbose servername

And try to make sense of the error meesages.


Author:

Samuli Seppanen, University of Turku, Finland
http://users.utu.fi/sjsepp


Registered Linux user #392780