Debian VDR and DVB Packaging Project

How-to build our packages

First you need to install subversion and svn-buildpackage.

ssh

Now let's configure ssh to allways use the right username when logging into svn.debian.org (Note: You only need this step if have commit access to svn.debian.org in the pkg-vdr-dvb project, if you just have read-only access, you can skip this step.)

You should put the following into your ~/.ssh/config:

Host svn.debian.org
Compression=yes
User=<your_Alioth_username>
IdentityFile=/home/<your_local_username>/.ssh/<name_of_you_sshkey>

(Of course you can skip the IdentityFile line and use password authentication, but believe me, it is much more comfortable this way.) ;-)

You should now add the public key to the keylist in the "My account"-section on alioth to be able to login on svn.debian.org with this key.

Another note: I can only recommend that you use a ssh-key with passphrase together with the ssh-agent (ssh-add), but it is up to you to decide this.

Directory layout

The recommended directory layout for you working copies looks like this

basedir/build-area/
basedir/dvb/
basedir/dvb/linuxtv-dvb
basedir/dvb/linuxtv-dvb-apps
basedir/general/
basedir/tarballs/
basedir/vdr/
basedir/vdr/vdr/
basedir/vdr/vdr-plugin-mp3/

Please note that the package directories only contain the debian subdirectory, the upstream sources will be merged with the debian directory automatically by svn-buildpackage at build-time, the upstream tarballs are located in the tarballs directory.

Every package directory in the repository contains 3 subdirectories, trunk, branches and tags. Normal development will be done in the trunk directory, branches should contain branches of the package (for example, it is planned to add a sarge branch for packages in sarge soon), the tags directory contains copies of all uploaded version of the package (you should not edit anything inside the tags directory: it should be used to get a specific version of a package from the repository).

checking out and building

The next step is to checkout the necessary files from the subversion repository (Note: It is recommended that you check out only the trunk directories of the packages, because checking out every module with the trunk, branches and tags directories would consume a lot of space on your disk.)

OK, let's check out and build the vdr package as an example:

cd basedir
svn co svn+ssh://svn.debian.org/svn/pkg-vdr-dvb/tarballs
svn co svn+ssh://svn.debian.org/svn/pkg-vdr-dvb/vdr/vdr/trunk vdr/vdr
cd vdr/vdr
svn-buildpackage -rfakeroot -uc -us

If you only have read-only access to svn.debian.org, you just have to use svn:// instead of svn+ssh:// when checking out the files.

My ~/.svn-buildpackage.conf contains just one line, similar to this one:

svn-override=buildArea=/basedir/build-area,origDir=/basedir/tarballs

This means that svn-buildpackage allways will build and place the resulting packages in /basedir/build-area/ and that it will get the upstream tarballs from /basedir/tarballs/.

Additional documentation on svn-buildpackage and the other related tools can be found under /usr/share/doc/svn-buildpackage/.

Links

  1. Our project page
  2. Our subversion repository
  3. Developer page for the Debian VDR Team
  4. Build status of our packages
  5. Subversion book