Friday, January 2, 2009

UnDBX v0.12

After more than 2900 downloads of UnDBX v0.11, the only feedback I got was one 4-star review at download.com and a thank-you email from a fellow who used UnDBX to rescue messages from bad DBX files.

Frankly, this is more than I expected, and it's really cool.

I wasn't going to release another version, because I'm quite happy with it as is. The reviewer I mentioned would've been happier if UnDBX had a Graphical User Interface, but I was never keen on providing one (I have more to say about it below).

The trigger for this release is the fact that v0.11 can't be compiled on Window$ as is. I wrote a very basic Makefile that allowed me to cross-build v0.11 for Window$ on my Debian/GNU Linux box at home, and I released a pre-compiled binary. I figured that anyone who really wants to compile it natively, would be able to do so by patching the Makefile.

But, as a user, I always get pissed off by packages with home grown build systems, that never seem to quite cut it. So, I've autoconfiscated UnDBX, such that you can now extract the source code archive, and, on many platforms, do this:
cd undbx-0.12
./configure
make
make install
and be done with it. On Window$ it means that you need to first install either Cygwin or MinGW (which is also a requirement for building the previous release).

I was a bit surprised at how easy it was to autoconfiscate UnDBX. Granted, UnDBX is almost trivial when compared to other free software projects. Furthermore, it was originally designed to run on both Window$ and Linux, so there was no need to modify it in the process. And yet, autoconf/automake with all that mass of machine generated convoluted shell scripts and makefiles, are quite intimidating beasts to the uninformed.

The source code package includes a lot more files now, but except for configure.ac (16 line of code) and Makefile.am (5 lines), these are all machine generated. Actually, even configure.ac was mostly machine generated and I just had to tweak it a bit. Most of the work went into reading about autoconf/automake.

My only gripe with autoconf/automake is that there doesn't seem to be any kind of support for binary distribution. I know that in the context of GNU it makes perfect sense, but it's a hassle nonetheless. Anyhow, I've added a little script to the source tree that handles this too.

This whole build system stuff is nice, but shouldn't a new release have some new user-visible features?!

Well, I just couldn't quite ignore that GUI issue. So I whipped up a launcher script that you can double-click. You'll be presented twice with a standard folder selection dialog in order to select both the input and output folders, and then undbx.exe will be launched on your behalf inside a console window. Not much, but it's better than nothing, I guess.

So there you have it - UnDBX v0.12

Happy new year!

No comments:

Post a Comment