Among many other things, my day-job involves working on a web-based system, written in Perl, for administrating our MasterKey metasearching system. We call the admin system MKAdmin. It was developed on Debian GNU/Linux, since that’s our usual production platform, but I also work on it from my Mac laptop.
Excuse me if I rant for a moment.
MKAdmin, until recently, used the NDBM_File module to implement a simple persistent session store — just an on-disk hashtable that maps cookie values to session structures. NDBM_File is part of the core Perl distribution.
But when one of our partners wanted to run it on Fedora Linux, it became apparent that in their infinite wisdom the Fedora packagers have removed the NDBM_File module from their Perl package, so MKAdmin wouldn’t run. Understand: it isn’t that they didn’t provide an RPM package for the NDBM_File module, it’s that they removed that module from the Perl package, even though it’s part of the Perl core distribution.
So I changed MKAdmin to use the functionally equivalent GDBM_File module, which is also part of the core Perl distribution but hasn’t been sabotaged by the Fedora people. And so all was well.
Except that now all the MKAdmin applications I have running on my Mac laptop no longer work.
It turns out that in their infinite wisdom the MacPorts packagers have removed the GDBM_File module from their Perl package, so MKAdmin won’t run. Understand: it isn’t that they didn’t provide a port package for the GDBM_File module, it’s that they removed that module from the Perl package, even though it’s part of the Perl core distribution.
Holy crap, people! Can you all please just stop pooping all over the Perl distribution? Would you please refrain from doing additional work in order to remove functionality? Would you please just LEAVE WELL ENOUGH ALONE?!
So now I am going to modify MKAdmin again, so that instead it uses the (also functionally equivalent) SDBM_File module — which, I’ve checked, does exist on Debian, Red Hat and MacPorts.
But, really, folks. It’s so avoidable.
Just stop it.