The progress of KDE4 on Solaris defined as “keep up-to-date with KDE4 releases” has slipped this past month or more, but progress defined as “make it easier to build and deal with administrative stuff required to actually ship KDE4 with OpenSolaris” has been very good.

The big step there is that we’ve transitioned fully to plain SPEC files (RPM-style) instead of our rather peculiar perl-based build system used previously (not kdesvn-build: that’s a good perl-based build system, though not for packaging). This has meant searching around for the pristine sources and the licensing information for all of the dependencies, as well as massaging them all into a nicer shape than they were. Cleaner patches, less futzing around.

Building the stack back up again has taken a while. For instance, dealing with GStreamer was a complete pain in the butt (ubiquitous? Not even on GNOME-based OpenSolaris: there is a 32-bit build available, but no 64-bit build, and there’s various plugins apparently missing, such as FireWire support). But we’ve gotten there, and it is again possible to install a Qt package in a straightforward manner – a Qt package built with SS12 and against the Apache stdcxx, that is, as opposed to g++ packages. To some extent, it’s a purity thing; code quality checking and official sanction play along as well.

I added Quassel to our software stack also, pulling in the release. It’s a straightforward compile with just one gcc-ism (cxxabi.h) but the functionality on OpenSolaris leaves much to be desired (in the sense of: it doesn’t work at all for IRC, but the UI is sort of ok). This is something I’m happy to leave to someone else to sort out, though, as I remain a happy screen+irssi user.

The whole KDE stack past KDEbase compiles right now, but I’m running into a few runtime snags where applications are pulling in the old C++ STL (libCstd) along with Apache stdcxx, and crashing as a result. Nonetheless I’ll push this into our “stable” repository as the next big step in building the KDE4 specfiles; development will continue in the -dev repository to work out the bugs (and probably catch the update to 4.1.2 as well).