Dakons blog

Erstellt: 20. 5. 2014, 22:02

Random platform fixes #3


Every once in a while I get bored and pick a random downstream platform and look on their CMake patches. The first time it was obviously Gentoo, because my toy machines run Gentoo. For reasons I don't remember anymore the next was Haiku. A bit strange, I never before (and basically never again) touched that OS. And at the moment it is OpenBSD.

I must say the findings are different. Gentoo still ships a lot of obscure old patches, that do e.g. platform fixes for things Gentoo doesn't really have anything to do with like AIX. I think most of them should be either send upstream or dropped, better sooner than later. Then they have a set of Python related patches because of the heavy Python usage in Gentoo. And of course the usual set of backports that are absolutely fine, especially as CMake 3.0 takes way longer than expected. I fought a long battle against some of the Python stuff because that actually broke stuff just to get it compliant with their thinking of how it should be, and finally gave them a clean version that does what they want (i.e. respect the global Python default version of the system) without breaking applications requesting a specific version. Meanwhile I get added to CMake bugs to give comments if patches are fine, so I file that as success.

Haiku had a bunch of platform fixups for their own stuff, because their API changed or whatever. I cleaned them up, submitted upstream what was sensible, and from what I know they should not need a single downstream patch once CMake 3.0 is released. One of the Haiku developers now comes into the CMake IRC channel every now and then to ask for comments or simply sends patches. Success, definitely.

OpenBSD is another beast. It is a bit like a mix of Gentoo and Haiku, having all sorts of arcane and obsolete stuff in it (i.e. things that are not needed at all because the code would work the same without their patches), as well as their platform stuff. One example is that Linux systems have their man pages in */share/man, while OpenBSD uses */man. Those stuff is currently sitting in the next branch, probably going to master soon if nothing unexpected shows up. Then there is the obsolete stuff, that can only be cleaned up by the OpenBSD folks themselves. I had the impression that the stuff that Gentoo shipped at least did make a change in behavior, some of the OpenBSD stuff can simply be discarded without anyone noticing. And then there is their platform specific stuff. OpenBSD does not want sonames in libraries, which is one feature that makes work on an ELF based platform much more comfortable. This will probably not go upstream anytime soon. But hopefully their huge patchset will shrink soon.