This Space for Rent

Ah, maintainability

For the past couple of weeks, I've been trying to build a little Linux patch to have password authentication use database files (a'la FreeBSD and any other version of Un*x that is scalable) instead of the traditional slow to read and update flat file.

Since I was a sinner in a previous life, I'm doing this on R*dh*t Linux, which, since it's a modern Linux, is a complete disaster area once you get under the hood. R*dh*t uses shadow passwords, and it uses gl*bc, AND it uses PAM. So you have to update gl*bc (via /etc/nsswitch.conf) to READ the database files, you might have to update the pam package to have it talk to the databases, and you have to update the pile of fetid dingo's kidneys that the shadow password suite has become now that Julie Haugh isn't maintaining it anymore.

Ahh, shadow-utils, how may I count your charms? Well, that's easy. The shadow password suite has no charms. None. It's got both direct access to the password file (including, of course, ndbm support that does not work) plus support for Linux PAM, which isn't actually used in R*dh*t linux, because it uses a different version of login. And the bastard is has been made less portable by the simple step of converting to the thrice-damned gnu automake and configure packages (some of this can be remedied by the simple expedient of stripping out all references to and simply editing all the's -- modifying the .am files doesn't work, because automake postdates the new model GNU policy of backwards compatability be damned! -- but you're still stuck editing the files and then throwing yourself on the Taliban-style mercy of configure, which throws all ideas of portability right out the window if you're not doing things the exact same way as VMS did it.) And after all this, you end up stuck with the getting close to unmaintainable code that the shadow package is made up of.)

I suppose I should thank my lucky stars that the code isn't written the the thrice-damned vanity language p*th*n. But that's pretty thin gruel to be thankful for.