Skip to main content
  1. Posts/

p2k23 - OpenBSD Ports Hackathon Dublin 2023

·1145 words·6 mins· loading · loading ·
Rafael Sadowski
Author
Rafael Sadowski
Shut up and hack

My trip from NUE to DUB started with a typical delay. My flight was supposed to land in Dublin at midnight. Midnight turned into something around 1:30 in the night. Like in “The Walking Dead,” I left the plane and walked countless miles through the airport. Along the way, I had time to think about how I would now get to the hotel. When you leave the airport, there are always people with signs where names or destinations are written on them. Since I was not expected, I did not read them. But on one sign was a yellow “Puffy,” and under “Puffy” was my name. What the heck! Tom Smyth found out that my flight was going to be late and just picked me up. How great do you have to be? Half-asleep, I had a nice talk and gained my first insights into Dublin.

Misc
#

My hackathon started a few days earlier again. I found the time to go through the ports tree and update many small things and flooded the mailing list. I think this list is almost complete. So these ports have been updated:

  • math/R
  • benchmarks/fio
  • multimedia/mkvtoolnix
  • multimedia/shotcut
  • devel/doxygen
  • multimedia/mlt7
  • archivers/minizip
  • x11/py-qtawesome
  • textproc/ktextaddons
  • x11/kde-applications/okteta

I had an update for KDE Gear to 23.08 for a long time, but I never found the right time to commit it. With any update, you should always be ready in case something breaks and you need to fix it, no matter how well you have tested it. With such a big update, I like to be available for one week and can react quickly. Not always easy with work travel.

QtPy
#

What I really don’t enjoy, because it always breaks something, is the Riverbank Computing (Python Qt5) ecosystem and friends’ updates. With the support of landry@, the pain is no longer so terrible, but fun is something else. Anyway, the whole ecosystem is up to date again:

  • QScintilla 2.14.1
  • Py QScintilla 2.14.1
  • SIP support for PyQt 12.12.2
  • PyQt-builder 1.15.2
  • QtPy 2.4.0

Last but not least, among many small updates, Qwt 6.2.0 also found its way into the tree. Of course, a few old applications did not find it nice. Thanks to all who have fixed it ;)

XDG Autostart
#

I found out that not all XDG autostarts of my maintained applications are configured correctly. We install XDG autostart files under ${LOCALBASE}/share/examples. By default, we enable these by adding @sample ${SYSCONFDIR}/xdg/autostart. This ensures that an XDG-compatible service (WM, Desktop Environment…) starts the services.

share/examples/plasma-desktop/xdg/autostart/kaccess.desktop
@sample ${SYSCONFDIR}/xdg/autostart/kaccess.desktop

More: autostart-spec

Wayland and libinput on OpenBSD
#

You might think I have a very strong interest in Wayland on OpenBSD. However, this is only phase 1 for me for now. Wayland is only a means to an end for me. My long-time goal is to get KDE Plasma (whatever comes after) working productively on OpenBSD. Long story short, for this, I need Wayland as a dependency and Wayland itself. Of course, I would also like to work on Wayland. There is just not enough time for that besides the $DAYJOB.

Before the hackathon in Dublin, I noticed that matthieu@ had done a lot during g2k23 in Tallinn. So I started with /usr/ports/wayland/TODO-Wayland.md and built everything I needed. In the middle of this, I noticed something. matthieu@ had used a very old version of mherrb/libinput as a base.

matthieu@’s libinput is based on my old sizeofvoid/libopeninput repository, which is based on MPI’s init work. While working on KWin (WM for Plasma), I noticed that libinput moves fast, and KWin also needs a new API version.

I have decided to start with lib(open)input, which is forked from the upstream project and synced with libinput 1.24.0 API.

I had to struggle for half a day to add all the changes from matthieu@. In the end, I was able to provide a version that worked for Wayland users and was then committed.

KDE Plasma on OpenBSD
#

With this, we had an in-tree wayland/libinput-openbsd version that works with my KDE Plasma. This brought me to my real mission for the p2k23: getting KDE Plasma running! After all, everything had been ready for a long time. At least it compiled. ;)

So I started debugging and fixed the parts that caused the crash. Through a lot of hackathon magic focus, I had a working version after a whole day!

I was able to start it reproducibly, and a lot of parts worked out of the box. I spent another day with KDE Plasma. I decided to send everything necessary with a small instruction to ports@. volker@ and kn@ were kind enough to test it.

Full of joy, I made the most important change. I changed the default Plasma splash screen: Hello Puffy!

Now you can find everything in x11/kde-plasma. It is currently not hooked in. This means there is no package for it. You would still have to build it manually.

It’s very simple. Just go to x11/kde-plasma. Uncomment all ports under # Ported by unhooked in the Makefile and run make install in x11/kde-plasma. DONE. SDDM (The KDE display manager) is not yet ported. So KDE Plasma is started with xenodm and .xsession. I run it with the following .xsession:

export XDG_RUNTIME_DIR=$(mktemp -d /tmp/"$USER"-runtime-XXXXXX)
if [ ! -d $XDG_RUNTIME_DIR ]; then
    export XDG_RUNTIME_DIR=/tmp/run/$(id -u)
    mkdir -m 700 -p $XDG_RUNTIME_DIR
fi

# if dbus is installed, start its daemon
if [ -x /usr/local/bin/dbus-launch -a -z "${DBUS_SESSION_BUS_ADDRESS}" ]; then
	eval `dbus-launch --sh-syntax --exit-with-x11`
fi

# Enable to DEBUG ALL!!!
#export QT_LOGGING_RULES="*=true"

export QT_FORCE_STDERR_LOGGING=1

export XDG_CURRENT_DESKTOP=KDE
echo "------------------- $(date) --------------------" >>  ~/.startplasma-x11.log
/usr/local/bin/ck-launch-session /usr/local/bin/startplasma-x11 >> ~/.startplasma-x11.log 2>&1

I am grateful for any feedback and reports. I have noticed that from time to time, coredumps still end up in $HOME. Just send me the backtrace, for example:

gdb /usr/local/bin/kwin_x11 -c ~/kwin_x11.core

What’s next? Let’s stabilize the monster. For me, it has been the default desktop environment for weeks. It’s just a lot to do. I am thinking of starting with a ports/x11/kde-plasma/TODO-KDE-Plasma.md.

Hackathon Social, Long-Distance Runs, and Dublin
#

I really enjoyed the days with many new (in-person) people. I was able to completely focus on OpenBSD for one week, which was great. It is enriching every time. I have taken a lot with me and learned a lot from the stories of others and what they are working on. I always used the morning hours to go running. My running shoes are always with me. I could also arrange two long-distance runs of 27km and 18km. Anyone who is in Dublin and wants to see more than The Temple Bar Pub and enjoys nature, I can recommend visiting “North Bull Island.”

Thanks
#

A big thank you goes out to Tom Smyth, for making this happen, and to our sponsors, the OpenBSD Foundation & NCSC Ireland! Danke Ireland!

A special thanks to all who support my work with a small donation on GitHup.