Akademy 2022: What’s next for Flatpaks in KDE

5 minute read

Thanks to Fedora sponsorship (both for my travel and the conference itself), I was able to attend Akademy last week in Barcelona. It was great to finally meet in person folks I’ve been working with for the last couple of years.

I’ll report here on the discussion that happened in the Flatpak Birds of a Feather session. I’ve made another post focused on the talks I found interesting during the conference.

Update on the KDE Goal

I had proposed a goal for KDE around improving Flaptak support for KDE Apps: Make Flatpak a first class delivery method for KDE Apps. It has not been accepted (KDE’s new goals are officially go!) but it’s not really an issue as most of the future work is also related to another accepted goal (Automate and systematize internal processes) that is more generic and not focused on Flatpak.

Birds of a Feather session

During Akademy, we had a Birds of a Feather session where we talked about everything Flatpak and KDE.

Edit (2022-10-17): Added a note about the KDE Flatpak Matrix room and the Flatpak permission KCM from GSoC.

Status

First, we started with a small status report.

There are two “teams” regrouping people working around Flatpaks in KDE:

  • The first one is on Flathub (@flathub/kde, only visible/usable by members of the Flathub org) and regroups the people maintaining the KDE Apps built and published on Flathub. If you need to ping the team there, ping me (@travier) or another Flathub org member and I/they will ping the team. Members of this team have commit access to all org.kde.* repos on Flathub.
  • The second one is on KDE Invent (Flathub team), and regroups mostly the same people. This team is currently mostly used to track issues related to Flatpak support in KDE Apps and to ping team members on KDE Invent using @teams/flathub (use sparingly, most PRs are usually reviewed and merged quickly).

People interested in Flatpaks are hanging out in the #flatpak:kde.org Matrix room.

Most of KDE Apps are now available on Flathub. You can get an exhaustive list with a search query in the Flathub GitHub org (which also includes themes, platform support, extensions, etc.).

You can get download stats for the apps using the Flathub Beta website or the flathub-stats website from Kristian Klausen.

We track missing or in progress apps in issue #14. We track apps in beta in issue #13. Beta apps are hidden by default from searches on the Flathub website. Please comment on those issues if you find an app missing or if you think an app should no longer be in Beta.

On the Plasma side of things, we now have a Flatpak Permissions Management KCM that lets users change permissions for Flatpak Apps thanks to Suhaas Joshi’s work during 2022 GSoC.

Next steps: Notable bugs that need to be fixed

Non-exhaustive list of notable bugs that we should try to fix:

  • Missing bits for Flatpak support in Konsole: Those are reasonably small issues that we should be able to fix soon. See https://github.com/flathub/flathub/pull/3447#issuecomment-1264652401.
  • Missing themes: Themes need to be packaged specifically for Flatpak. As we can only package so many themes by default, folks that want other themes will have to package them. If you interested in this topic, making an example or writing documentation would help a lot here.
  • Input methods: There are issues with advanced input methods that provide support for Japanese, Chinese and other non latin languages. Unfortunately, folks in the group currently don’t have much experience on this topic. Making a Wiki page to help get started with examples on how to set things up to test input method support would be appreciated if you can help on this topic.
  • System accent color support: See https://github.com/flathub/org.kde.dolphin/issues/85. This is likely a missing feature in the kdesettings portal. We might have to add a DBus notification event when the kdeglobals file changes.
  • Thumbnailer support: This would help with the following issues: #1, #5. There is work in progress in KDE to sandbox the thumbnailers which should help here.

Next steps: Build infrastructure

Our current setup is split in three:

  • Manifests hosted on Flathub are built and published from the Flathub infrastructure (flathub & flathub-beta remotes)
  • Manifests in the Flatpak KDE Applications repo are development (nightly) builds, built in KDE Jenkins infra, and published in the distribute.kde.org remote.
  • Each projects in KDE Invent can enable Flatpak builds for merge requests by including a GitLab CI config and the application manifest directly in the project repo. See the README in the flatpak-kde-applications repo for details.

This means that Flatpak manifests have to be duplicated and updated in all places. In Flathub, we currently make use of flatpak-external-data-checker (that is run periodically on Flathub infra) to keep the manifests (applications and dependencies) updated there. For now there is nothing doing that in KDE Invent so applications developers have to manually keep their manifest synced.

Ideally, there would be only one place for the manifest: the application repo. To make that happen, we need to move as much as possible inside the KDE Invent infra and setup publishing for those builds to the Flathub infra.

This will require coordination with the KDE Sysadmin folks to make sure that we have enough CI capacity to build the SDKs and all the apps when we do releases.

Next steps: Updating the documentation

Contributors and maintainers of KDE Apps are likely not aware of how things are organized and set up in the KDE and Flathub infra. We thus need to update the Wiki and various repo documentations to describe the process for contributors, describe the current setup, etc. Hopefully this post is a first step to help with that goal.

Conclusion

This was a productive session. KDE Apps are mostly working fine in Flatpaks so the overall support is good and we can now work on polishing the user and developer experience to make working on and using KDE Apps as Flatpaks even better!

The raw notes from the session are available on KDE’s Nextcloud instance.

Updated:

Comments


Comments are disabled on this blog but feel free to start a discussion with me on Mastodon.
You can also contact me directly if you have feedback.