(Getting access to) Source Respository

Repositories

The current repositories of the BirdShack Project are:

Location Description
http://svn.cacert.cl/Software/BirdShack/Business%20Logic/trunk/ repository of the Business Logic subproject.
http://svn.cacert.cl/Software/BirdShack/TailFeather/trunk/ repository of the TailFeather subproject.
http://svn.cacert.cl/Software/BirdShack/www/trunk/ repository of the Web Frontend subproject.
http://svn.cacert.cl/Software/BirdShack/bindings/python/trunk/ repository of the Python Bindings subproject.

Repositories accessed via http://svn.cacert.cl/ are read only, and for writting one has to use https://svn.cacert.cl/ instead. For accessing https://svn.cacert.cl/ it's required to use a client certificate with name issued by cacert.org.

Setting up client SVN to use your CAcert client certificate

The easiest way to set up client usage of SVN is in the personal subversion configuration, located at ~/.subversion/.

Into this directory you need to copy the following files:

Then, edit the file ~/.subversion/servers. At the top of that file you will find a section entitled [groups]. At the end of this section you add the following lines:

[groups]
cacert = *.cacert.cl

[cacert]
ssl-authority-files = /home/myself/.subversion/root.crt;/home/myself/.subversion/class3.crt
ssl-client-cert-file = /home/myself/.subversion/certificate.p12
ssl-client-cert-password = mypassword

In the above example, make these changes:

  1. /home/myself : should be replaced with the value of $HOME as a full directory path (not the tilde ~ neither env. vars are supported). See below for how to find out your home directory pathname.
  2. mypassword : replace this with the cleartext password for your certificate file (the certificate.p12 file above). If this line is omited svn will ask you for the passphrase on every action.

Checking out the software

Now you are done with setup. To get started on software, checkout from SVN by doing this:

$ svn co https://svn.cacert.cl/Software

Figuring out your home directory

To figure out the home directory on most unices, do this in a terminal:

 cd && pwd 

As an example for my account (user named myself) this would look like:

$ cd
$ pwd
/home/myself
$

but another option is to do:

$ echo $HOME
/home/myself

Working around problems in Ubuntu

In Ubuntu there are is a known bug in libneon-gnutls.so.27 library which currently has to be solved by forcing svn to use libneon.so.27 instead.

$ svn co https://svn.cacert.cl/Software/BirdShack
svn: OPTIONS of 'https://svn.cacert.cl/Software/BirdShack': Could not read status line: SSL error: ssl handshake failure (https://svn.cacert.cl)
$ ldd `which /usr/bin/svn` | grep neon
    libsvn_ra_neon-1.so.1 => /usr/lib/libsvn_ra_neon-1.so.1 (0xb7dab000)
    libneon-gnutls.so.27 => /usr/lib/libneon-gnutls.so.27 (0xb7d8a000)
$ cat < $HOME/bin/svn
#!/bin/sh

export LD_PRELOAD="/usr/lib/libneon.so.27" 
exec /usr/bin/svn "\$@" 
EOT
$ chmod +x $HOME/bin/svn
$ svn co https://svn.cacert.cl/Software/BirdShack
Checked out revision N.