* * * * *
“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]
gopher://gopher.conman.org/0Phlog: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/
Email author at
[email protected]