I spent the last week in Graz, Austria, attending a KDE sprint as well as Grazer Linuxtage.

KDE Sprint

Just like last year, the Grazer Linuxtage team had made rooms available for KDE people to meet in the week prior to the conference. More than twenty contributors attended, below are a few notes from discussions I have been involved with.

Photo of the KDE sprint at TU Graz.
Photo by Kieryn Darkwater

AppStream release notes

We use AppStream application metadata in a number of places currently:

  • The apps.kde.org website.
  • Software stores such as Flathub, F-Droid, Google Play or the Microsoft Store.
  • Software centers such as Discover.

In-app application metadata has so far been maintained separately though, using the KAboutData API. With KDE Frameworks 6.26 it will become possible to populate that from AppStream data as well, reducing duplicated data and duplicated translation efforts.

We also expanded how we use release notes from AppStream data:

  • Release notes can now also be translated.
  • There’s new API for accessing AppStream release notes inside an application itself. This is meant to avoid duplicated efforts for in-app release notes.
  • The KDE Gear release automation will now handle notes for pre-releases correctly. This means you can add release notes for users of CD builds already, those will get translated and merged into the subsequent stable release notes automatically.

There’s a few more things to do here still:

  • We don’t have a Kirigami-based standard component for in-app release notes yet.
  • The metadata converters for F-Droid and Google Play don’t handle release notes yet.

LSAN rollout on the CI

After Albert had added infrastructure for LeakSanitizer (LSAN) suppressions in the CI, we were able to enable LSAN in several more repositories which had previously been blocked on “unfixable” or intentional “leaks” outside of our control.

The increased visibility on actual issues then also helped with identifying and fixing a couple more “real” leaks, e.g. in KGuiAddons and LibKGAPI.

Qt 6.11 for Android

There has been some progress on the long overdue Qt update for our Android builds. This had been delayed as it’ll imply some rather drastic changes to the supported Android versions and devices. Lacking alternatives we will go ahead with this.

In particular, after 26.04.0 is out this means only Android 9 and higher will be supported, and 32bit ARM builds will be discontinued.

We prepared Qt 6.11 CI images and applied necessary build fixes to practically all of our apps that have Craft-based Android builds. Initial test looks promising, and some of the annoying input handling glitches seem to have been fixed.

Sentry for Android

Another Android-related topic we looked into was uploading crash information to KDE’s Sentry instance. Our Linux and Windows builds can do this since some time, and it has been a great help with identifying, prioritizing and fixing crashes.

Initial experiments got this to work quickly on Android as well, but it will require more work to do this properly and give users full control over whether they want to upload crash information or not. We explored a few options on how to do that and have a plan now, but that yet has to be implemented.

KMime move to KDE Frameworks

The long-lasting move of KMime to KDE Frameworks will finally happen early May, after the 26.04 KDE Gear release and in time for the 6.27 KDE Frameworks release.

Users of KMime will need a few minor build system adjustments for this. The CMake target name changes from KPim6::Mime to KF6::Mime, and the version number changes from KDE PIM versioning KDE Frameworks versioning. You can either replace this at once, or use the forward-compatibility approach suggested below.

The following CMake snippet replaces the previous find_package call for KPim6Mime and will handle both variants from before and after the move.

find_package(KF6Mime 6.27 CONFIG)
if(NOT TARGET KF6::Mime)
    find_package(KPim6Mime 6.7.0 CONFIG REQUIRED)
    add_library(KF6::Mime ALIAS KPim6::Mime)
endif()

Target names in target_link_library calls can then be switched to the new KF6::Mime already. Once the transition is complete, the above snippet can be simplified to a single find_package call for the new variant again, without needing to touch anything else anymore.

Akademy preparations

Akademy Graz September 19-24

While we were in Graz the dates for this year’s Akademy were announced: September 19-24. Registration as well as the Call for Participation are open as well.

As it was already known that Akademy would be in Graz this year, we could use the opportunity to inspect venues, test food options, as well as to review and improve OSM (indoor) mapping of the conference location.

Itinerary

With a bunch of people traveling to the sprint, Itinerary also got a bit of attention of course:

  • Performance of opening the “My Data” page the first time was improved, by optimizing computing some of the statistics shown on that page.
  • A new way of sharing GraphQL query fragments should simplify maintaining support for the various OpenTripPlanner flavors in KPublicTransport. For some of the backends, the information available for rental bikes/scooters/cars became more detailed as a result of this.
  • Kate’s syntax highlighting got support for IATA SSIM flight schedules. That’s fallout from work on importing such data into Transitous, where it will eventually also benefit Itinerary and KTrip.

And more…

That’s not all of course, other topics included:

There’s also reports from e.g. Kieryn, Albert and Kristen on Planet KDE with more details and other perspectives.

Grazer Linuxtage

KDE

At Grazer Linuxtage we had a KDE booth again, showing devices running Plasma, Krita and Plasma Mobile, handing out stickers as well as the famous amigurumi Konqis, collecting donations, and of course with a bunch of KDE contributors around to talk to.

Photo of the KDE booth at Grazer Linuxtage.
KDE's booth at Grazer Linuxtage (photo by Kieryn Darkwater)

Albert also did a presentation about 30 years of KDE.

Transitous

Also as part of the conference program I spoke about Transitous and what has been built for that and around that in the past two years.

Following the recent discussions about dynamic traffic data, the talk about monitoring vehicle-to-vehicle and vehicle-to-infrastructure messages was particularly interesting. The information shown on opentrafficmap.org is obtained that way, and shows how incredibly detailed this is.

There’s current positions of trams, busses, and regular cars, speed, acceleration vectors, status of all external lights, and which pedal gets pressed. Traffic lights report their current state and change timings as well as provide a full machine-readable model of their signal groups and lane relations. All of that in a standardized and (intentionally) unencrypted form.

Lots of potential in this, I wasn’t aware this went anywhere after things had gotten a bit quieter around the self-driving cars hype.

How you can help!

Bringing people together, for a small meeting or a big conference, is extremely useful and productive. The necessary travel and logistics come with costs though, which is where your donations to organizations like KDE e.V. or Grazer Linuxtage help!