Last week I tackled another upgrade of Bugzilla on my Debian server. Unfortunately, I found out the hard way that the package that I tried to install (bugzilla3-18.104.22.168-2) was badly broken - I was left with a half-completed installation that simply would not work. I reported the problem but got no response, so I decided to get to the bottom of this and find out what the trouble is. This is not the story of what I found out, but of how I was finally able to fix the problem.
Today I found out that there are simpler things than configuring an Apache virtual host for Bugzilla to live in. With a bit of URL rewriting magic, the basics are moderately difficult to solve. What drove me crazy, though, was that the CGI scripts stubbornly generated links to
/bugzilla3/skin/[...], instead of just
When I recently told someone that I often use awk when I write shell scripts, the comment, together with a raised eyebrow, was "So, anyone's still using this?!" I felt a bit old-fashioned, and when today I caught myself writing a one-liner in awk I decided to give Python a chance (yes, I know, there is also Perl, but I never give Perl another chance :-/).
The problem I wanted to solve was splitting a comma-separated list into a whitespace separated list of words that I could use for iteration in the shell. The awk one-liner I came up with after 1 minute was this:
You can grab the tar ball from the project page.
The main change is that version 0.2 of python-aprmd5 introduces an md5 type for regular MD5 hashing, instead of directly exposing functions in libaprutil. The hashlib module, which is part of the Python Standard Library, uses exactly the same approach (in fact I have copied the idiom from there).
Discovered today: http://triviaware.com/macprocess/all. Very nice if you have a question about one of those mysterious processes that run on your Mac. Such as: Why is "AirPort Base Station Agent.app" running on my desktop machine, even though that machine is not equipped with Wi-Fi/AirPort and, in fact, there is no AirPort base station in the entire household?
The Linux server machine I have been using here at home for the last 6 years or so is equipped with an Asus A7N8X Deluxe motherboard. Although the motherboard was supposed to be "deluxe" with many extra components, using those components frankly has often been a lot of trouble.
Besides the intractable SATA controller, I have been particularly annoyed by the two on-board network controllers manufactured by 3Com and nVidia. A few years after I had bought the Asus motherboard, I managed to get the 3Com controller to work (if I remember correctly by simultaneously doing a BIOS upgrade and compiling a Linux kernel with the proper module), but the nVidia controller remained an elusive beast.
Today has seen my most recent attempt at getting the nVidia NIC to work, and this time I am proud to announce my final triumph! :-)
This is the initial release 0.1 of python-aprmd5, another little project of mine. As usual, the project page has all the details. Because it's an initial release here is the project blurb:
python-aprmd5 is a Python extension written in C that wraps the MD5 routines of the Apache Portable Runtime (APR) Utility Library (libaprutil) and exposes them to the Python interpreter as the module
aprmd5. The main purpose of writing python-aprmd5 in the first place has been to expose the function
apr_md5_encode(), which generates salted crypt-style hashes using a version of the MD5 hash algorithm that was modified especially for the APR project.
If you are on Mac OS X and the gcc linker produces the error "can't map file, errno=22", you may want to examine your command line if there is an extraneous space character after the linker's
gcc -L /foo/bar [...] # error, notice the space after -L gcc -L/foo/bar [...] # correct, no space after -L
What is additionally annoying is that this seems to be a Mac OS X specific problem. Or maybe it's got something to do with the gcc version. Anyway, I had the problem with gcc 4.0.1 that comes with Apple's devtools, but not with gcc 4.3.2 on my Debian Linux box.
I am posting this article in the hope that Google will pick it up and someone will benefit from it in the future. I just wasted half an hour googling but none of the results I found were really helpful, because they were all questions and/or solutions to much more complicated problems.