abs, subversion, and kwallet to store svn passwords encrypted
A long time ago, I wrote down how to make a gnuplot ubuntu package with gnu readline support on ubuntu. I often used this as a reference when I had to build deb-packages from source packages and forgot how it is done.
Today I came by a similar problem in Arch Linux, which ships with subversion 1.6 at the moment. Subversion finally got support for storing the password in an encrypted form, or rather support for using kwallet or GNOME keyring to store the passwords (very unixy, although I’d prefer a more suckless alternative for storing passwords – preferably an open standard that a suckless keyring could implement).
For historic reasons I use some KDE apps from time to time (mainly konqueror when I am lazy and need a swiss army tool). So I decided to try the kwallet support as it was already installed.
The problem is that subversion is compiled without kwallet support on Arch. So I used the great abs – Arch Linux Build System to make a package. That is much easier than it was on ubuntu. First, install an configure abs:
- install abs
$ sudo pacman -S abs
- configure it by editing
/etc/abs.conf, I just changed the last line so that it looked like this:REPOS=(core extra community !testing)
- update the abs tree
$ sudo abs
These steps have to be done only once, obviously.
Then, configure and build the subversion package:
- copy the subversion slim ABS from the abs tree to a build directory in
~$ mkdir -p ~/src/abs; cp -r /var/abs/extra/subversion ~/src/abs
- edit the
PKGBUILD, just add--with-kwalletto the./configurestep./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \ --with-zlib=/usr --with-neon=/usr --with-apxs \ --with-sqlite=/usr --with-kwallet \ --enable-javahl --with-jdk=/usr/lib/jvm/java-1.6.0-openjdk
- build the package
$ makepkg -sthe
-sFlag tells makepkg to automatically fetch all dependencies and build-dependencies via pacman, so you might have to type in your password if you try that. - install the package
$ sudo pacman -U subversion-1.6.3-1-i686.pkg.tar.gz
Done. Annoyingly, I had to install Kwalletmanager to configure Kwallet to stay open when svn exits (so I don’t have to re-type the kwallet password in subsequent svn runs), which is not in a package of its own, but in kdeutils – another 250 MB largely wasted. But storage and bandwidth is cheap nowadays, so I don’t really care.
No comments yet.