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.
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.
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.
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.