OpenBSD is being a royal paiiiin… (<i>WARNING:</i> whiny rant follows)

Bleh. We had a power outage yesterday, and an old disk I was trying to ‘just keep running’ for swap decided to bite it. It was an old 2G of a dubious nature, but still, it was to be my Darwin/X86 testing HD.

As it was time for a rebuild, I backed up a secondary disk which had nothing but old archives and alot of garbage – then decided to ‘get current’ with OpenBSD, uh, current.

The install of 3.3 went well – look at errata – oops, off by one libc problem. Time to recompile static utils, no problem. New kernel, make world.

Go to install and test a few of my other patches and commits (sSMTP is soooo much easier on my mind than leaving an unnecessary sendmail daemon running about). What? Malformed patch? No it’s not! Wait a second…

%/usr/bin/patch -v Patch version 2.0, patch level 12u8

Awwgh. Nooo! Ok, so I’ll install a newer revision of the GNU patch. No problem. Er, hrrm, it’s not in ports. Odd. I’d figure this would be used by many people. Oooh, look – it doesn’t build. Let’s do some browsing and handpatching of our own. Cool, got ‘gpatch’ all ready to go. sSMTP works. Groovy.

Apache, on the other hand, is painful – Zend is no longer offering their Zend Optimizer for OpenBSD. This is fine, but I want a static binary, so PHPA is right out – APC it is. APC CVS seems to be functional, that is, after going through hoops. Of course, I need autoconf 2.13 or later (it’s in a port, great), automake (ditto), m4 1.4 (same), and libtool 1.4.x – oops, only 1.3.5 in the port, and 1.5 is ‘removed’ from GNU’s site since they’re ‘not sure if it’s legit’. Wonderful.

A bit more patching and we’re off to the races. Oh, crap. SHM under OpenBSD is painful, but at least I can set it to some arbitrarily large number with sysctl. Done. PHP compiles and stops bitching. Now comes the test. ARGH! More third party module brokenness, and finally, finally it works. No, wait, it just crashed. Time to clean up after it. Hrrrm. gdb…

Any excessive optimizations make it unstable – it seems that gcc 2.95.3 (prerelease, of course), included with OpenBSD causes massive issues if you even consider using such commonplace things such as ’-O2 -mcpu=pentiumpro -ffast-math’. Recompile plain and try again… ok, it works.

Semaphores: T ID KEY MODE OWNER GROUP s 917504 0—rwarwarwa root wheel s 524289 0—rwarwarwa root wheel s 262146 0 -rw——— www www s 393219 0—rwarwarwa root wheel s 262148 0 -rw——— www www

Ok, that’s a bit excessive, but I can live with it, for now.

I migrated from bind to djb’s ‘tinydns’ and dnscache utilities awhile back; I don’t really need anything large for my unadvertised /24, and besides, the more tools I know, the better, right? Well, they’ve removed the port for daemontools, et al (roughly two years ago) as “djb’s license is not exactly ‘free’.” This is fine, but it does mean a bit more work for me. All’s setup, created a BSD-friendly heirarchy (/command and /service is ugly, dangit!), and I’m good to go, again.

I am a bit suprised that MySQL built without a hitch! ;)