DEBIAN Compiling VDR Source Packages

From VDR Wiki
Revision as of 16:30, 20 July 2006 by Rwall (Talk | contribs)

Jump to: navigation, search

Instead of simply installing the standard binary packages you can instead compile your own packages using Debian packaging tools and sources from the Debian VDR and DVB Packaging Project. This way you get a greater selection and more up to date versions of the VDR packages, plus easy package installation, setup, and if necessary removal.

Info
Info

If you have a budget DVB card and need to use a software decoder plugin such as Xineliboutput-plugin or a seperate hardware decoding device, such as a DXR3 and the Dxr3-plugin; this section may be particularly useful to you.

Both plugins are waiting to be accepted into the Debian repository. In the meantime, you can build the packages yourself using the technique described below. Of course, bear in mind that eventually these plugins will be approved and you will then be able to install them normally using apt.


Warning
Warning

I have only tested this on Debian Unstable and Ubuntu Dapper. It may not work for older releases.

Build VDR and Plugins from Debian Maintainers' Latest Source Packages

First read [1] and then follow the instructions below.

Build vdr and vdr-dev

  • Install svn-buildpackage and its dependencies.
richard@vito:~$ sudo aptitude install svn-buildpackage
Password:
Reading package lists... Done
...etc...
  • Tell svn-buildpackage where to put compiled packages and where to find source tarballs.
richard@vito:~$ echo "svn-override=buildArea=${HOME}/src/debian-vdr/build-area,origDir=${HOME}/src/debian-vdr/tarballs" > .svn-buildpackage.conf
  • Setup a folder to do the package building in.
richard@vito:~$ mkdir -p src/debian-vdr
richard@vito:~$ cd src/debian-vdr/
richard@vito:~/src/debian-vdr$
  • Check out the tarballs. There are alot of them and some are quite large, so this may take a long time.
richard@vito:~/src/debian-vdr$  svn co svn://svn.debian.org/svn/pkg-vdr-dvb/tarballs
A    tarballs/vdr-plugin-nordlichtsepg_0.8a.orig.tar.gz
A    tarballs/vdr-plugin-osdtest256_0.1.0.orig.tar.gz
A    tarballs/vdr-plugin-freecell_0.0.2.orig.tar.gz
A    tarballs/vdr-plugin-xine_0.7.9.orig.tar.gz
...etc...
  • Check out the debian build scripts.
richard@vito:~/src/debian-vdr$ svn co svn://svn.debian.org/svn/pkg-vdr-dvb/vdr/vdr/trunk vdr/vdr
A    vdr/vdr/debian
A    vdr/vdr/debian/control
A    vdr/vdr/debian/config-loader.sh
...etc...
  • Start compiling the package
richard@vito:~/src/debian-vdr$ cd vdr/vdr/
richard@vito:~/src/debian-vdr/vdr/vdr$ svn-buildpackage -rfakeroot -uc -us
Imported config directives:
        --svn-override=buildArea=/home/richard/src/debian-vdr/build-area,origDir=/home/richard/src/debian-vdr/tarballs
        trunkDir: /home/richard/src/debian-vdr/vdr/vdr
        trunkUrl: svn://svn.debian.org/svn/pkg-vdr-dvb/vdr/vdr/trunk
dpkg-checkbuilddeps
dpkg-checkbuilddeps: Unmet build dependencies: libcap-dev
Insufficient Build-Deps, stop!

You will very likely see something like this telling you that you need to install dependencies. So do that and retry.

richard@vito:~/src/debian-vdr/vdr/vdr$ sudo aptitude install libcap-dev
Password:
...etc...
  • If all went well, you should see...
...etc..
build command was successful; binaries are in /home/richard/src/debian-vdr/build-area/. The changes file is:
 /home/richard/src/debian-vdr/build-area/vdr_1.4.1-1_i386.changes
Binary packages:
 /home/richard/src/debian-vdr/build-area/vdr-dev_1.4.1-1_all.deb /home/richard/src/debian-vdr/build-area/vdr_1.4.1-1_i386.deb /home/richard/src/debian-vdr/build-area/vdr-plugin-sky_1.4.1-1_i386.deb /home/richard/src/debian-vdr/build-area/vdr-plugin-examples_1.4.1-1_i386.deb
rm -rf /home/richard/src/debian-vdr/build-area/vdr-1.4.1
richard@vito:~/src/debian-vdr/vdr/vdr$
  • Finally install the packages.
richard@vito:~/src/debian-vdr/vdr/vdr$ cd ../../build-area/
richard@vito:~/src/debian-vdr/build-area$ ls
vdr_1.4.1-1.diff.gz       vdr_1.4.1.orig.tar.gz
vdr_1.4.1-1.dsc           vdr-dev_1.4.1-1_all.deb
vdr_1.4.1-1_i386.changes  vdr-plugin-examples_1.4.1-1_i386.deb
vdr_1.4.1-1_i386.deb      vdr-plugin-sky_1.4.1-1_i386.deb
richard@vito:~/src/debian-vdr/build-area$ sudo dpkg -i vdr_1.4.1-1_i386.deb vdr-dev_1.4.1-1_all.deb

Build VDR Plugins

If you have chosen to build the vdr package from source (as described above) you may now want to build some of the plugin packages in the same way. You will already have checked out all the original tarballs, so all that remains is to checkout the debian build scripts for each plugin that you are interested, compile with svn-buildpackage and install with dpkg.

You can see which plugins are available for compiling by listing the tarball folder, or by browsing the websvn interface.

Having installed the plugin package you can configure it according to the generic information available in the README files in /usr/share/doc/vdr-plugin-* or elsewhere on this wiki.

I will give details of compiling the Xineliboutput plugin because it is one that I have some experience with and one that anyone using a budget DVB card should try. Other options for budget card users are:

  • vdr-plugin-dxr3: See Dxr3-plugin (If you have a DXR3 hardware MPEG decoder card)
  • vdr-plugin-softdevice: See Softdevice-plugin
  • vdr-plugin-streamdev: See Streamdev-plugin
  • vdr-plugin-xine: See Xine-plugin (note this different to the xineliboutput plugin below, although similar idea)

Build and Install Xineliboutput Plugin

The Xineliboutput plugin allows you to render both DVB MPEG stream and the VDR OSD using libxine and processing power of your CPU. If you have a budget DVB card and your computer is powerful enough Xinelibout may be ideal for you. Additionally, it can stream the video and OSD across a LAN which allows you to setup a headless VDR server (using modest hardware) while the picture is displayed on and control is handled by one or more client machines elsewhere on the LAN.

The process is the same as described above, so briefly:

richard@vito:~/src/debian-vdr$ svn co svn://svn.debian.org/svn/pkg-vdr-dvb/vdr/vdr-plugin-xineliboutput/trunk vdr/vdr-plugin-xineliboutput
richard@vito:~/src/debian-vdr$ cd vdr/vdr-plugin-xineliboutput/
richard@vito:~/src/debian-vdr/vdr/vdr-plugin-xineliboutput$ svn-buildpackage -rfakeroot -uc -us
richard@vito:~/src/debian-vdr/vdr/vdr-plugin-xineliboutput$ cd ../../build-area/
richard@vito:~/src/debian-vdr/build-area$ ls *.deb
libxine-xvdr_0.99rc4-1_i386.deb
vdr_1.4.1-1_i386.deb
vdr-dev_1.4.1-1_all.deb
vdr-plugin-examples_1.4.1-1_i386.deb
vdr-plugin-sky_1.4.1-1_i386.deb
vdr-plugin-xineliboutput_0.99rc4-1_i386.deb
vdr-plugin-xineliboutput-fb_0.99rc4-1_i386.deb
vdr-plugin-xineliboutput-x_0.99rc4-1_i386.deb
xineliboutput-remote-fb_0.99rc4-1_i386.deb
xineliboutput-remote-x_0.99rc4-1_i386.deb
richard@vito:~/src/debian-vdr/build-area$ sudo dpkg -i *xine*.deb

This will install the vdr plugin plus the lightweight client apps for X11 and fb, plus a xine plugin which allows you to connect to the VDR stream from standard xine-ui.

Configure Xineliboutput Plugin and Player

If Xinelibout installed without problems, you now have to configure it.

  • First read the README files.
richard@vito:~$ less /usr/share/doc/vdr-plugin-xineliboutput/README.gz

All the information you need to configure the plugin is in that README and in the configuration file its self. Debian VDR Plugin configurations live in /etc/vdr/plugins. In this case:

richard@vito:~$ sudo nano -w /etc/vdr/plugins/plugin.xineliboutput.conf

For general information on installing and configuring this plugin see Xineliboutput-plugin.

Rebuild Standard Debian Source Packages

Sometimes you might simply need to change one of the configuration options that was used when the default package was built. An example case is described below:

Compile the Xine-ui Source Package to Enable VDR Keys

Unfortunately the stock Ubuntu Dapper xine-ui is not compiled with the necessary --enable-vdr-keys flag which enables full control of VDR. But it is not difficult to recompile xine-ui from the source packages. First glance at this guide to recompiling Debian packages then follow these steps:

  • Install all build dependencies
richard@lazar:~/src/debian-xine/xine-ui-0.99.4$ sudo apt-get build-dep xine-ui
  • Download the xine-ui source package
richard@lazar:~/src/debian-xine/xine-ui-0.99.4$ apt-get source xine-ui
  • Update the debian/rules file
richard@lazar:~/src/debian-xine/xine-ui-0.99.4$ nano -w debian/rules
configure: configure-stamp
configure-stamp:
        dh_testdir
        ./configure --prefix=/usr --mandir=\$${prefix}/share/man \
                        --enable-vdr-keys \
...
  • Update the changelog file
richard@lazar:~/src/debian-xine/xine-ui-0.99.4$ dch --nmu
xine-ui (0.99.4-0ubuntu6.1) dapper; urgency=low

  * Non-maintainer upload.
  * Added --enable-vdr-keys
...
  • Build the package.
richard@lazar:~/src/debian-xine/xine-ui-0.99.4$ debuild -us -uc
  • And install
richard@lazar:~/src/debian-xine/xine-ui-0.99.4$ sudo dpkg -i ../xine-ui_0.99.4-0ubuntu6.1_i386.deb