I hammered my way through to kdebase again under Solaris. Not much had deteriorated over the past few weeks, although I’m concerned by now about the differences between my <cmath> and everyone else’s. I haven’t found any particular documentation about what exactly needs to be in cmath – I don’t trust looking at GCC headers, for one – so when I need to fiddle a bit to get a prototype for floor() I’m not quite sure if it is the Right Thing To Do. A number of my existing patches had become obsolete, which I think is good – it means less to maintain outside of the KDE repository. KDM in particular magically needed a lot less patching (just one bit of lastlog vs. lastlogx, IIRC). Good job all.

Best bit of weirdness was something I consider a compiler bug: action_data.h in khotkeys has an implementation file action_data.cpp which was being included multiple times into the compilation of action_data_base.cpp – a file that’s not even #included from anywhere! It turns out there is a compiler feature that automatically reads in implementation files; this breaks badly when you end up with multiply defined RTTI and vtables for base classes. Ugh. My hack: rename files. No, I’m not proud of that.

KSysGuard now also places me for a conundrum: it does a lot of things with ptrace and assumes that sys/ptrace.h exists. That makes one dialog totally unusable under Solaris because ptrace, insofar as it exists (it does, in a weird place and without any of the PTRACE_* values defined that the API uses), does so only in 32 bit applications. So there it’s either re-write the backend for the process-watching dialog or disable it entirely. Neither is particularly attractive.

I’ve kicked kdetoys and kdeutils, but they both got stranded on weirdness that I didn’t have time to look at.

Next week, the 2nd of april, I’ll be giving a talk at the NLOSUG about KDE4 and the tools we’ve been using. The KDE4 bits that work work really nicely (except ^C in konsole still kills it). It’s pretty much my daily desktop under Solaris now.

The Wayback Machine doesn’t archive everything. Broken links are marked with a 💔.