Fixing old stuff

On FreeBSD, Qt4 is still a thing — for instance, for the KDE4 desktop that is still the latest full-KDE experience you can get from the official packages. And although that software is pretty old, the base system still evolves. FreeBSD 9 has been put to rest, and with it all the GCC-based FreeBSD systems. That frees us from having to deal with GCC and Clang at the same time, and we can generally patch things in just one way (usually towards more-modern C++). But the base system also evolves “out from under” older software. There’s an effort to update the base system compiler (for FreeBSD 12) to Clang 4.0 (sometime soon-ish), and that means that our older C++ code is being exposed to a newer, pickier, compiler.

Seems like I’ve been doing “fix KDE stuff relative to pickier compilers” since, like, forever (on Solaris, and then FreeBSD, and then Solaris again, and OpenSolaris, and then FreeBSD).
Anyway, today’s little fix comes from Qt4 Linguist (devel/qt4-linguist in the ports tree), where we find this code:
if (c->findMessage(m->text(), m->comment()) >= 0)
Here findMessage() returns a MessageItem*, so that’s a nonsensical comparison that should be != 0 instead (or idiomatically, just leave out the comparison but Qt4 sources are somewhat inconsistent in their formulation of null-pointer checks).
So there’s — for me — a brief interlude of messing with old codebases in preparation for new things, while the rest of the KDE-FreeBSD team deals with newer things like the latest KDE Frameworks and Plasma Desktop releases (which, as I’ve said many times, may be had from the area51 repository and work fine, but are waiting on various dependencies in the official ports tree).

This entry was posted in FreeBSD, KDE. Bookmark the permalink.