KDE Frameworks 6.28.0 Released: Major KIO Fixes and Qt 6.9.0 Requirement
KDE has rolled out KDE Frameworks 6.28.0, continuing its monthly update cycle. If you're building on this stack, the first thing to check is your Qt version. The new release mandates Qt 6.9.0. You'll need to update before attempting a build, or the configure step will fail.
This release doesn't scream for attention with flashy new features. Instead, it quietly improves the plumbing across dozens of frameworks. KDE's strategy of monthly updates means developers get fixes fast. You see a steady stream of stability improvements without the fanfare of a major version jump. The cadence is predictable, and the community has adapted to the flow.
Platform Support Expands
KDE is poking at platforms it doesn't usually focus on, and this release shows that trend. KCoreAddons adds basic GNU/Hurd support to KMemoryInfo and KFileSystemType. Niche, but welcome.
Android gets more love too. You'll find a new Android platform calendar plugin in KCalendarCore, AppStream file discovery in KCoreAddons, and modernized JNI code in KNotifications.
iOS is getting the hardening treatment. Several frameworks, including KConfig and KGuiAddons, now disable desktop-only features on iOS to prevent crashes. However, at the same time, this restricts what these frameworks can do on Apple mobile devices. It's about survival, really. The code stops silent failures by explicitly opting out of unsupported functionality.
KIO Receives Engineering Overhaul
KIO is the file I/O framework, and this release gives it a serious workout. The commit list reveals extensive work on thread lifecycle management. Developers fixed a deadlock where Worker and WorkerThread tried to do synchronous pthread_join of a QThread's own thread. That's a classic recipe for a hang.
Cancellation is faster too. Directory listing and recursive deletion jobs now stop promptly when cancelled. You won't have to wait around for background operations to crawl to a halt anymore.
POSIX ACL preservation is getting verified in autotests, and the KFilePermissionsPropsPlugin fixes extended ACL handling. The file worker now respects requested modes for directory creation and no longer fails mkdir if overwrite is set and there's nothing to remove.
KIO changes can now refresh without D-Bus notifications. That's useful for sandboxed contexts where you don't have that luxury. MkdirJob gains a setOwnership method to set uid/gid, and DeleteJob reports files removed before a partial failure. Windows users get modification time set through SetFileTime. OpenUrlJob treats x-ms-dos-executable as a native binary if the executable bit is set.
KTextEditor and Kirigami Updates
KTextEditor's Vi-mode gets significant tweaks. Search and command registers are now read-only. Multi undo/redo works with counts. Mouse selection fixes resolve bugs #454417 and #454312. Cursor movement in camelCase words now stops only at underscores. You'll also see theme preview icons in the config page combo boxes.
Kirigami UI fixes target icon sizing and binding loops. Primitives icon sizing now bases the base icon node on icon size rather than item size, fixing multiple rendering bugs. FormEntry binding loops are resolved. AbstractApplicationWindow handles header items better.
Security-wise, KWallet rejects invalid UTF-8 in SetSecret and CreateItem instead of silently corrupting data. That's the right call. KImageformats enforces maximum channel limits to prevent buffer overflows across EXR, JP2, JXR, and HEIF formats. EXR gets additional metadata support. AVIF files with a single image no longer incorrectly report jumpToNextImage as true.
Holiday data gets refreshed too. KHolidays adds Ethiopian holidays for et_en and et_am locales, updates Croatian holidays as of 2026, and fixes Mother's and Father's Day in Slovakia. KUnitConversion adds Watt-hour (Wh) energy conversion. If you're doing energy math, that's handy.
Build and Install Details
KDE dropped the source for 6.28.0 at the usual spot. You can grab it from download.kde.org. Building requires the standard CMake dance.
cmake . make make install
Keep in mind that Qt 6.9.0 is a hard requirement. If you're using kdesrc-build for development, you're probably already tracking the latest. For binary package users, distribution maintainers will need to push this out.
Developers interested in following the work can check the git repositories and the KDE Frameworks Development mailing list. Real-time discussions happen on the #kde-devel IRC channel on Libera Chat.
Head here for the official release announcement.
