debian, apache2.4 and libapache2-svn

I did a stupid thing yesterday: I upgraded the apache of a development server running debian. Doesn’t sound too bad, does it? Did you know that the debian maintainers kinda dropped the libapache2-svn library when switching from apache2.2 to 2.4? No? Me neither :oogle: Why on earth did they do that? Well, asking this kind of question never helps, so I digged into it a little and tried to fix it without asking Google right away :/
So after a little research, I ran into a pretty good description that worked out. This stackoverflow post roughly explains what you have to do:

cd /tmp
mkdir svn_tmp
cd svn_tmp
sudo apt-get install apache2-dev
sudo apt-get build-dep subversion
apt-get source --compile subversion

Stop when it’s checking for gcc etc and edit some files:

Let’s edit some files. First, subversion-1.7.9/debian/control. Make sure that apache2-dev figures in Build-Depends sections (around line 7):

Build-Depends: debhelper, libneon27-gnutls-dev, libserf-dev (>= 1), zlib1g-dev,
               libapr1-dev, libaprutil1-dev, libdb5.1-dev,
               libsasl2-dev, apache2-dev,
               ...

Then, check if theres a section for libapache-2. If it’s there, make sure to remove the apache2.2-common dependency. If not, add the complete section:

Package: libapache2-svn
Section: httpd
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: db5.1-util
Description: Subversion server modules for Apache
 This package provides the mod_dav_svn and mod_authz_svn modules for
 the Apache 2.2 web server.  These modules provide Subversion's WebDAV
 server backend, to serve repositories over the http and https
 protocols.  See the 'subversion' package for more information.

Then, edit subversion-1.7.9/debian/rules and make sure that ENABLE_APACHE is true:

ENABLE_APACHE        := yes

Now, we are ready to start the build process again:

cd /tmp/svn_tmp/subversion-1.7.9 && dpkg-buildpackage -b -uc

This process may take a long time. For me, has taken like 1 hour. Finally, we can install the package.

sudo dpkg -i /tmp/svn_tmp/libapache2-svn_1.7.9-1+nmu3_amd64.deb 
sudo a2enmod dav_svn
sudo a2enmod authz_svn
sudo service apache2 restart

Debian netinst with preseeding

About two weeks ago I “killed” one of our clusters in California by rebooting the main server – which itself is kind of ridiculous :oogle: However, as the cluster was mainly dead and the installed version of CentOS was really messed up (and no big fan of CentOS is working here anymore), we decided to switch those machines to Debian. As I was the one killing it and I’m also the one desperatly needing some of those machines now, I took the burden to set them up again. So I had – actually I’m still having :mrgreen: – a lot of fun with CentOS, Debian, netinst and preseeding during the last days!

For the whole setup I could mainly follow the installation guide on debian.org but some things just didn’t work out as expected. At least locally I now figured them out and the installation is working end-to-end :)
The main issue was to get the preseed.cfg to the client without having to alter the initrd. According to the manual (and tons of blogs), you just have to pass it as a kernel parameter. That’s just half of the truth. What’s missing in there is that you also have to send some more parameters right away so that the installation gets to the point where it loads the preseed.cfg (example). So if you ever have to set up something like that, don’t forget to pass in these parameters in your pxelinux.cfg/default:

append vga=normal initrd=debian-installer/i386/initrd.gz preseed/url=http://path/to/preseed.cfg debian-installer/locale=en_US console-keymaps-at/keymap=us netcfg/get_hostname=debian netcfg/get_domain=unassigned netcfg/choose_interface=eth1 -

(Don’t forget to check the interface in the last parameter. You can also skip it completely if you just have one network interface.)
My whole entry for the default Debian netinst looks like this now:

LABEL lenny
kernel debian-installer/i386/linux
append vga=normal initrd=debian-installer/i386/initrd.gz preseed/url=http://path/to/preseed.cfg debian-installer/locale=en_US console-keymaps-at/keymap=us netcfg/get_hostname=debian netcfg/get_domain=unassigned netcfg/choose_interface=eth1 -

This is enough for us right now because the cluster just has 5 machines so it’s easy to handle and we don’t intend to reinstall it that often. So there is no need for a bigger solution but if you have a big cluster with a lot of machines and you’re changing a lot of things all the time, you might want to take a look at FAI ;)

Facebook Account finally works with Kopete on Debian testing

The package itself is already available for a while on Ubuntu. Now that libqjson finally arrived in Debian testing (Squeeze) you’re also able to connect to a Facebook account. This way you can use the chat with kopete and don’t need to go to the website itself anymore. For me the 0.1.4 version works okay, even though you can not get it via apt and have to install it manually. Also there still seem to be some bugs but asap there’s a version in the Debian repository I guess that’ll get better too ;)