Yak shaving

Having a very yak shaving kind of a day. I figured I'd package Conduit, as it looks like it's pretty useful already and only going to get more so. Thought it'd be quite simple - ah, how wrong one can be :)

Firstly, I had to package a couple of Python modules it depends on that weren't already in the distro. That wasn't too hard.

Then it started getting trickier. It's really arch-independent - everything is pure Python. However, the buildsystem installs some files to %(libdir)/conduit , which is /usr/lib/conduit on i586 but /usr/lib64/conduit on x86-64. This is obviously no good for a noarch package, so I had to come up with a patch to fix that.

Once I'd done that, I stuck BuildArch: noarch into the spec, and watched as the build suddenly stopped working entirely with a "Invalid configuration noarch-mandriva-linux-gnu': machinenoarch-mandriva' not recognized"" error. Initial investigation suggested the culprit was a check for AC_CANONICAL_HOST in aclocal.m4 - this prevents 'noarch' build targets from working. So I patched that out of aclocal.m4, tried the build again, and it still failed.

Then I remembered that the fix for the first problem requires a call to autoreconf during the build process, which regenerates aclocal.m4. I then found that the AC_CANONICAL_HOST call doesn't come from any of conduit's aclocal precursor files, so I was a bit stuck. Fortunately, Google came to the rescue:

PLD Linux thread

and hence:


so it turns out that a bad fix for a Solaris problem in glib introduces a regression which prevents me building Conduit with a noarch build target. Fun stuff. I've just added the PLD patch into our glib and submitted the updated build...maybe once that hits the mirrors I'll finally be able to get this package done!


No comments.