k2k20 - OpenBSD Hustenthon Burg Liebenzell

First of all let’s talk about the word Hustenthon. Husten is the German word for cough(ing). A small allusion to the current COVID19 situation. (This article does not intend to make an assessment of or talk about COVID19).

Due to the pandemic, this hackathon seemed to be called very spontaneously. Fortunately, the hackathon was over a weekend. This enabled me to attend without missing any professional obligations. On Friday morning, shortly after sunrise, I took the train to Bad Liebenzell. On the train I worked for my employer until I reached Karlsruhe at about 11am. I swapped my MacBook for my OpenBSD ThinkPad T470s.

Only a few days before the hackathon I had committed the big KDE frameworks 5.73.0 and KDE applications 20.08.0 update. With perfect timing, of course, because 1-2 days later 20.08.1 was released. So I had enough time the week before the hackathon to prepare a update diff.

I spent the time in the Bummelbahn (a small and slow train) from Karlsruhe to Bad Liebenzell reviewing my 20.08.1 update diff again. Arrived in the hackroom and connected via em0, my first action was to commit the update. I had a rough plan of what I wanted to do during the weekend: Focus on KDE bugs. Push more OpenBSD-related KDE patches upstream. This worked well in the weeks before the hackathon and you can see first bits landed in KDE Frameworks 5.74.0.

On ports@ I found security/qtpass which interested me as I always try to have a look at new Qt applications to import. Next was sysutils/htop and then security/qca-qt5. Then I got the stupid idea to commit my games/nethack Qt3 removal which ended up with a lot of noise and two additional commits. If there is one thing I have learned over the years, it is that strong nerves are needed to touch old ports-stuff. It is very difficult to work on such large submodules without stepping on someone’s feet from time to time.

Speaking of large submodules, Qt released Qt 5.15.1, the first patch release of Qt 5.15 LTS.

On Saturday, during my morning run, I decided to start working on a Qt 5.15.x update for the next release. Once again, a lot had happened at Qt between our version, 5.13, and the LTS 5.15.1 version. The update has gone well so far. I was able to update all submodules and the first tests were successful. I have tried to update Qt without updating x11/qt5/qtwebengine but it seems to be even more work because you have to fix so many qt-related parts in qtwebengine. I am working on a complete update including x11/qt5/qtwebengine. I’m optimistic.

My logs often contain desktoptojson: vfprintf %s NULL in "Warning: %s(%s:%u, %s) and I found out that this comes from KDE. More precisely, from devel/kf5/kcoreaddons. Quickly found the issue, fixed, sent upstream, merged upstream and committed in CVS.

Based on a very productive devel/kf5/kjs pull request review from upstream, I was able to fix the thread stack base detection in devel/kf5/kjs. The old patch points to the top and not to the base (end) of the thread stack.

I spent some time looking into devel/cmake. There is a sometimes bug in CMake on OpenBSD. This has often been spotted by naddy@. “A shared library has been built with the version number from SHARED_LIBS, but during the fake stage this is forgotten and the upstream version number used instead. This produces an error, because the file doesn’t exist." – (read more)[https://marc.info/?l=openbsd-ports&m=159733025922436&w=2]

I don’t think I have found this bug but maybe I have. There is a mistake in the cmGeneratorTarget_cxx patch. This creates a wrong scope. this->IsFrameworkOnApple() is present twice and the first one adds a wrong bracket which creates a scope to the end of the whole function. Maybe this triggers our random issues with cmake. We’ll see. More bulk builds will show.

During the Qt 5.15 update I noticed that x11/qt5/qtspeech does not build at all. I looked at our version in CVS and found that it is also broken or useless because it has no backend. A fix was quickly found and I was able to show bluhm@ a voice message via x11/kde-applications/kmouth in the hackroom. Now text-to-speech should again work for all consumers.

All in all I can look back on a really successful hackathon. Since I mainly operate only in ports, it was nice to meet people from the kernel space. On Monday morning I left the castle in the direction of N├╝rnberg where I worked for a customer for the next two days.

Thank you very much to Genua, the team from Burg Liebenzell and jan@ for organizing a great hackathon. Thanks pamela@ for the English proof-reading!

This blog post was also published on OpenBSD Journal - undeadly.org

Inspiration from a small town in the Black Forest…

All photos are unedited. License: CC BY-NC 4.0