Akademy 2025
A week ago I attended the 2025 edition of KDE Akademy in Berlin, Germany.
Akademy

Akademy is a week of hanging out with old and new friends that also happens to have two days of presentations and multiple days of BoFs attached to it.
It was slightly weird hearing from public administration/public agencies in their talks how important digital sovereignty and public funding for FOSS are, it’s not like we haven’t been telling them for years and it’s them rather than us who are in a position to really change this. Anyway, I’d consider that a sign of success.
You’ll find a couple of reports about Akademy on Planet KDE already, I’ll focus on a few things I was involved in below.
Topics
Emergency and weather alerts
On Saturday I presented our work on free and open infrastructure for receiving emergency and weather alerts. My main goal was to collect input on how this should eventually be integrated client-side.
The plan there is now to have a module in Plasma’s System Settings to manage areas of interest and keep the current stand-alone app prototype as the thing that opens when receiving push notifications. We can then gradually expand that to have more things (such as Itinerary) manage relevant areas.
With more people installing the current prototype and the venue Wi-Fi being a bit flaky at times we also managed to identify an issue in our current push notification infrastructure, namely an unfortunate interaction between KDE’s UnifiedPush server and Qt’s broken HTTP2 implementation in 6.9.1.
Push-based alerts weren’t the only thing though, we also got a chance to test cell broadcast alerts during the week. Since last year the Linux Mobile stack has made big improvements there, receiving cell broadcasts now just works, including wakeup from suspend and Unicode decoding. We now merely miss Plasma Mobile UI for this.

On Thursday we then got a chance to test both of this in action, as Akademy once more coincided with Germany’s nation-wide alert infrastructure test.

This worked flawlessly both for cell broadcasts and push notification, for the latter easily within the one minute latency the system is designed for.

Itinerary
And while my own (non-)travel to Akademy was very boring this year, others did provide ideas, test cases and merge requests:
- Kai added support for noting down hotel room numbers and key codes.
- Searching trips to/from the current location, also by Kai.
- The travel document extractor got a couple of improvements, with a PDF boarding pass with partially upside-down text being particularly difficult. That’s when Akademy shines, you just happen to have experts for all kinds of things around, such as a PDF parser maintainer when you need one.
- We decided between different approaches on how to best represent journey search results when specifying an arrival time.
Sensitive test documents
A challenge when working on the travel document extractor is that this often requires access to actual booking documents for development and testing. Those are donated by people, and full of their personal information. The current historically grown “trust me” approach without documented rules is far from ideal, and makes the people holding those documents single points of failures.
There had been several ideas already on how to improve this, but what I had missed until discussions during Akademy is that e.g. the Poppler and Okular team has exactly the same problem.
So rather than coming up with something for just Itinerary we’ll now look at a more general solution for this. Probably worth its own post eventually.
Notification configuration
While we have a cross-platform API for showing notifications we lack a way for application to show the platform-specific notification configuration dialog for themselves. That’s relevant on platforms where the presentation of notifications is controlled by the platform rather than the app itself (such as KDE’s Plasma or Android).
This isn’t particularly hard to implement when running in a Plasma host system, but it’s a bit more challenging for applications inside a Flatpak containment:
- The notification configuration needs to see the application’s
notifyrcfile, either by the Flatpak exporting that or by Plasma looking into installed Flatpaks for this. - The application needs a way to open the corresponding configuration page. On the host this can be done by
launching
kcmshellwith the right arguments, inside a Flatpak we’d probably need some kind of URL scheme for this.
Moving KMime to KDE Frameworks
I’d finally like to get the moving of PIM libraries back to KDE Frameworks going again. Being under Framework’s API stability guarantees would simplify a few things.
For this we now at least have a basic agreement that this should be done and what API details should be reviewed and possibly cleaned up beforehand. The biggest remaining task however is porting to the new API documentation infrastructure, which we’ll have to do for all other non-Frameworks libraries as well. Help very much welcome.
Flatpak and Flathub
There were also a couple of discussions around our own distribution of applications. There’s still some historic artifacts like external distributors having a one week lead time for getting access to release tarballs, while our own packaging can only start at the moment of the public announcement (and then takes a couple of days).
Albert kindly showed me how the automatic update monitoring infrastructure for Flatpak works. I could directly apply that for the Itinerary Flatpak (which thus will eventually have all features enabled on Flathub as well). Even more interesting though was discussing how that could be integrated with Craft so we can use that for our packages on all other platforms as well.
And finally I learned how I could log into Flathub to see validation errors for apps I’m responsible for. That’s very useful as so far I only hear about those by chance in random pastebins shared in unrelated chat channels. Well, in theory at least, as that doesn’t seem to actually work for my account unfortunately.
More events
Akademy was just the start into the autumn conference season for me, with the Open Transport Community Conference, the CAP Implementation Workshop 2025 and 39C3 still to come, next to the KDE PIM sprint in Paris and an OSM Hack Weekend or two.