“Everybody lies” or “An update on the updated Greylist Daemon”

Since it's been eighteen months since the previous update [1] of the greylist daemon [2], I best do a release of what I have so far, even if it's not what I wanted.

I know, I know … I said that 1.0.12 would be the last version in the 1x line, but … well … as House [3] says: “Everybody lies.”

I never did get around to fixing the bulk transfer problem, and thus, the protocol hasn't changed, so there's no need for a major bump in the version number. And there have been a few changes in the past eighteen months. I converted the codebase to C99; there are more metrics being logged; there's better self-monitoring (it'll restart in case of a crash) but there are two large changes I need to mention.

The first one: no more recursive make. After reading “Recursive Make Considered Harmful [4],” I decided to give the non-recursive make a try. The greylist daemon [5] isn't all that big, and listing the dependencies in one large Makefile shouldn't be that tedious. And even if so, it's pretty much a one-time thing.

The major benefit of doing a non-recursive make (and making sure all the dependencies are labeled correctly) is the parallel make. Making everything straight through on my development box takes around two seconds. A parallel make, on the other hand, only takes one second.

Okay, that may not sound like much (“Big whoop!”) but I converted one of the code bases I develop at work to a non-recursive make model, and on our slow Solaris development system, the parallel build time (which I couldn't even do before the change) takes 1/10^th the time of a normal build. But the trick, like I said, is to list all the dependencies correctly, or else a parallel make will fail.

The other large change is probably more controversial: I removed a bunch of command-line options from the program, mainly the configuration options. I never used them, and given how little response I get about the project (I know of only [DELETED-one other person-DELETED] two other people using the software) I decided they should go. If anyone complains, I can always add them back. But for now, they're gone.

[1] /boston/2010/05/10.1

[2] http://www.x-grey.com/

[3] http://en.wikipedia.org/wiki/Gregory_House

[4] http://miller.emu.id.au/pmiller/books/rmch/

[5] http://www.x-grey.com/

Gemini Mention this post

Contact the author