Mod_Virgule Update

I’ve posted another release of my mod_virgule fork this week. Grab the source or take a look at the changelog. This one includes the new and improved configuration handling code. Instead of loading and parsing the entire website configuration on each and every hit, it’s now loaded once per Apache process and stored in thread-private memory that persists across requests. Much more efficient. I also did some more general code cleanup and removed more of the hard coded stuff that makes it hard to use mod_virgule without editing the source code. There are still one or two hard coded things that I need to make configurable. Maybe in the next release. It’s getting close to a completely configurable system that could be compiled, installed, and configured for any site. Anyway, the new code has been running on robots.net for a couple of weeks now and appears stable.

Mod_Virgule Update

I’ve been working on mod_virgule code again. I finally addressed one of the long-standing mod_virgule ToDo items. One of the many inefficiencies of mod_virgule was that it had to load and parse the site configuration XML file on each and every hit. Now that we’re compiling against Apache 2, we can use the newer APR memory management code. So I’ve modified the code to use the thread-private memory pool for configuration storage. Now each Apache process loads config.xml one time at start up. I still stat the config file on each hit to see if a reload is needed. The new code is running live on robots.net and I’ll release a new rev of the source soon if it all holds up okay for the next few days.

I posted something about this on the mod_virgule development mailing list but I think the list is dead. I haven’t received anything from the list since last December. The list webpage seems to be gone as well. Is anyone out there still interested in mod_virgule development? Let me know and I’ll start a new mailing list if there’s any interest.

Porting mod_virgule to Apace 2.x – part II

After a little more hacking on Monday, I completed the port of mod_virgule to the Apache 2 API. It’s now running natively using the 2.x APR functions directly – no need for the 1.3 compatibility headers at all. I’m going to bang on it a few more days and then shift robots.net over to it. I’ll post the source later this week as well.

I’m doing the work on a new CentOS Linux 4.0 box that I set up to try out CentOS. Most of our boxes still run Red Hat 9 and since Red Hat’s demise I’ve been casting around for a suitable replacement. CentOS seems ideal. It’s basically a community supported, free (as in speech and as in beer) clone of Red Hat Enterprise Linux. So everything is exactly where it should be and works like you’d expect it to.

In other news I just got my hands on one of the New Micros TinyARM 2131 boards. It’s a tiny little ARM microcontroller (1″ x 1.3″) with 32K Flash and 8K RAM. Looks like another gcc cross compiler adventure in the making.

Porting mod_virgule to Apace 2.x

I got mod_virgule working on Apache 2.x this week. I started with the patch for the official codebase that James Henstridge did back in early 2004. While the official mod_virgule hasn’t changed much in the last couple of years, mine has continued to diverge due to patches for libxml2 and other requested features. So it took a little tweaking to get the old Apache 2 patch to work but it still saved a lot of time. I’m not planning on keeping Apache 1.3 compatibility, so I dropped some changes from the original patch related to 1.3 support.

I’ve still got a ways to go before it’s ready for release. At present it relies too heavily on the APR compatibility headers. Once I get things cleaned up, I’ll move robots.net to an Apache 2 server with the new code and give it some good testing. A release should follow shortly after that.

It’s nice to play with some C code again after all the website related Perl coding I do at NCC.

Advogato Weirdness

I’ve noticed that Advogato has been suffering from the same mysterious, random file loss problem that hit robots.net a while back. As best I can tell this is due to a race condition in the “out of disk space” patch. My problems ended once I reverted the patch in my mod_virgule codebase. On the upside, though, maybe this will prompt a line or two of new code for the official mod_virgule in 2005.