summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--doc/guix.texi18
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/freedesktop.scm12
-rw-r--r--gnu/packages/gnupg.scm3
-rw-r--r--gnu/packages/gstreamer.scm3
-rw-r--r--gnu/packages/kde-frameworks.scm1140
-rw-r--r--gnu/packages/kde-games.scm237
-rw-r--r--gnu/packages/kde-internet.scm69
-rw-r--r--gnu/packages/kde-multimedia.scm50
-rw-r--r--gnu/packages/kde-pim.scm295
-rw-r--r--gnu/packages/kde-plasma.scm717
-rw-r--r--gnu/packages/kde-systemtools.scm114
-rw-r--r--gnu/packages/kde-utils.scm168
-rw-r--r--gnu/packages/kde.scm483
-rw-r--r--gnu/packages/patches/akonadi-not-relocatable.patch6
-rw-r--r--gnu/packages/patches/grantlee-fix-i586-precision.patch40
-rw-r--r--gnu/packages/patches/kwayland-skip-flaky-test.patch13
-rw-r--r--gnu/packages/qt.scm86
-rw-r--r--gnu/packages/sdl.scm2
-rw-r--r--gnu/services/desktop.scm53
-rw-r--r--gnu/services/sddm.scm11
-rw-r--r--gnu/system/examples/plasma.tmpl67
-rw-r--r--guix/build/qt-utils.scm2
24 files changed, 2329 insertions, 1263 deletions
diff --git a/Makefile.am b/Makefile.am
index 4228c07803..a976df705f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -454,6 +454,7 @@ EXAMPLES =					\
   gnu/system/examples/desktop.tmpl		\
   gnu/system/examples/lightweight-desktop.tmpl	\
   gnu/system/examples/docker-image.tmpl		\
+  gnu/system/examples/plasma.tmpl		\
   gnu/system/examples/raspberry-pi-64.tmpl	\
   gnu/system/examples/raspberry-pi-64-nfs-root.tmpl	\
   gnu/system/examples/vm-image.tmpl
diff --git a/doc/guix.texi b/doc/guix.texi
index a5e9f06957..efb4cec9ef 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -116,6 +116,7 @@ Copyright @copyright{} 2022 Antero Mejr@*
 Copyright @copyright{} 2023 Karl Hallsby@*
 Copyright @copyright{} 2023 Nathaniel Nicandro@*
 Copyright @copyright{} 2023 Tanguy Le Carrour@*
+Copyright @copyright{} 2023 Zheng Junjie@*
 Copyright @copyright{} 2023 Brian Cully@*
 Copyright @copyright{} 2023 Felix Lechner@*
 
@@ -23798,6 +23799,23 @@ The GNOME package to use.
 @end table
 @end deftp
 
+@defvar plasma-desktop-service-type
+This is the type of the service that adds the @uref{https://kde.org/plasma-desktop/,
+Plasma} desktop environment.  Its value is a @code{plasma-desktop-configuration}
+object (see below).
+
+This service adds the @code{plasma} package to the system profile.
+@end defvar
+
+@deftp {Data Type} plasma-desktop-configuration
+Configuration record for the Plasma desktop environment.
+
+@table @asis
+@item @code{plasma} (default: @code{plasma})
+The Plasma package to use.
+@end table
+@end deftp
+
 @defvar xfce-desktop-service-type
 This is the type of a service to run the @uref{Xfce, https://xfce.org/}
 desktop environment.  Its value is an @code{xfce-desktop-configuration} object
diff --git a/gnu/local.mk b/gnu/local.mk
index abe8964f4d..b17e20310e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1319,6 +1319,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gpm-glibc-2.26.patch			\
   %D%/packages/patches/gpodder-disable-updater.patch		\
   %D%/packages/patches/gpsbabel-fix-i686-test.patch		\
+  %D%/packages/patches/grantlee-fix-i586-precision.patch	\
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
   %D%/packages/patches/grfcodec-gcc-compat.patch		\
   %D%/packages/patches/gromacs-tinyxml2.patch			\
@@ -1471,7 +1472,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch	\
   %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch		\
   %D%/packages/patches/kodi-mesa-eglchromium.patch		\
-  %D%/packages/patches/kwayland-skip-flaky-test.patch		\
   %D%/packages/patches/laby-make-install.patch			\
   %D%/packages/patches/laby-use-tmpdir-from-runtime.patch	\
   %D%/packages/patches/ldns-drill-examples.patch		\
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 2841c1702f..0a1c9bffb3 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -101,6 +101,7 @@
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages kde)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunwind)
@@ -2903,14 +2904,14 @@ interfaces.")
 (define-public xdg-desktop-portal-kde
   (package
     (name "xdg-desktop-portal-kde")
-    (version "5.25.5")
+    (version "5.27.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0l3lmwihxyl65y0mkyg3afk1k6gc0ldjw2vg92g7yydbgmn39q7k"))))
+                "0wzp21l521d9z9mnfgiapzljqpg5qc5ghyzndpr8cz54c2bf9mdf"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules pkg-config))
     (inputs (list cups
@@ -2929,7 +2930,12 @@ interfaces.")
                   kiconthemes
                   qtdeclarative-5
                   qtwayland-5
-                  wayland))
+                  wayland
+                  kglobalaccel
+                  kguiaddons
+                  libxkbcommon
+                  kio-fuse
+                  wayland-protocols))
     (synopsis "Backend implementation for xdg-desktop-portal using Qt/KF5")
     (description "This package provides a backend implementation
 for xdg-desktop-portal that is using Qt/KF5.")
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 8d92c60bf2..a5b8587a14 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -453,12 +453,13 @@ and every application benefits from this.")
                (symlink (string-append gpgme "/lib/libgpgme.la")
                         "src/libgpgme.la"))
              (chdir "lang/qt"))))))
+    (propagated-inputs (list gpgme))    ;required by QGpgmeConfig.cmake
     (native-inputs
      (modify-inputs (package-native-inputs gpgme)
        (prepend pkg-config)))
     (inputs
      (modify-inputs (package-inputs gpgme)
-       (prepend gpgme qtbase-5)))
+       (prepend qtbase-5)))
     (synopsis "Qt API bindings for gpgme")
     (description "QGpgme provides a very high level Qt API around GpgMEpp.
 
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 075f424560..86886c025f 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -797,6 +797,9 @@ model to base your own plug-in on, here it is.")
                   ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/790).
                   ((".*'elements/shm\\.c'.*") "")
 
+                  ;; The 'elements_curlhttpsrc' test sometimes times out.
+                  ((".*'elements/curlhttpsrc\\.c'.*") "")
+
                   ;; This test is flaky on at least some architectures.
                   ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1244
                   #$@(if (target-riscv64?)
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index b82c243126..ec7b5c041b 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system qt)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -48,6 +50,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages calendar)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages docbook)
@@ -77,6 +80,7 @@
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
@@ -98,7 +102,7 @@
 (define-public extra-cmake-modules
   (package
     (name "extra-cmake-modules")
-    (version "5.104.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -107,7 +111,7 @@
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1nc5ynfz903jc87xawnww3pf1y73x9jvmxnbrj24nqv6vcgv57p4"))))
+                "0yj4xpzzz5q8140mqkl2s5zabfbks76a3rqfq3cc4d5x3b9an57z"))))
     (build-system cmake-build-system)
     (native-inputs
      ;; Add test dependency, except on armhf where building it is too
@@ -122,11 +126,13 @@
                     (not (null? (package-native-inputs this-package))))
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'unpack 'fix-lib-path
+          (add-after 'unpack 'fix-lib-and-libexec-path
             (lambda _
-              ;; Always install into /lib and not into /lib64.
               (substitute* "kde-modules/KDEInstallDirsCommon.cmake"
-                (("\"lib64\"") "\"lib\""))
+                ;; Always install into /lib and not into /lib64.
+                (("\"lib64\"") "\"lib\"")
+                ;; Install into /libexec and not into /lib/libexec.
+                (("LIBDIR \"libexec\"") "EXECROOTDIR \"libexec\""))
 
               ;; Determine the install path by the major version of Qt.
               ;; TODO: Base the following on values taken from Qt
@@ -182,7 +188,7 @@ common build settings used in software produced by the KDE community.")
 (define-public kquickcharts
   (package
     (name "kquickcharts")
-    (version "5.96.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/frameworks/"
@@ -190,7 +196,7 @@ common build settings used in software produced by the KDE community.")
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1sd9mfxk72xfa1kz77s7z312scfm0vwvvgmyi4pypb9cs7d9dq3j"))))
+                "1wdmgala480qjipzpq9v85vy1i3n0qgria0rgn26ibhm2wmvmrpw"))))
     (build-system cmake-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -292,7 +298,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
 (define-public attica
   (package
     (name "attica")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -301,16 +307,17 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0w1w6w2jia1q32jnn2dhyxmkq64ha1dcbsqj233v4f224rp3aknp"))))
+                "15didd7llqamp9wbvrynnf9cap2dqmwr51mz0pcjdk0iqs6ym4qq"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-network-tests
-           (lambda _
-             ;; These tests require network access.
-             (substitute* "autotests/CMakeLists.txt"
-               ((".*providertest.cpp") "")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'disable-network-tests
+            (lambda _
+              ;; These tests require network access.
+              (substitute* "autotests/CMakeLists.txt"
+                ((".*providertest.cpp") "")))))))
     (native-inputs
      (list extra-cmake-modules))
     (inputs
@@ -332,7 +339,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
 (define-public bluez-qt
   (package
     (name "bluez-qt")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -341,7 +348,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0h2k2qiskn921cpni5rs7x5ahric6dlllwsrk77akpi4xcsrip2g"))))
+                "1yf2rbqp9997318ybnd8myvj26pzdkx55j6w86ibvn7hwgb77hhs"))))
     (build-system cmake-build-system)
     (native-inputs
      (list dbus extra-cmake-modules))
@@ -368,7 +375,7 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
 (define-public breeze-icons
   (package
     (name "breeze-icons")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/frameworks/"
@@ -376,7 +383,7 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0a3zvmhcfsnxv0jpyjny3sl769p99psadl1872v0qlkax47pvsjp"))))
+                "175g6352lv8gq6sn4pkl91b51njdliryb82x2wdjbvzlc3zhfrcy"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules
@@ -407,7 +414,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
 (define-public kapidox
   (package
     (name "kapidox")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -416,12 +423,12 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1k2qk8ibv5dqdhkn2992n8rlmslpmngz83hxb7zrh3pkphdg8v2n"))))
+                "1xpapgzja66lwxagrynns2ycx4cdllld5b3xrxg67si3bjz9p70a"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f  ; has no test target
-       #:phases (modify-phases %standard-phases
-                  (delete 'sanity-check)))) ;its insane.
+     (list #:tests? #f ; test need network
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'sanity-check)))) ;its insane.
     (propagated-inputs
      ;; kapidox is a python programm
      ;; TODO: check if doxygen has to be installed, the readme does not
@@ -447,7 +454,7 @@ documentation.")
 (define-public karchive
   (package
     (name "karchive")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/frameworks/"
@@ -455,7 +462,7 @@ documentation.")
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ipj7j1iw6g56z0qppji38h6qwbs05piiqqbsw8hdbf96l6cdiq2"))))
+                "1rbmh0sfrgv7nkmmnf8zyd5x66g9bh6kj9ry2yzivqn73ralk44y"))))
     (build-system cmake-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -464,7 +471,7 @@ documentation.")
                             (when tests?
                               (invoke "ctest" "-E" "karchivetest")))))))
     (native-inputs
-     (list extra-cmake-modules pkg-config))
+     (list extra-cmake-modules pkg-config qttools-5))
     (inputs
      (list bzip2 qtbase-5 xz zlib `(,zstd "lib")))
     (home-page "https://community.kde.org/Frameworks")
@@ -484,7 +491,7 @@ GZip format, via a subclass of QIODevice.")
 (define-public kcalendarcore
   (package
     (name "kcalendarcore")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -493,22 +500,23 @@ GZip format, via a subclass of QIODevice.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "16kclspsjzld9n07z1i8li2pc91ihpqhbk46a4s92nsihs2dkayk"))))
+                "1wxlixz7624p7693lwxgdzyi30n9zgs0mgvwldp0q0llzpxqp5yv"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules perl tzdata-for-tests))
     (inputs
      (list libical qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda* (#:key inputs #:allow-other-keys) ;;; XXX: failing test
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             (setenv "TZ" "Europe/Prague")
-             (setenv "TZDIR"
-                     (search-input-directory inputs
-                                             "share/zoneinfo")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda* (#:key inputs #:allow-other-keys) ;;; XXX: failing test
+              (setenv "QT_QPA_PLATFORM" "offscreen")
+              (setenv "TZ" "Europe/Prague")
+              (setenv "TZDIR"
+                      (search-input-directory inputs
+                                              "share/zoneinfo")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Library for interfacing with calendars")
     (description "This library provides access to and handling of calendar
@@ -524,7 +532,7 @@ and the older vCalendar.")
 (define-public kcodecs
   (package
     (name "kcodecs")
-    (version "5.104.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -533,7 +541,7 @@ and the older vCalendar.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0swxj2kr37pnwdxsipfii8q02g58lvm9lsh4kflqgfjyhvv0kjby"))))
+                "12vav9ncxcf0vpmfp7wps91ax7azrwaxhqdq8z52vcyl0rvgy341"))))
     (build-system cmake-build-system)
     (native-inputs (list extra-cmake-modules gperf qttools-5))
     (inputs (list qtbase-5))
@@ -553,10 +561,36 @@ Internet).")
                    license:lgpl2.1 license:lgpl2.1+ license:expat
                    license:lgpl3+ license:mpl1.1))))
 
+(define-public kcolorpicker
+  (package
+    (name "kcolorpicker")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/ksnip/kColorPicker")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1aw41mj0hxin2h3cldiiv7ivq5qv97l0ww42yr7j8hmkzj7qq6ba"))))
+    (build-system qt-build-system)
+    (propagated-inputs (list qtbase-5))
+    (arguments
+     (list #:configure-flags #~'("-DBUILD_TESTS=ON")))
+    (home-page "https://github.com/ksnip/kColorPicker")
+    (synopsis "Color Picker with popup menu")
+    (description
+     "@code{KColorPicker} is a subclass of @code{QToolButton} with color popup
+menu which lets you select a color.  The popup features a color dialog button
+which can be used to add custom colors to the popup menu.")
+    (license license:lgpl3+)))
+
 (define-public kconfig
   (package
     (name "kconfig")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -565,7 +599,7 @@ Internet).")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "15m2bggfr682q68dym7nzmvz7q7pwarzijad1wj0r5cs62l3bkjy"))))
+                "0gq30f5yx3razkn12zq7224sivl76jikf7c4xdfc9fw1k54sxbjd"))))
     (build-system cmake-build-system)
     (native-inputs
      (list dbus extra-cmake-modules inetutils qttools-5
@@ -616,7 +650,7 @@ propagate their changes to their respective configuration files.")
 (define-public kcoreaddons
   (package
     (name "kcoreaddons")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -625,30 +659,31 @@ propagate their changes to their respective configuration files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0lqmyxqsw7w1qgdgmax63v64cy7dwk7n4zi8k53xmrqjmd9jir52"))))
+                "0l8f59ijmcjvrpgysvrw2nmh3jqlzhlqxmgrvybipxpywams3cy8"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5 shared-mime-info))
-           ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
+    ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
     (inputs
      (list qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'blacklist-failing-test
-           (lambda _
-             ;; Blacklist failing tests.
-             (with-output-to-file "autotests/BLACKLIST"
-               (lambda _
-                 ;; FIXME: Make it pass.  Test failure caused by stout/stderr
-                 ;; being interleaved.
-                 (display "[test_channels]\n*\n")
-                 ;; FIXME
-                 (display "[test_inheritance]\n*\n")))))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd))
-             (setenv "TMPDIR" (getcwd)))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'blacklist-failing-test
+            (lambda _
+              ;; Blacklist failing tests.
+              (with-output-to-file "autotests/BLACKLIST"
+                (lambda _
+                  ;; FIXME: Make it pass.  Test failure caused by stout/stderr
+                  ;; being interleaved.
+                  (display "[test_channels]\n*\n")
+                  ;; FIXME
+                  (display "[test_inheritance]\n*\n")))))
+          (add-before 'check 'check-setup
+            (lambda _
+              (setenv "HOME" (getcwd))
+              (setenv "TMPDIR" (getcwd)))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt addon library with a collection of non-GUI utilities")
     (description "KCoreAddons provides classes built on top of QtCore to
@@ -661,7 +696,7 @@ many more.")
 (define-public kdbusaddons
   (package
     (name "kdbusaddons")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -670,7 +705,7 @@ many more.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0fwdmlnci2xn5pi1ywgia3xka3zsh6gl6xpx1gvql7lczk1y490a"))))
+                "1siv9ndk0zr9yq6pwjs248zzsh4kgllfj1294jym80rxcb0z6g9r"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules dbus qttools-5))
@@ -679,21 +714,22 @@ many more.")
     ;; kinit-bootstrap: kinit package which does not depend on kdbusaddons.
     (arguments
      (list #:phases
-       #~(modify-phases %standard-phases
-         (add-before 'configure 'patch-source
-          (lambda* (#:key inputs #:allow-other-keys)
-            ;; look for the kdeinit5 executable in kinit's store directory,
-            ;; instead of the current application's directory:
-            (substitute* "src/kdeinitinterface.cpp"
-              (("<< QCoreApplication::applicationDirPath..")
-               (string-append
-                "<< QString::fromUtf8(\"/" (dirname (search-input-file inputs
-                "bin/kdeinit5")) "\")" )))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest")))))))
+           #~(modify-phases %standard-phases
+               (add-before 'configure 'patch-source
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; look for the kdeinit5 executable in kinit's store directory,
+                   ;; instead of the current application's directory:
+                   (substitute* "src/kdeinitinterface.cpp"
+                     (("<< QCoreApplication::applicationDirPath..")
+                      (string-append
+                       "<< QString::fromUtf8(\"/"
+                       (dirname (search-input-file inputs "bin/kdeinit5"))
+                       "\")" )))))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (setenv "DBUS_FATAL_WARNINGS" "0")
+                     (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Convenience classes for DBus")
     (description "KDBusAddons provides convenience classes on top of QtDBus,
@@ -705,7 +741,7 @@ as well as an API to create KDED modules.")
 (define-public kdnssd
   (package
     (name "kdnssd")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -714,7 +750,7 @@ as well as an API to create KDED modules.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0wcjq0g1cdjz9npy31i4rqbx85a95f15w71aamhm8x82l8nysv4g"))))
+                "0pxlkwjjl2gzfjf9pd7j9m1nhc6jas0wd8994jgljgxc5dc94cn8"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -760,7 +796,7 @@ replace the other outdated Graphviz tools.")
 (define-public kguiaddons
   (package
     (name "kguiaddons")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -769,7 +805,7 @@ replace the other outdated Graphviz tools.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "022qf858khdqklq117i223ihpw8mvdcbcfn8cwqmn2cv9qnfxnqj"))))
+                "01yfv2ybqi894g7d1fy584x0nbmqlm7vi0b998zc52233blh8j51"))))
     (build-system qt-build-system)
     ;; TODO: Build packages for the Python bindings.  Ideally this will be
     ;; done for all versions of python guix supports.  Requires python,
@@ -788,7 +824,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
 (define-public kholidays
   (package
     (name "kholidays")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -796,7 +832,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
                     (version-major+minor version) "/"
                     name "-" version ".tar.xz"))
        (sha256
-        (base32 "0ysw52wiyxrkprn0gis85nphpfl1wdb4439i66dfmg7s9nyqpzp0"))))
+        (base32 "03g484nm37vv8mnj4q6y6pdrhhiglni3s63gpxhc54zzhzxshpy5"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -811,7 +847,7 @@ other special events for a geographical region.")
 (define-public ki18n
   (package
     (name "ki18n")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -820,7 +856,7 @@ other special events for a geographical region.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0b3r53v2ybhlyqpkjv98dv2w9q49yqqxk9qzbyc4mm7ypq4hvl47"))))
+                "0kpza0n900j8lf27d60ikl963616vcqnns8va6cg8y2lf2pmxvsr"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list gettext-minimal python))
@@ -829,13 +865,14 @@ other special events for a geographical region.")
     (inputs
      (list qtbase-5 qtdeclarative-5 qtscript iso-codes))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "HOME" (getcwd))
-               (invoke "ctest" "-E" "(kcountrytest|kcountrysubdivisiontest)")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (invoke "ctest" "-E"
+                               "(kcountrytest|kcountrysubdivisiontest)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Gettext-based UI text internationalization")
     (description "KI18n provides functionality for internationalizing user
@@ -852,7 +889,7 @@ translation scripting.")
 (define-public kidletime
   (package
     (name "kidletime")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -861,7 +898,7 @@ translation scripting.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1jdbjkishqnlzz1qrzyg92xnlsl7w89dmrh0zhzaj9bnr5a3icck"))))
+                "0cqb33xyqxh507332c30ja5anq99zj250b4sl6r6bn1z6j7yfzx7"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -881,7 +918,7 @@ or user activity.")
   ;; plasma-framework which is tier 3.
   (package
     (name "kirigami")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -890,7 +927,7 @@ or user activity.")
                     "kirigami2-" version ".tar.xz"))
               (sha256
                (base32
-                "1l0ggwrprmg5n5y3gxv7h4593fg87d7naxkf30603kkavq0hgks6"))))
+                "0kbzqkvq169w9kl4z7l7zd21mgxqdsyv8ia2j6cwd3qqn4xd3nbp"))))
     (properties `((upstream-name . "kirigami2")))
     (build-system cmake-build-system)
     (native-inputs
@@ -916,7 +953,7 @@ of applications that follow the Kirigami Human Interface Guidelines.")
 (define-public kitemmodels
   (package
     (name "kitemmodels")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -925,7 +962,7 @@ of applications that follow the Kirigami Human Interface Guidelines.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1z9swjmll833jxy2ym63zzgi9vl8ld79mgypndqszsrd4mfsbs16"))))
+                "05dd1d1dxkbjrr6x73ndsrabzaa02m3cn1h4dmsgpydy1rkzbj9v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -966,7 +1003,7 @@ model to observers
 (define-public kitemviews
   (package
     (name "kitemviews")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -975,7 +1012,7 @@ model to observers
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "176gqlinsvdgkbg7kr4qd97mnvcnbymrkcs9kg6hm75qzxcaj8dj"))))
+                "13dcy804lv6ws1gdfjczkbnlyig11ir4p2mi26ashbgrdfpywxv1"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -991,7 +1028,7 @@ to flat and hierarchical lists.")
 (define-public kplotting
   (package
     (name "kplotting")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1000,7 +1037,7 @@ to flat and hierarchical lists.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hnzyl1x6acv1psdgsa9prpvnm12j71x6w6wbs1b0fl9bv5zw222"))))
+                "1rnkwxxms2raqswgwm0i4xgjqpzkz7wl2kbdra2gqscfz7a23s4p"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -1018,7 +1055,7 @@ pixel units.")
 (define-public ksyntaxhighlighting
   (package
     (name "ksyntaxhighlighting")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1027,7 +1064,7 @@ pixel units.")
                     "syntax-highlighting-" version ".tar.xz"))
               (sha256
                (base32
-                "092ilbhhs8xaqblc9w1xksapdzvqyazz8lj011wz4762p1nagiq2"))))
+                "1lri80bv4i50xsd2wgyv383sqkxpav3smgk9ql5dil2n8pl219ky"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules perl qttools-5
@@ -1061,14 +1098,14 @@ integration with a custom editor as well as a ready-to-use
 (define-public plasma-wayland-protocols
   (package
     (name "plasma-wayland-protocols")
-    (version "1.7.0")
+    (version "1.10.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/" name "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1mps0pirffvnpnbcpi1l9fxxfx14n83f1p46zv3987d6ra2jckh8"))))
+                "1zin4ybw3ijy6imri7xky3gcvkjspkyas8qdvvk16im0r5kqi51i"))))
     (build-system cmake-build-system)
     (native-inputs (list extra-cmake-modules))
     (arguments '(#:tests? #f))          ;no tests
@@ -1085,17 +1122,16 @@ protocols used in KDE Plasma.")
 (define-public kwayland
   (package
     (name "kwayland")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://kde/stable/frameworks/"
                     (version-major+minor version) "/"
                     name "-" version ".tar.xz"))
-              (patches (search-patches "kwayland-skip-flaky-test.patch"))
               (sha256
                (base32
-                "0c0953gm63xhrqb7aspvf28wi7x31mrgaid23dw5gqphkbgis5qw"))))
+                "11xk1rzizmqb0haqkg24kdd54a3fdqrxr2kh056irbnksp9p8k03"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -1114,7 +1150,14 @@ protocols used in KDE Plasma.")
       #~(modify-phases %standard-phases
           (add-before 'check 'set-XDG_RUNTIME_DIR
             (lambda _
-              (setenv "XDG_RUNTIME_DIR" (getcwd)))))))
+              (setenv "XDG_RUNTIME_DIR" (getcwd))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "ctest" "-E"
+                        ;; XXX: maybe is upstream bug
+                        "(kwayland-testWaylandRegistry|\
+kwayland-testPlasmaShell|kwayland-testPlasmaWindowModel)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt-style API to interact with the wayland client and server")
     (description "As the names suggest they implement a Client respectively a
@@ -1128,7 +1171,7 @@ represented by a QPoint or a QSize.")
 (define-public kwidgetsaddons
   (package
     (name "kwidgetsaddons")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1137,20 +1180,22 @@ represented by a QPoint or a QSize.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "117wki4w2bs1d2pjhi5qpb2b3qhhva6fq9gikba5fb6980kmdayr"))))
+                "1a7svxd0c5dzx5pqjddc38cybf21wrg1hfz91gkrlv9f7ai0k878"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5 xorg-server-for-tests))
     (inputs
      (list qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
-               (invoke "ctest" "-E" "(ksqueezedtextlabelautotest|\
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
+                (invoke "ctest" "-E"
+                        "(ksqueezedtextlabelautotest|\
 kwidgetsaddons-kcolumnresizertest)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Large set of desktop widgets")
@@ -1163,7 +1208,7 @@ configuration pages, message boxes, and password requests.")
 (define-public kwindowsystem
   (package
     (name "kwindowsystem")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1172,7 +1217,7 @@ configuration pages, message boxes, and password requests.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "02l7xmxcilmrxpkkid4m9srl0d8ymqgwpw5j80w3g57p0rahwjl1"))))
+                "0112cgy09qw069v1lzaz6rp84p128mq3xqp3xink398xhp3nrkqd"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules
@@ -1188,20 +1233,21 @@ configuration pages, message boxes, and password requests.")
            xcb-util-keysyms
            xcb-util-wm))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             ;; The test suite requires a running window anager
-             (when tests?
-               (setenv "XDG_RUNTIME_DIR" "/tmp")
-               (system "Xvfb :1 -ac -screen 0 640x480x24 &")
-               (setenv "DISPLAY" ":1")
-               (sleep 5) ;; Give Xvfb a few moments to get on it's feet
-               (system "openbox &")
-               (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              ;; The test suite requires a running window anager
+              (when tests?
+                (setenv "XDG_RUNTIME_DIR" "/tmp")
+                (system "Xvfb :1 -ac -screen 0 640x480x24 &")
+                (setenv "DISPLAY" ":1")
+                (sleep 5) ;; Give Xvfb a few moments to get on it's feet
+                (system "openbox &")
+                (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+                (setenv "DBUS_FATAL_WARNINGS" "0")
+                (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE access to the windowing system")
     (description "KWindowSystem provides information about and allows
@@ -1219,7 +1265,7 @@ lower level classes for interaction with the X Windowing System.")
 (define-public modemmanager-qt
   (package
     (name "modemmanager-qt")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1228,7 +1274,7 @@ lower level classes for interaction with the X Windowing System.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0gk4jy3r1451a2dajhnz6lin4lfawc4qdlxp7n7m43ca4d89h13k"))))
+                "1rkz1m2dlfhny9zvy8axzgjxgh41cfnmpb52rwargmrsgplcx7rz"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules dbus pkg-config))
@@ -1238,13 +1284,12 @@ lower level classes for interaction with the X Windowing System.")
     (inputs
      (list qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "DBUS_FATAL_WARNINGS" "0")
+                              (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt wrapper for ModemManager DBus API")
     (description "ModemManagerQt provides access to all ModemManager features
@@ -1256,7 +1301,7 @@ messages.")
 (define-public networkmanager-qt
   (package
     (name "networkmanager-qt")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1265,7 +1310,7 @@ messages.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0s1h02v9k8nyl30mw7gayzvpb8bnzzp9crcfqpry7rf02rxv9idw"))))
+                "0y9h1n4hccdzk5rp2bq7dyq617yg5myq7dcwnpnp1aik40647vjf"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules dbus pkg-config))
@@ -1276,13 +1321,12 @@ messages.")
     (inputs
      (list qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "DBUS_FATAL_WARNINGS" "0")
+                              (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt wrapper for NetworkManager DBus API")
     (description "NetworkManagerQt provides access to all NetworkManager
@@ -1294,7 +1338,7 @@ which are used in DBus communication.")
 (define-public oxygen-icons
   (package
     (name "oxygen-icons")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1303,7 +1347,7 @@ which are used in DBus communication.")
                     name "5" "-" version ".tar.xz"))
               (sha256
                (base32
-                "03wk52hqrgj0r73nb4yiq7rnmdn4rrqzrj3cdzbg3flkw5r7wbbq"))))
+                "0w9zcgii9z91060cnqcalv8vnj03xrnjr5k6crx28szrpplqcvxd"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules fdupes))
@@ -1318,7 +1362,7 @@ which are used in DBus communication.")
 (define-public prison
   (package
     (name "prison")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -1326,7 +1370,7 @@ which are used in DBus communication.")
                            (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "1ppqm1f06q8fc1ncvzn9a133npmvlh1qxgvvbpwn6m0a8cr7ac6w"))))
+        (base32 "1pn62pd7jy589z9y5r00m8d5rcqvrbskyr4a2yyfs24xv21x8lw4"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1368,7 +1412,7 @@ libpulse.")
 (define-public qqc2-desktop-style
   (package
     (name "qqc2-desktop-style")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1377,7 +1421,7 @@ libpulse.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1af7izd4k220dzngf1nwgcw0bi7vl772lpjrqd9fp9rijh74dx7d"))))
+                "1icv871q0z2wh147j3bg9xqizp2cyrsrsrsgbyyscpa9x5nlpvw9"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -1403,7 +1447,7 @@ feel.")
 (define-public solid
   (package
     (name "solid")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1412,16 +1456,15 @@ feel.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "14bf2k40skhyhrmgyyscg7psm1a8klf4z696pimlwjjhnawjfr06"))))
+                "0m4i7csrz167nm6h4pcd0413x6jvnd39cx13k9ayga9my36ba2r8"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "DBUS_FATAL_WARNINGS" "0")
+                              (invoke "dbus-launch" "ctest")))))))
     (native-inputs
      (list bison dbus extra-cmake-modules flex qttools-5))
     (inputs
@@ -1437,7 +1480,7 @@ system.")
 (define-public sonnet
   (package
     (name "sonnet")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1446,7 +1489,7 @@ system.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0j4p91xx1scg3jmvq6km7bwfjz5ihafk76yf1byb6aqyw50h3bm3"))))
+                "00azygjvv0fw5agd28v3kqxc3qx1wa8j4afvn5y3ncarhb5ac7p1"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config qttools-5))
@@ -1466,7 +1509,7 @@ ASpell and HUNSPELL.")
 (define-public threadweaver
   (package
     (name "threadweaver")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1475,7 +1518,7 @@ ASpell and HUNSPELL.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1pwinpz5kscx64kc7dn4qf76m64kxzp92zjk8j2a2s1mx0s0vk2s"))))
+                "094nfqbhgg8yfri7fghn8dkjdf1k5iccshj0ns2b30snw87w8b29"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1487,6 +1530,27 @@ ASpell and HUNSPELL.")
 uses a job-based interface to queue tasks and execute them in an efficient way.")
     (license license:lgpl2.1+)))
 
+(define-public libkdcraw
+  (package
+    (name "libkdcraw")
+    (version "23.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0vwr44j77c1vffsppkzdasd0l8apzx7jn6llwhzb4bjp93arx18w"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     (list pkg-config extra-cmake-modules))
+    (inputs
+     (list libraw qtbase-5))
+    (home-page "https://invent.kde.org/graphics/libkdcraw")
+    (synopsis "C++ interface used to decode RAW picture files")
+    (description "Libkdcraw is a C++ interface around LibRaw library used to
+decode RAW picture files.")
+    (license (list license:gpl2+ license:bsd-3))))
 
 ;; Tier 2
 ;;
@@ -1496,7 +1560,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
 (define-public kactivities
   (package
     (name "kactivities")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1505,7 +1569,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0n7r88y1b8mph5al2xh8fbw5ckdzdmdzjipf205y20ib35bskd9i"))))
+                "0lqhfml91wh9376xr31ky8fl49yamfzz336bdjzj3i3ygqzyc7lh"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1541,7 +1605,7 @@ with other frameworks.")
 (define-public kauth
   (package
     (name "kauth")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1550,31 +1614,32 @@ with other frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0nzdvx2mibpq1cgzpll9ffjr46vch1qvriaywyqih0iybx6mx5z6"))))
+                "0xn0v1rzjsv1a856zcw9s9qkbfaq184663akc5rrapvvfcrm2vjz"))))
     (build-system cmake-build-system)
     (native-inputs
      (list dbus extra-cmake-modules qttools-5))
     (inputs
      (list kcoreaddons polkit-qt qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-cmake-install-directories
-           (lambda _
-             ;; Make packages using kauth put their policy files and helpers
-             ;; into their own prefix.
-             (substitute* "KF5AuthConfig.cmake.in"
-               (("@KAUTH_POLICY_FILES_INSTALL_DIR@")
-                "${KDE_INSTALL_DATADIR}/polkit-1/actions")
-               (("@KAUTH_HELPER_INSTALL_DIR@")
-                "${KDE_INSTALL_LIBEXECDIR}")
-               (("@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
-                "${KDE_INSTALL_LIBEXECDIR}"))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-cmake-install-directories
+            (lambda _
+              ;; Make packages using kauth put their policy files and helpers
+              ;; into their own prefix.
+              (substitute* "KF5AuthConfig.cmake.in"
+                (("@KAUTH_POLICY_FILES_INSTALL_DIR@")
+                 "${KDE_INSTALL_DATADIR}/polkit-1/actions")
+                (("@KAUTH_HELPER_INSTALL_DIR@")
+                 "${KDE_INSTALL_LIBEXECDIR}")
+                (("@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
+                 "${KDE_INSTALL_LIBEXECDIR}"))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (setenv "DBUS_FATAL_WARNINGS" "0")
+                (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Execute actions as privileged user")
     (description "KAuth provides a convenient, system-integrated way to offload
@@ -1585,7 +1650,7 @@ utilities.")
 (define-public kcompletion
   (package
     (name "kcompletion")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1594,7 +1659,7 @@ utilities.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "191vid00zskvhl6dgj6yz9iyvwdcmg35l5gq68ggjr17cj59acsf"))))
+                "0fgz30fb6wp2jb7bii5wy6akdzjiqy73w5mnmv0hi15mj2jkpgdq"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -1610,7 +1675,7 @@ integrated it into your application's other widgets.")
 (define-public kcontacts
   (package
     (name "kcontacts")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1621,30 +1686,24 @@ integrated it into your application's other widgets.")
                (search-patches "kcontacts-incorrect-country-name.patch"))
               (sha256
                (base32
-                "0g3lg1i9rg7hjw7xjx9228sy54dy35lgwghcjds5cawszl5yi106"))))
+                "15x6f05ngs3nmxpdi11bi4k4zpjnvx5cy3yxbdklls3f2wpq6jd4"))))
     (build-system cmake-build-system)
     (native-inputs
-     (list extra-cmake-modules xorg-server)) ; for the tests
+     (list extra-cmake-modules xorg-server-for-tests)) ; for the tests
     (inputs
      (list qtbase-5))
     (propagated-inputs
      (list ;; As required by KF5ContactsConfig.cmake.
-          iso-codes kcodecs kconfig kcoreaddons qtdeclarative-5 ki18n))
+      iso-codes kcodecs kconfig kcoreaddons qtdeclarative-5 ki18n))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             ;; The test suite requires a running X server.
-             ;; Xvfb doesn't have proper glx support and needs a pixeldepth
-             ;; of 24 bit to avoid "libGL error: failed to load driver: swrast"
-             ;;                    "Could not initialize GLX"
-             (when tests?
-               (setenv "HOME" (getcwd))
-               (system "Xvfb :1 -screen 0 640x480x24 &")
-               (setenv "DISPLAY" ":1")
-               (invoke "ctest" "-E"
-                "(kcontacts-birthdaytest|kcontacts-testroundtrip|kcontacts-addresstest)")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda _
+              (setenv "HOME" (getcwd))
+              (system "Xvfb +extension GLX :1 -screen 0 640x480x24 &")
+              (setenv "DISPLAY" ":1"))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "API for contacts/address book data following the vCard standard")
     (description "This library provides a vCard data model, vCard
@@ -1656,7 +1715,7 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
 (define-public kcrash
   (package
     (name "kcrash")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1665,7 +1724,7 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "03ba3x9jgp15dxgwbjnv5s98f5di2z4ncp4hiv1qkyiibqqfx6kf"))))
+                "1990yfssxcmbpbq9pz2nv07fpnjih4q9ql2bz1nfnanrm858pi9y"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1680,7 +1739,7 @@ application crashes.")
 (define-public kdoctools
   (package
     (name "kdoctools")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1689,7 +1748,7 @@ application crashes.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ygpjasdynsmb3c8rdwnc5jminl5f34cmqnihsig831xsq8z6chs"))))
+                "0zi3va3jn4jps9h9h94ivxkzxw7v5vqwxgikb321hnnjgxy4nzwr"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1704,28 +1763,30 @@ application crashes.")
            perl-uri
            qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'cmake-find-docbook
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* (find-files "cmake" "\\.cmake$")
-               (("CMAKE_SYSTEM_PREFIX_PATH")
-                "CMAKE_PREFIX_PATH"))
-             (substitute* "cmake/FindDocBookXML4.cmake"
-               (("^.*xml/docbook/schema/dtd.*$")
-                "xml/dtd/docbook\n"))
-             (substitute* "cmake/FindDocBookXSL.cmake"
-               (("^.*xml/docbook/stylesheet.*$")
-                (string-append "xml/xsl/docbook-xsl-"
-                               ,(package-version docbook-xsl) "\n")))))
-         (add-after 'install 'add-symlinks
-           ;; Some package(s) (e.g. kdelibs4support) refer to this locale by a
-           ;; different spelling.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((xsl (string-append (assoc-ref outputs "out")
-                                       "/share/kf5/kdoctools/customization/xsl/")))
-               (symlink (string-append xsl "pt_br.xml")
-                        (string-append xsl "pt-BR.xml"))))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'cmake-find-docbook
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* (find-files "cmake" "\\.cmake$")
+                (("CMAKE_SYSTEM_PREFIX_PATH")
+                 "CMAKE_PREFIX_PATH"))
+              (substitute* "cmake/FindDocBookXML4.cmake"
+                (("^.*xml/docbook/schema/dtd.*$")
+                 "xml/dtd/docbook\n"))
+              (substitute* "cmake/FindDocBookXSL.cmake"
+                (("^.*xml/docbook/stylesheet.*$")
+                 (string-append "xml/xsl/docbook-xsl-"
+                                #$(package-version docbook-xsl)
+                                "\n")))))
+          (add-after 'install 'add-symlinks
+            ;; Some package(s) (e.g. kdelibs4support) refer to this locale by a
+            ;; different spelling.
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((xsl (string-append (assoc-ref outputs "out")
+                                        "/share/kf5/kdoctools/customization/xsl/")))
+                (symlink (string-append xsl "pt_br.xml")
+                         (string-append xsl "pt-BR.xml"))))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Create documentation from DocBook")
     (description "Provides tools to generate documentation in various format
@@ -1735,7 +1796,7 @@ from DocBook files.")
 (define-public kfilemetadata
   (package
     (name "kfilemetadata")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1744,18 +1805,20 @@ from DocBook files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1nsvslhs2kiff3r5ji8z931lh6srvjzzvwnv9cs0j74sr46c6rkn"))))
+                "0hhq8p6wpfbi33b604ls7q9309n6pm4aa4cgjwxrspn2q8yn6p7w"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               ;; FIXME: Test can't find audio/x-speex mimeinfo
-               ;; (but it can find audio/x-speex+ogg).
-               (invoke "ctest" "-E"
-			   "(usermetadatawritertest|embeddedimagedatatest|taglibextractortest)")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; FIXME: Test can't find audio/x-speex mimeinfo
+                ;; (but it can find audio/x-speex+ogg).
+                (invoke "ctest" "-E"
+                        "(usermetadatawritertest|embeddedimagedatatest|\
+taglibextractortest)")))))))
     (native-inputs (list extra-cmake-modules pkg-config))
     (inputs
      (list attr
@@ -1782,10 +1845,47 @@ used by file indexers to retrieve the metadata.  This library can also be used
 by applications to write metadata.")
     (license (list license:lgpl2.0 license:lgpl2.1 license:lgpl3))))
 
+(define-public kimageannotator
+  (package
+    (name "kimageannotator")
+    (version "0.6.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ksnip/kImageAnnotator")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1gm85d1cnhf51ssj0gs2253fifl48r05d3q5s93jwk3jkq01inll"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:configure-flags #~'("-DBUILD_TESTS=ON")
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda _
+                   ;; 1 test requires a running X server, it calls
+                   ;; 'XCloseDisplay'.
+                   (system "Xvfb :1 -screen 0 640x480x24 &")
+                   (setenv "DISPLAY" ":1")
+                   (invoke "ctest" "--test-dir" "tests"))))))
+    (native-inputs
+     (list qttools-5 xorg-server-for-tests))
+    (inputs
+     (list googletest qtsvg-5 kcolorpicker))
+    (propagated-inputs
+     (list qtbase-5))
+    (home-page "https://github.com/ksnip/kImageAnnotator")
+    (synopsis "Image annotating library")
+    (description "This library provides tools to annotate images.")
+    (license license:lgpl3+)))
+
 (define-public kimageformats
   (package
     (name "kimageformats")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1794,7 +1894,7 @@ by applications to write metadata.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0v4jr1lh2qjk453q8mpz94cd98k4kmjrykn8kxrd7zvrkaa4snfy"))))
+                "07myvknlvp28kn20l30x6q22fkva72qrfziryinxgsqlhgc3j87c"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -1803,29 +1903,31 @@ by applications to write metadata.")
            openexr-2 ; for OpenEXR high dynamic-range images
            qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; This test fails regularly (also at KDE CI, see
-         ;; https://build.kde.org/job/Frameworks%20kimageformats%20kf5-qt5%20XenialQt5.7/6/testReport/)
-         ;; delete offending portion
-         (add-after 'unpack 'neuter-read-xcf-test
-           (lambda _
-             (delete-file "autotests/read/xcf/simple-rgba-gimp-2.8.10.png")
-             (delete-file "autotests/read/xcf/simple-rgba-gimp-2.8.10.xcf")))
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             (setenv "QT_PLUGIN_PATH"
-                     (string-append (getcwd) "/bin:"
-                                    (getenv "QT_PLUGIN_PATH"))))))
-       ;; FIXME: The header files of ilmbase (propagated by openexr) are not
-       ;; found when included by the header files of openexr, and an explicit
-       ;; flag needs to be set.
-       #:configure-flags
-       (list (string-append "-DCMAKE_CXX_FLAGS=-I"
-                            (assoc-ref %build-inputs "ilmbase")
-                            "/include/OpenEXR"))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda _
+              ;; make Qt render "offscreen", required for tests
+              (setenv "QT_QPA_PLATFORM" "offscreen")
+              (setenv "QT_PLUGIN_PATH"
+                      (string-append (getcwd) "/bin:"
+                                     (getenv "QT_PLUGIN_PATH")))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (setenv "HOME"
+                        (getcwd))
+                ;; FIXME: I guess kde's qt no this fail.
+                ;; see https://invent.kde.org/frameworks/kimageformats/-/jobs/1046283
+                (invoke "ctest" "-E" "kimageformats-read-psd")))))
+      ;; FIXME: The header files of ilmbase (propagated by openexr) are not
+      ;; found when included by the header files of openexr, and an explicit
+      ;; flag needs to be set.
+      #:configure-flags #~(list (string-append "-DCMAKE_CXX_FLAGS=-I"
+                                               (assoc-ref %build-inputs
+                                                          "ilmbase")
+                                               "/include/OpenEXR"))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Plugins to allow QImage to support extra file formats")
     (description "This framework provides additional image format plugins for
@@ -1837,7 +1939,7 @@ formats.")
 (define-public kjobwidgets
   (package
     (name "kjobwidgets")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1846,7 +1948,7 @@ formats.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0f87n5d3h2f9y1z2imfd0jj9108wbcxg7dg4k1c53zar2lrfx4wc"))))
+                "0vhv9gx8qq73hvalcyx4g8c1ji9qxb2rn5wp4mdl7n9pypd0gscq"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -1861,7 +1963,7 @@ asynchronous jobs.")
 (define-public knotifications
   (package
     (name "knotifications")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1870,7 +1972,7 @@ asynchronous jobs.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "10whr3wjldaxdvbj6i250rqgsy2m1n606ja1yka571f1fz7laqcd"))))
+                "05qdmjjxj362zhwyk0vv83wfzsgjd4nxnvk2avhiscr2k46swn96"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules dbus pkg-config qttools-5))
@@ -1887,14 +1989,14 @@ asynchronous jobs.")
            qtspeech
            qtx11extras))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "HOME" (getcwd))
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "DBUS_FATAL_WARNINGS" "0")
+                              (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Desktop notifications")
     (description "KNotification is used to notify the user of an event.  It
@@ -1904,7 +2006,7 @@ covers feedback and persistent events.")
 (define-public kpackage
   (package
     (name "kpackage")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1913,7 +2015,7 @@ covers feedback and persistent events.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1234jq9qqhq2z5afkkniz6w5s1ab9r4x9wamq3c9y08nzjq634py"))))
+                "18185xi48an6fi0dinzfcc50lzq8cb5dx16sikmavcnhmfvlvw1g"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1925,31 +2027,36 @@ covers feedback and persistent events.")
            ki18n
            qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch
-           (lambda _
-             (substitute* "src/kpackage/package.cpp"
-               (("externalPaths.false.") "externalPaths(true)"))
-             ;; Make QDirIterator follow symlinks
-             (substitute* '("src/kpackage/packageloader.cpp")
-               (("^\\s*(const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories)(;)" _ a b)
-                (string-append a " | QDirIterator::FollowSymlinks" b))
-               (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
-                (string-append a " | QDirIterator::FollowSymlinks" b)))))
-         (add-after 'unpack 'patch-tests
-           (lambda _
-             ;; /bin/ls doesn't exist in the build-container use /etc/passwd
-             (substitute* "autotests/packagestructuretest.cpp"
-               (("(addDirectoryDefinition\\(\")bin(\".*\")bin(\".*\")bin\""
-                 _ a b c)
-                (string-append a "etc" b "etc" c "etc\""))
-               (("filePath\\(\"bin\", QStringLiteral\\(\"ls\"))")
-                "filePath(\"etc\", QStringLiteral(\"passwd\"))")
-               (("\"/bin/ls\"") "\"/etc/passwd\""))))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd)))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch
+            (lambda _
+              (substitute* "src/kpackage/package.cpp"
+                (("externalPaths.false.")
+                 "externalPaths(true)"))
+              ;; Make QDirIterator follow symlinks
+              (substitute* '("src/kpackage/packageloader.cpp")
+                (("^\\s*(const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories)(;)"
+                  _ a b)
+                 (string-append a " | QDirIterator::FollowSymlinks" b))
+                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)"
+                  _ a b)
+                 (string-append a " | QDirIterator::FollowSymlinks" b)))))
+          (add-after 'unpack 'patch-tests
+            (lambda _
+              ;; /bin/ls doesn't exist in the build-container use /etc/passwd
+              (substitute* "autotests/packagestructuretest.cpp"
+                (("(addDirectoryDefinition\\(\")bin(\".*\")bin(\".*\")bin\""
+                  _ a b c)
+                 (string-append a "etc" b "etc" c "etc\""))
+                (("filePath\\(\"bin\", QStringLiteral\\(\"ls\"))")
+                 "filePath(\"etc\", QStringLiteral(\"passwd\"))")
+                (("\"/bin/ls\"")
+                 "\"/etc/passwd\""))))
+          (add-before 'check 'check-setup
+            (lambda _
+              (setenv "HOME" (getcwd)))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Installation and loading of additional content as packages")
     (description "The Package framework lets the user install and load packages
@@ -1960,7 +2067,7 @@ were traditional plugins.")
 (define-public kpty
   (package
     (name "kpty")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1969,7 +2076,7 @@ were traditional plugins.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0arxbdxldwnrcg5x1vpvkwdd4hayrpqvn08jz6r7zb4s9h1582ww"))))
+                "11k1jv2wazlxbz5y7l94zsykcq544k1zbb49ximbdh45r3p5hdgw"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1978,13 +2085,13 @@ were traditional plugins.")
            ;; TODO: utempter, for managing UTMP entries
            qtbase-5))
     (arguments
-     `(#:tests? #f ; FIXME: 1/1 tests fail.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-tests
-           (lambda _
-             (substitute* "autotests/kptyprocesstest.cpp"
-               (("/bin/bash") (which "bash"))))))))
+     (list #:tests? #f ; FIXME: 1/1 tests fail.
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'patch-tests
+                          (lambda _
+                            (substitute* "autotests/kptyprocesstest.cpp"
+                              (("/bin/bash")
+                               (which "bash"))))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Interfacing with pseudo terminal devices")
     (description "This library provides primitives to interface with pseudo
@@ -1995,7 +2102,7 @@ and communicating with them using a pty.")
 (define-public kunitconversion
   (package
     (name "kunitconversion")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2004,7 +2111,7 @@ and communicating with them using a pty.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0lhyg1d1k25kqk94lzy8mb06p4c17limmcrzirnsnxjvhjrc6r05"))))
+                "1kwz5wx0s522mwb5gxjz6cxqdkzflcckmra9qikpjrzsngamrq3j"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ;; Requires network.
     (native-inputs
@@ -2022,7 +2129,7 @@ gallons).")
 (define-public syndication
   (package
     (name "syndication")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2031,7 +2138,7 @@ gallons).")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "04py880hxkvidydsqcyjbkq0wv9cp42d7svkdgf74fmzfyfrmrax"))))
+                "0q1yhziwxj2dllqyapkqnsskhvzsjm5iz2my4pn8n0lfm90rdf8h"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -2054,7 +2161,7 @@ between feed formats.")
 (define-public baloo
   (package
     (name "baloo")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2063,7 +2170,7 @@ between feed formats.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0x515lnvrzlnsv5i924q17mzi88k00krj90myad17s0g7p5pi1rw"))))
+                "1n65nhr45vl0banbdjxhjf6wk5ypdx06qygqzqjbd9xbv7djj883"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kcoreaddons kfilemetadata))
@@ -2088,24 +2195,14 @@ between feed formats.")
            qtdeclarative-5
            solid))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-failing-test
-           (lambda _
-             ;; FIXME: kinotifytest broke in 5.70.0 with commit 73183acf00 and
-             ;; seems like an oversight.  Reverting the commit makes it pass,
-             ;; but causes other problems.  Since just the test file names are
-             ;; broken, disabling it should be safe.  Try enabling for > 5.70.0.
-             (substitute* "autotests/unit/file/CMakeLists.txt"
-               ;; The test only runs on GNU/Linux, piggy-back on the check.
-               (("CMAKE_SYSTEM_NAME MATCHES \"Linux\"" all)
-                (string-append all " AND NOT TRUE")))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (setenv "HOME" (getcwd))
-               (invoke "dbus-launch" "ctest")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "DBUS_FATAL_WARNINGS" "0")
+                              (setenv "HOME"
+                                      (getcwd))
+                              (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "File searching and indexing")
     (description "Baloo provides file searching and indexing.  It does so by
@@ -2116,7 +2213,7 @@ maintaining an index of the contents of your files.")
 (define-public kactivities-stats
   (package
     (name "kactivities-stats")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2125,7 +2222,7 @@ maintaining an index of the contents of your files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0zvw3km1wf91wl9xbjvawjia0847kbs3js4nbf3d0z87l5h6rbx8"))))
+                "03vpangw2zl2577vhcn0w1pp2hv3jgna79b18wv7i13s78v8k6ny"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -2142,7 +2239,7 @@ by which applications, and what documents have been linked to which activity.")
 (define-public kbookmarks
   (package
     (name "kbookmarks")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2151,7 +2248,7 @@ by which applications, and what documents have been linked to which activity.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1rpjqz2xnpb2wp2k3pjdclbkb0p96y48x6h8l056nr93alxyrqvi"))))
+                "1547i2x7mrryg4w6ij47f37savmp1jmq8wp2nhiij65cdnla3qbb"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kwidgetsaddons))
@@ -2183,7 +2280,7 @@ using the XBEL format.")
 (define-public kcmutils
   (package
     (name "kcmutils")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2192,28 +2289,34 @@ using the XBEL format.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0jqkg4i16jnxricrhi1cbvv7gjjj7ry3z36mzh11h48ml7rl05qx"))))
+                "1zhs84wrd8fkgzxwf793c6yha5nsnid4id8vs4iy7gcyahyajchr"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kconfigwidgets kservice))
     (native-inputs
      (list extra-cmake-modules))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch
-           (lambda _
-             (substitute* "src/kpluginselector.cpp"
-               ;; make QDirIterator follow symlinks
-               (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
-                (string-append a " | QDirIterator::FollowSymlinks" b)))
-             (substitute* "src/kcmoduleloader.cpp"
-               ;; print plugin name when loading fails
-               (("^\\s*(qWarning\\(\\) << \"Error loading) (plugin:\")( << loader\\.errorString\\(\\);)" _ a b c)
-                (string-append a " KCM plugin\" << mod.service()->library() << \":\"" c)))))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch
+            (lambda _
+              (substitute* "src/kpluginselector.cpp"
+                ;; make QDirIterator follow symlinks
+                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)"
+                  _ a b)
+                 (string-append a
+                                " | QDirIterator::FollowSymlinks" b)))
+              (substitute* "src/kcmoduleloader.cpp"
+                ;; print plugin name when loading fails
+                (("^\\s*(qWarning\\(\\) << \"Error loading) (plugin:\")( << loader\\.errorString\\(\\);)"
+                  _ a b c)
+                 (string-append a
+                                " KCM plugin\" << mod.service()->library() << \":\""
+                                c)))))
+          (add-before 'check 'check-setup
+            (lambda _
+              (setenv "QT_QPA_PLATFORM" "offscreen"))))))
     (inputs
      (list kauth
            kcodecs
@@ -2238,7 +2341,7 @@ KCModules can be created with the KConfigWidgets framework.")
 (define-public kconfigwidgets
   (package
     (name "kconfigwidgets")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2247,7 +2350,7 @@ KCModules can be created with the KConfigWidgets framework.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "05bwldqc5k6dlzsxjby5565sch6i0mh7jg5cbyjz24xb1fpj0d7b"))))
+                "1raz1bxra0dvcwwzvhfmz1y0hvfrffpdymd116xyi5lnavyzdp46"))))
     (build-system qt-build-system)
     (propagated-inputs
      (list kauth kcodecs kconfig kwidgetsaddons))
@@ -2261,20 +2364,21 @@ KCModules can be created with the KConfigWidgets framework.")
            qtbase-5
            qttools-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch
-           (lambda _
-             (substitute* "src/khelpclient.cpp"
-               ;; make QDirIterator follow symlinks
-               (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
-                (string-append a " | QDirIterator::FollowSymlinks" b)))
-             (substitute* "CMakeLists.txt"
-               (("5\\.90\\.0") "5.98.0"))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "ctest" "-E" "kstandardactiontest")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch
+            (lambda _
+              (substitute* "src/khelpclient.cpp"
+                ;; make QDirIterator follow symlinks
+                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
+                 (string-append a " | QDirIterator::FollowSymlinks" b)))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (setenv "HOME"
+                        (getcwd))
+                (invoke "ctest" "-E" "kstandardactiontest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Widgets for configuration dialogs")
     (description "KConfigWidgets provides easy-to-use classes to create
@@ -2286,7 +2390,7 @@ their settings.")
 (define-public kdeclarative
   (package
     (name "kdeclarative")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2295,7 +2399,7 @@ their settings.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y5scmcnzhwvyb7x6fdb59xgdhghw8v9i3r05gx1x7g1gfsw0wh6"))))
+                "1kdg18a2xpgl6xkrk68nnbj57nwn8rv5yd5q5bfbfc8chibk9y4z"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kconfig kpackage qtdeclarative-5))
@@ -2319,24 +2423,24 @@ their settings.")
            qtdeclarative-5
            solid))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'start-xorg-server
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The test suite requires a running X server, setting
-             ;; QT_QPA_PLATFORM=offscreen does not suffice.
-             (system "Xvfb :1 -screen 0 640x480x24 &")
-             (setenv "DISPLAY" ":1")))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "HOME" (getcwd))
-               (setenv "XDG_RUNTIME_DIR" (getcwd))
-               (setenv "QT_QPA_PLATFORM" "offscreen")
-               (setenv "DBUS_FATAL_WARNINGS" "0")
-               (invoke "dbus-launch" "ctest"
-                       "-E" ; FIXME: test fails.
-                       "fullmodelaccesstest")))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'check 'start-xorg-server
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; The test suite requires a running X server, setting
+                   ;; QT_QPA_PLATFORM=offscreen does not suffice.
+                   (system "Xvfb :1 -screen 0 640x480x24 &")
+                   (setenv "DISPLAY" ":1")))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (setenv "HOME"
+                             (getcwd))
+                     (setenv "XDG_RUNTIME_DIR"
+                             (getcwd))
+                     (setenv "QT_QPA_PLATFORM" "offscreen")
+                     (setenv "DBUS_FATAL_WARNINGS" "0")
+                     (invoke "dbus-launch" "ctest")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Integration of QML and KDE work spaces")
     (description "KDeclarative provides integration of QML and KDE work spaces.
@@ -2349,7 +2453,7 @@ that offer bindings to some of the Frameworks.")
 (define-public kded
   (package
     (name "kded")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2358,7 +2462,7 @@ that offer bindings to some of the Frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1k8yxdnihfvvdjmw7lmd62vi5k1hpvjdcwd7njqxz6178iq7dd75"))))
+                "08aa3vjzr0mj4jahzqd2z7k8whavyyvcyhk67swqlpil9rmxm0s1"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -2381,7 +2485,7 @@ started on demand.")
 (define-public kdesignerplugin
   (package
     (name "kdesignerplugin")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2390,7 +2494,7 @@ started on demand.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "17b0javl6k5zcmx04aqzmh3qdgwvzhf62x603m4pg6xbl3zns67g"))))
+                "0ibd1sgyiawl7b25ag1qs80s0vai16ab1zmdrhx85gd1583vkyab"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools qttools-5))
@@ -2410,7 +2514,7 @@ ini-style description files.")
 (define-public kdesu
   (package
     (name "kdesu")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2419,7 +2523,7 @@ ini-style description files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "15fbb7zifk4lhnlwvqhs9svzb80qwms03zbrjfnsc1n1wyyfk7v2"))))
+                "1rhygp1r6099zrmnfvl2ldpm6rsilcy2x3bcb580bvqd536ir2yh"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kpty))
@@ -2437,7 +2541,7 @@ with su and ssh respectively.")
 (define-public kemoticons
   (package
     (name "kemoticons")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2446,7 +2550,7 @@ with su and ssh respectively.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0f3d0jmpnqkrjn95sbvjzda923rfdgrlxd4k58pmzd0bblxkcxh2"))))
+                "0p7q5s9mv7j0sy4mm513warzhqm44wiz4vxcp9kxbqcsw0awfad6"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kservice))
@@ -2455,13 +2559,13 @@ with su and ssh respectively.")
     (inputs
      (list karchive kconfig kcoreaddons qtbase-5))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd))
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-before 'check 'check-setup
+                          (lambda _
+                            (setenv "HOME"
+                                    (getcwd))
+                            ;; make Qt render "offscreen", required for tests
+                            (setenv "QT_QPA_PLATFORM" "offscreen"))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Convert text emoticons to graphical emoticons")
     (description "KEmoticons converts emoticons from text to a graphical
@@ -2473,7 +2577,7 @@ emoticons coming from different providers.")
 (define-public kglobalaccel
   (package
     (name "kglobalaccel")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2482,7 +2586,7 @@ emoticons coming from different providers.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1vr6k7lpxsxa6in60ld2wcdqfpaan5xgbmwm3xyr584x6pv737cl"))))
+                "0sf6v86pfhxva7n465p9pfidyzfjviam5kk8d6lrc23zjb559f3w"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config qttools-5))
@@ -2506,7 +2610,7 @@ window does not need focus for them to be activated.")
 (define-public kiconthemes
   (package
     (name "kiconthemes")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2515,7 +2619,7 @@ window does not need focus for them to be activated.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1qmld8xgabmwx2dh5395pll0a0jgirxhlbqv6aph76jg4lvynkqx"))))
+                "0r8lz4jkb1g46ll79pdv8bmig1ij8fp7k6cpcy9nhkkhq0ra7svk"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5 shared-mime-info))
@@ -2553,7 +2657,7 @@ in applications using the KDE Frameworks.")
 (define-public kinit
   (package
     (name "kinit")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2562,7 +2666,7 @@ in applications using the KDE Frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "04654hz3yipnlhy5gz3bkh988fcfl1lv7608k4xa5qnbsxaqh141"))
+                "1i03gn0s01jg2ridlymxf34ib88rkf30yz27h38g9fzaijjr46fi"))
               ;; Use the store paths for other packages and dynamically loaded
               ;; libs
               (patches (search-patches "kinit-kdeinit-extra_libs.patch"))))
@@ -2622,7 +2726,7 @@ consumption.")
 (define-public kio
   (package
     (name "kio")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2631,7 +2735,7 @@ consumption.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0z1ikpa3an3qmd26h2v48kxxw1jph21i12x4nawvc4x1dp4vkm1d"))
+                "1v5bpj90s5pwdvdkzcfpfgsgym7pxb3r22m4r7w9piq6n9s4c122"))
               (patches (search-patches "kio-search-smbd-on-PATH.patch"))))
     (build-system cmake-build-system)
     (propagated-inputs
@@ -2713,6 +2817,7 @@ consumption.")
                                        "|commandlauncherjob_servicetest"
                                        "|kiowidgets-kdirmodeltest"
                                        "|kiowidgets-kurifiltertest-colon-separator"
+                                       "|kiofilewidgets-kfilewidgettest"
                                        "|kiowidgets-kurifiltertest-space-separator)")))))
           (add-after 'install 'add-symlinks
             ;; Some package(s) (e.g. bluedevil) refer to these service types by
@@ -2736,7 +2841,7 @@ KIO enabled infrastructure.")
 (define-public knewstuff
   (package
     (name "knewstuff")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2745,12 +2850,12 @@ KIO enabled infrastructure.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "09mxzpv0l1i5ml963gdnji8rskmi8b2f0hp4rn6ibkcj00z48fgy"))))
+                "1hlzkacybf35lnl92vk8xkapkq5pygy8fqngskvj9f4692k6562s"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list attica kservice kxmlgui))
     (native-inputs
-     (list extra-cmake-modules))
+     (list extra-cmake-modules qttools-5))
     (inputs
      (list karchive
            kauth
@@ -2790,7 +2895,7 @@ specification.")
 (define-public knotifyconfig
   (package
     (name "knotifyconfig")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2799,7 +2904,7 @@ specification.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1qlmgr5rifygp8zk8qfjwm6k72kfyj8x6hvqwy2a59lfi3wgbm07"))))
+                "1dby6ycqicsij9ngyk6ab7v14ybnsmxd51fkcy25k4c326w6yyca"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -2832,7 +2937,7 @@ notifications which can be embedded in your application.")
 (define-public kparts
   (package
     (name "kparts")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2841,7 +2946,7 @@ notifications which can be embedded in your application.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "01gcnywbzrgwlk4cws2rr139r95r201yfal1af3jkd7g2x499vgr"))))
+                "0fckq2dpdqkqyaig61fnjanw2y9j28fckx1zrywnvyzd8q6hs4db"))))
     (build-system qt-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -2882,7 +2987,7 @@ widgets with a user-interface defined in terms of actions.")
 (define-public kpeople
   (package
     (name "kpeople")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2891,7 +2996,7 @@ widgets with a user-interface defined in terms of actions.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0wxy8pxkbfqbb4i9v3q912shzck56bk6xra3blhwva82qm9rps0f"))))
+                "0k2jnyp05rnjb4j31w4xi95qwparkqvp1m9664gvygwp9xxlnf4k"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -2918,7 +3023,7 @@ to easily extend the contacts collection.")
 (define-public krunner
   (package
     (name "krunner")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2927,8 +3032,8 @@ to easily extend the contacts collection.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0kch839xw09h1lddqgdcfwniq6rza5wdyyzcx99hcasn7l60nhsj"))))
-    (build-system cmake-build-system)
+                "0yam10c31jzwsl4qzrrcr4caxk79jqg1fyrsavjzg14ahsknb5ih"))))
+    (build-system qt-build-system)
     (propagated-inputs
      (list plasma-framework))
     (native-inputs
@@ -2953,7 +3058,6 @@ to easily extend the contacts collection.")
            kwidgetsaddons
            kwindowsystem
            kxmlgui
-           qtbase-5
            qtdeclarative-5
            solid
            threadweaver))
@@ -2987,7 +3091,7 @@ typed.")
 (define-public kservice
   (package
     (name "kservice")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2996,7 +3100,7 @@ typed.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0lgwpcdkkbxwq84zp5aymrdwy0iacqxz5ckc89pymcm0bacyhl31"))))
+                "10dfnq3x9b30kbkpq1ifg6ywj8dmdqvd1szgrwf71077yzgsh9w2"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kconfig kcoreaddons kdoctools))
@@ -3026,7 +3130,7 @@ typed.")
                (setenv "HOME" (getcwd))
                (setenv "QT_QPA_PLATFORM" "offscreen")
                ;; Disable failing tests.
-               (invoke "ctest" "-E" "(kautostarttest|ksycocatest)")))))))
+               (invoke "ctest" "-E" "(kautostarttest|ksycocatest|kapplicationtradertest)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Plugin framework for desktop services")
     (description "KService provides a plugin framework for handling desktop
@@ -3038,7 +3142,7 @@ types or handled by application specific code.")
 (define-public ktexteditor
   (package
     (name "ktexteditor")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3047,7 +3151,7 @@ types or handled by application specific code.")
                     "ktexteditor-" version ".tar.xz"))
               (sha256
                (base32
-                "1pazi9rz4v95g31s7d26yla8rcb0cgd08mlmdcasywsaxc8nn7vw"))))
+                "0raz9h9y7zfynvacg4grwj0sd4v6w2kwpjkirvjr14zmfjq92mif"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kparts
@@ -3115,7 +3219,7 @@ library.")
 (define-public ktextwidgets
   (package
     (name "ktextwidgets")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3124,7 +3228,7 @@ library.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "14ivmpng7x9rsk3x6kyd86jabzqxgjcdrma1im44wacnvisi4llk"))))
+                "1qz1ayrrqxarhx4h24ym2hm8gkjskgdi268jv16yvd33b122fv2c"))))
     (build-system qt-build-system)
     (propagated-inputs
      (list ki18n sonnet))
@@ -3153,7 +3257,7 @@ It supports rich text as well as plain text.")
 (define-public kwallet
   (package
     (name "kwallet")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3162,7 +3266,7 @@ It supports rich text as well as plain text.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0kwxkxlk0xlxkjgpjpb40xfl2l9hnhpymb4lxw4zwlxjn81r6sab"))))
+                "1zx80h8mj3ijj1mm5m3396vwkfhpdm8qpb63rhg8szm9hwqhd5sq"))))
     (build-system cmake-build-system)
     (arguments
      (list #:phases
@@ -3204,7 +3308,7 @@ the passwords on KDE work spaces.")
 (define-public kxmlgui
   (package
     (name "kxmlgui")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3213,7 +3317,7 @@ the passwords on KDE work spaces.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "08n5l3zgkh0fxaqwrfx5mk4j5wq9ylkpxd37751qcivpag7l0x45"))))
+                "0v6nzq86wvbalbqq3dp47vymp31ws098c8dq0g43f6g7q3xjfxa1"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kconfig kconfigwidgets))
@@ -3242,8 +3346,7 @@ the passwords on KDE work spaces.")
              (when tests?
                (setenv "HOME" (getcwd))
                (setenv "QT_QPA_PLATFORM" "offscreen") ;; These tests fail
-               (invoke "ctest" "-E"
-			   "(ktoolbar_unittest|kxmlgui_unittest)")))))))
+               (invoke "ctest" "-E" "(ktoolbar_unittest|kxmlgui_unittest)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Framework for managing menu and toolbar actions")
     (description "KXMLGUI provides a framework for managing menu and toolbar
@@ -3256,7 +3359,7 @@ descriptions for integrating actions from plugins.")
 (define-public kxmlrpcclient
   (package
     (name "kxmlrpcclient")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3265,7 +3368,7 @@ descriptions for integrating actions from plugins.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "09apfrkgvvzv8zwxyjbi5qb145a9awirk02nx474bshgypfqslpb"))))
+                "0pf5c5ja1mwdlf9pmc2601frwskkzhksz0n8w4qcwmwbaxrbspv0"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kio))
@@ -3299,7 +3402,7 @@ setUrl, setUserAgent and call.")
 (define-public plasma-framework
   (package
     (name "plasma-framework")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3308,7 +3411,7 @@ setUrl, setUserAgent and call.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1bmwvk0pj0bnb8qhcl0bz82r63nls6h7lzzmkfkdwcwmjifmiqg4"))))
+                "131zxamyim4bpk006nmfw2zmcay5qnmm7lmy8rvcxn96vflrs6bb"))))
     (build-system cmake-build-system)
     (propagated-inputs
      (list kpackage kservice))
@@ -3348,17 +3451,20 @@ setUrl, setUserAgent and call.")
                   qtx11extras
                   solid))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "HOME" (getcwd))
-               (setenv "QT_QPA_PLATFORM" "offscreen") ;; These tests fail
-               (invoke "ctest" "-E" (string-append "(plasma-dialogstatetest"
-                                                   "|plasma-iconitemtest"
-                                                   "|plasma-themetest"
-                                                   "|dialognativetest)"))))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (setenv "HOME"
+                             (getcwd))
+                     (setenv "QT_QPA_PLATFORM" "offscreen") ;; These tests fail
+                     (invoke "ctest" "-E"
+                             (string-append "(plasma-dialogstatetest"
+                                            "|plasma-iconitemtest"
+                                            "|plasma-themetest"
+                                            "|iconitemhidpitest"
+                                            "|dialognativetest)"))))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Libraries, components and tools of Plasma workspaces")
     (description "The plasma framework provides QML components, libplasma and
@@ -3369,7 +3475,7 @@ script engines.")
 (define-public purpose
   (package
     (name "purpose")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3378,7 +3484,7 @@ script engines.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0g9ykhsn9dl3y3qp4wm3r7bkdhpl9mcbg671wa26qx3ba8a2jynr"))))
+                "0gzgdycf96z0x61vs08dh46n9c2zc11zpjscfwzhrg2k9wsb90qd"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -3393,8 +3499,8 @@ script engines.")
            qtbase-5
            qtdeclarative-5))
     (arguments
-     `(#:tests? #f  ;; seem to require network; don't find QTQuick components
-       #:configure-flags '("-DBUILD_TESTING=OFF"))) ; not run anyway
+     (list #:tests? #f ;; seem to require network; don't find QTQuick components
+           #:configure-flags #~'("-DBUILD_TESTING=OFF"))) ; not run anyway
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Offers available actions for a specific purpose")
     (description "This framework offers the possibility to create integrate
@@ -3424,6 +3530,43 @@ need.")
 (define kinit-bootstrap
   ((package-input-rewriting `((,kdbusaddons . ,kdbusaddons-bootstrap))) kinit))
 
+(define-public ktextaddons
+  (package
+    (name "ktextaddons")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://kde/stable/" name "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0ds6506il3vmqhpzd1dqcpm19yd80ijibfncr9mlhq4kvj7vnjl9"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda _
+                   (setenv "HOME" (getcwd))
+                   ;; XXX: 6 tests failed due to:
+                   ;;   missing icons
+                   ;;   translators plugins not available during tests
+                   (invoke "ctest" "-E"
+                           "(grammalecteresultwidgettest|grammalecteconfigwidgettest||grammalecteresultjobtest|languagetoolconfigwidgettest|translator-translatorwidgettest|translator-translatorengineloadertest)"))))))
+    (native-inputs
+     (list extra-cmake-modules qttools-5))
+    (inputs
+     (list karchive kconfigwidgets kcoreaddons ki18n kxmlgui
+           qtbase-5 qtkeychain))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Various text handling addons")
+    (description "This library provides text addons (autocorrection, text to
+speak, grammar checking, text translator, emoticon support) for Qt
+applications.")
+    (license
+     (list license:lgpl2.0+ license:bsd-3 license:gpl2+ license:cc0))))
+
 
 ;; Tier 4
 ;;
@@ -3435,7 +3578,7 @@ need.")
 (define-public kde-frameworkintegration
   (package
     (name "kde-frameworkintegration")
-    (version "5.98.0")
+    (version "5.108.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3444,7 +3587,7 @@ need.")
                     "frameworkintegration-" version ".tar.xz"))
               (sha256
                (base32
-                "1mrangjj8lhm4njpkhqna2zwnidkd9crs23gj6kdlwzmiknypi6q"))))
+                "09zba76xihqs2dpwm4gh7p36nj876ssa2gah55vl362wsj7xgf21"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -3489,7 +3632,7 @@ workspace.")
 (define-public kdelibs4support
   (package
     (name "kdelibs4support")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -3498,7 +3641,7 @@ workspace.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0hyyrxic1rkw2jrr92rnmbk6bqkfrcnpc917vs7xyansk9799b8f"))))
+        (base32 "1pqpcn4i6zcli8a2yf7fda6rwr0vs55jd9bjl0fgallyd6wl8qkf"))))
     (build-system cmake-build-system)
     (native-inputs
      (list dbus
@@ -3605,7 +3748,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
 (define-public khtml
   (package
     (name "khtml")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -3614,7 +3757,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0bflwrp6i2w6a3fq2m2df655495rpnsmqcm7w1f1dzfndc6yd9i5"))))
+        (base32 "0kasxgkxfibdj81a6iiv4ciqy5fd180lsk9sa1byd8y0bydd8kjv"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules perl))
@@ -3655,7 +3798,7 @@ technology and using KJS for JavaScript support.")
 (define-public kjs
   (package
     (name "kjs")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -3664,7 +3807,7 @@ technology and using KJS for JavaScript support.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "03is1a5b1sfh1nd011lchgir9nrywvax06ilg9y7z0vsn0ick7ik"))))
+        (base32 "0xwih1jrdkgymr29cqr2jbj7byf8kqnbapr7wc8s0jxm5cwj2fgh"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools perl pkg-config))
@@ -3684,7 +3827,7 @@ support.")
 (define-public kjsembed
   (package
     (name "kjsembed")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -3693,7 +3836,7 @@ support.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0zb4vr0hp73lzc1gfnpq1grwmlpdvnp8awf3ydx4vqjh9n6jbaf2"))))
+        (base32 "1nfi9mfph3yjglafm8clw8d1z4f4h9b71j5z4l50qsds65yv9b9a"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools qttools-5))
@@ -3708,7 +3851,7 @@ QObjects, so you can script your applications.")
 (define-public kmediaplayer
   (package
     (name "kmediaplayer")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -3717,7 +3860,7 @@ QObjects, so you can script your applications.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0wcv99xgg9pxijbjl4cmsgmpwb893ira6wd3ys5ihk2nakbvd09x"))))
+        (base32 "1vkx11736wq0idxrzmfg6s2lcrilgl7yh7a97la6c3qqj2aggi08"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools qttools-5))
@@ -3744,7 +3887,7 @@ KParts instead.")
 (define-public kross
   (package
     (name "kross")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -3753,7 +3896,7 @@ KParts instead.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0yjn66r44jxlrm4vz1nf8s64kcw7lmarjpqz1mcgb1n4jc28hs60"))))
+        (base32 "0j459d9610aayvzb1d9m045c71dmkgqx5bsx3lv8x1wffk8064sd"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools qttools-5))
@@ -3786,7 +3929,7 @@ offers abstract functionality to deal with scripts.")
 (define-public kdav
   (package
     (name "kdav")
-    (version "5.98.0")
+    (version "5.108.0")
     (source
      (origin
        (method url-fetch)
@@ -3794,20 +3937,21 @@ offers abstract functionality to deal with scripts.")
                            (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "02474a3k7yqgnb1sbxbnm6l4cahn88y2631jvkq9xlmcx7xs2dzi"))))
+        (base32 "0knpyzdfa0m1pyakq32pw2hwbaq2dkqj87p3n6p86wlf2rn66vir"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
     (inputs
      (list kcoreaddons ki18n kio qtbase-5 qtxmlpatterns))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests? ;; Seems to require network.
-               (invoke "ctest" "-E"
-                       "(kdav-davcollectionsmultifetchjobtest|kdav-davitemfetchjob)")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                               ;; Seems to require network.
+                              (invoke "ctest" "-E"
+                                      "(kdav-davcollectionsmultifetchjobtest|\
+kdav-davitemfetchjob)")))))))
     (home-page "https://invent.kde.org/frameworks/kdav")
     (synopsis "DAV protocol implementation with KJobs")
     (description "This is a DAV protocol implementation with KJobs.  Calendars
diff --git a/gnu/packages/kde-games.scm b/gnu/packages/kde-games.scm
index 9be889f6aa..dc3e81170c 100644
--- a/gnu/packages/kde-games.scm
+++ b/gnu/packages/kde-games.scm
@@ -27,6 +27,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system qt)
+  #:use-module (guix build-system trivial)
+  #:use-module (guix gexp)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gl)
@@ -37,19 +39,20 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages xiph))
 
 (define-public ktuberling
   (package
     (name "ktuberling")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ktuberling-" version ".tar.xz"))
       (sha256
-       (base32 "19kyk7r7lkzwcvhhn1jjgrcdkq8gfmzgyrvvcbm4qkx7jd27v1ia"))))
+       (base32 "0zk7wijp425657s2j7xq7mhybgyddpam88ih8i0sbpcs0sliyz7k"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools perl))
@@ -91,14 +94,14 @@ This package is part of the KDE games module.")
 (define-public picmi
   (package
     (name "picmi")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/picmi-" version ".tar.xz"))
       (sha256
-       (base32 "0nn00sila4zn4r28dh84jvqqrrs31sh9vwd76nalm7y14xrxwn46"))))
+       (base32 "1x1iv6a840jwldfpx44wvh1vki1jz1hixzvzhdfx2mhw05v91fjx"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -127,14 +130,14 @@ This package is part of the KDE games module.")
 (define-public kolf
   (package
     (name "kolf")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kolf-" version ".tar.xz"))
        (sha256
-        (base32 "0mmmj9rxrbpf9clj49zgflrlic8qafzw2r2by5knhsn15mq59bd3"))))
+        (base32 "0wbdpclc6nimjzs2pqbzaxnqn516hci1yk1dgig0jgdy1jv2nyhv"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -174,15 +177,33 @@ This package is part of the KDE games module.")
 (define-public libkmahjongg
   (package
     (name "libkmahjongg")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/libkmahjongg-" version ".tar.xz"))
       (sha256
-       (base32 "1y123bygi4iil8qglv2fx81qnlqpjpx3s4fmq8sffkilcz875nw8"))))
+       (base32 "1a0c0q34h5yxwx76y6934ibn6hm1ip1hc2xvl11q1kaazq0alca3"))))
     (build-system qt-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-tileset-dir
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              ;; Add "$out/share" to XDG_DATA_DIRS so that the default tileset
+              ;; is always available.
+              (substitute* "src/kmahjonggtileset.cpp"
+                (("_inited = true;")
+                 (format #f "QByteArray x = qgetenv(\"XDG_DATA_DIRS\");
+if (!x.isEmpty()) {
+  QString datadirs = QString::fromLocal8Bit(x) + QLatin1String(\":~a\");
+  qputenv(\"XDG_DATA_DIRS\", datadirs.toLocal8Bit());
+}
+_inited = true;"
+                         (string-append
+                          (assoc-ref outputs "out") "/share")))))))))
     (native-inputs
      (list extra-cmake-modules))
     (inputs
@@ -205,14 +226,14 @@ other Mah Jongg like games.")
 (define-public kmahjongg
   (package
     (name "kmahjongg")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kmahjongg-" version ".tar.xz"))
       (sha256
-       (base32 "0lvia7ghnp8wx2xndzipv8grdsdn3i96xlsy6wspna1k884x8ylw"))))
+       (base32 "1q2aq8y3c4a84rjvqk4gz6mlyflfnzw6im68p96wmcn98s5gsc22"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -244,14 +265,14 @@ This package is part of the KDE games module.")
 (define-public kshisen
   (package
     (name "kshisen")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kshisen-" version ".tar.xz"))
       (sha256
-       (base32 "004qr0kmw0c6ahif1mf2f88a849ws3kap7p2ksvljmyyl38x2sbs"))))
+       (base32 "0bfk6nbwl35sfqxhf7cdv3n61ybi5962i2lvg7m1vlpp21q0diz8"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules
@@ -283,14 +304,14 @@ This package is part of the KDE games module.")
 (define-public kajongg
   (package
     (name "kajongg")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kajongg-" version ".tar.xz"))
       (sha256
-       (base32 "15b2l0zsyzrir791w9sdf65kvn6528b8vxdrya3f425nvsxsx7ix"))))
+       (base32 "16v87x0qikfk9jpp8dfxnb7mnjzzi0qlkp5lbn2xypkfhqaz99fi"))))
     (build-system qt-build-system)
     (arguments
      `(#:phases
@@ -300,7 +321,15 @@ This package is part of the KDE games module.")
              (substitute* "src/mjresource.py"
                (("'share', 'kmahjongglib'" all)
                 (string-append "'" (assoc-ref inputs "libkmahjongg")
-                               "/share', 'kmahjongglib'")))))
+                               "/share', 'kmahjongglib'")))
+             (substitute* "src/sound.py"
+               (("oggBinary = 'ogg123'")
+                (format #f "oggBinary = '~a'"
+                        (search-input-file inputs "bin/ogg123"))))
+             (substitute* "src/common.py"
+               (("interpreterName = 'python3'")
+                (format #f "interpreterName = '~a'"
+                        (search-input-file inputs "bin/python3"))))))
          (add-after 'qt-wrap 'wrap
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -327,7 +356,8 @@ This package is part of the KDE games module.")
            python-qtpy
            python-zope-interface
            qtbase-5
-           qtsvg-5))
+           qtsvg-5
+           vorbis-tools))
     (home-page "https://apps.kde.org/kajongg/")
     (synopsis "Classical Mah Jongg game for 4 players")
     (description "Kajongg is the ancient Chinese board game for 4 players.
@@ -346,14 +376,14 @@ This package is part of the KDE games module.")
 (define-public kbreakout
   (package
     (name "kbreakout")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kbreakout-" version ".tar.xz"))
       (sha256
-       (base32 "1pvxxl7m46ihjkzaq261xfsynikyrbrr67d4vh5pxfj6pipzrgkp"))))
+       (base32 "08fq0s1c71ag6jzyxz6spc5ylmzpbqpyqi9lqjk0x7y7brkfk9fq"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -383,14 +413,14 @@ This package is part of the KDE games module.")
 (define-public kmines
   (package
     (name "kmines")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kmines-" version ".tar.xz"))
       (sha256
-       (base32 "1w6bqlzhbm3vc09jyxfg8vgn0a2nknfz1shbsfamc36jsy2sr758"))))
+       (base32 "0x301dsppn0sav31ds5hpbfkbbisjg640ri13103s1jn0y2b90b9"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -420,14 +450,14 @@ This package is part of the KDE games module.")
 (define-public konquest
   (package
     (name "konquest")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/konquest-" version ".tar.xz"))
       (sha256
-       (base32 "1kylv730plii7grzccaclg5lkmgwhdgh2ya7h7lpnb8zaapy3kbr"))))
+       (base32 "0svzaibs8v1xd36ysj3wk7sxma26fl5pz6yp774jg0g9zi9rlkff"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -459,14 +489,14 @@ This package is part of the KDE games module.")
 (define-public kbounce
   (package
     (name "kbounce")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kbounce-" version ".tar.xz"))
       (sha256
-       (base32 "187f0hz19xj17h5dzj0nw3r9zas3sppiswhgnzma9snl1w0rfzwh"))))
+       (base32 "06b0q4f4yn8m8gy7wgax54ldwnkgykr8yfr2h0ih8mfg3w8xsx7s"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -497,14 +527,14 @@ This package is part of the KDE games module.")
 (define-public kblocks
   (package
     (name "kblocks")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kblocks-" version ".tar.xz"))
       (sha256
-       (base32 "18hdzkwv8lscm9xsi0d99pq219y0m9bqdqv3k15g7gz0sryxvyva"))))
+       (base32 "1z5f2zpnmfh05vlmjw85jj2d0sfxl5w1kg30ky6gmgmmfzj2sjzx"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -537,14 +567,14 @@ This package is part of the KDE games module.")
 (define-public ksudoku
   (package
     (name "ksudoku")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/ksudoku-" version ".tar.xz"))
       (sha256
-       (base32 "116dgc9hh6fq6x0w4rd4kjd2qy93hq6bmxwk5jmm21lqwrszr6hw"))))
+       (base32 "03hrwyvwzhxdbq7pp03c7lkz0dhv9yi6lcwvz3s63mn01wyq6iv3"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -597,14 +627,14 @@ This package is part of the KDE games module.")
 (define-public klines
   (package
     (name "klines")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/klines-" version ".tar.xz"))
       (sha256
-       (base32 "15z5gcncyr1i7xipnsvr2lvdi9wdqm8if3ylimksxhgr5dkvz9vz"))))
+       (base32 "1dny7wsj90c3vbgbrpxvxfy44j9ip3vdylc7889ckzbliivipxk4"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -640,14 +670,14 @@ This package is part of the KDE games module.")
 (define-public kgoldrunner
   (package
     (name "kgoldrunner")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kgoldrunner-" version ".tar.xz"))
       (sha256
-       (base32 "1ga0djplhgqbfrvq0m7ymd30lsi7kc23chaqmc0vy3g61y9274da"))))
+       (base32 "0acavby9lwbqbx577a3az9lcahchngcs15571va2ndnq1r16paxf"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -680,14 +710,14 @@ This package is part of the KDE games module.")
 (define-public kdiamond
   (package
     (name "kdiamond")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kdiamond-" version ".tar.xz"))
       (sha256
-       (base32 "1ca1hxzzvpwm3ms9m0xd7x4r011n7bjlsc4l333q0xjy5vwlrz3s"))))
+       (base32 "038lpp387m45zcy49rgmisiz5ajrvxwxnf424wllrjkihxy1siyn"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -718,14 +748,14 @@ This package is part of the KDE games module.")
 (define-public kfourinline
   (package
     (name "kfourinline")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kfourinline-" version ".tar.xz"))
       (sha256
-       (base32 "163aii9bala14bhc9j503xk86jcnmnn327fmx3c68ryp0s89rx97"))))
+       (base32 "0chfjp0k4ps5f6vy8nxqc2xlj4xql08llxnzsz6c2x611n69aszm"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -756,14 +786,14 @@ This package is part of the KDE games module.")
 (define-public kblackbox
   (package
     (name "kblackbox")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kblackbox-" version ".tar.xz"))
       (sha256
-       (base32 "0im7mb93yrbliavil5bcqymcq6a4sjq1pj52ysq8gqqwf7jrw1gx"))))
+       (base32 "0h7byd7g52yvmz3gxrzp2frs4iifm0r6lq8fjz2nxbl1rkw9ljbp"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -796,14 +826,14 @@ This package is part of the KDE games module.")
 (define-public knetwalk
   (package
     (name "knetwalk")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/knetwalk-" version ".tar.xz"))
       (sha256
-       (base32 "0w1bpx04yn7xsyf4h8ymw887ir9ifbwxynqllh8xn4chwd21ipgp"))))
+       (base32 "1xqqwsbm3f8bmid7afbnacxlg1hih644f0nw0i87pr746m1sskgz"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -837,14 +867,14 @@ This package is part of the KDE games module.")
 (define-public bomber
   (package
     (name "bomber")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/bomber-" version ".tar.xz"))
        (sha256
-        (base32 "0cxyp5c119r0bkqzx0mnbfdb2i1h0ra0kp30zx0nmvma1rxrrvgf"))))
+        (base32 "0qgixhmlkcjni5i9391hjg3sfc3ps24lmk9v8199lmnplrybklqj"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -878,14 +908,14 @@ This package is part of the KDE games module.")
 (define-public granatier
   (package
     (name "granatier")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/granatier-" version ".tar.xz"))
       (sha256
-       (base32 "1ylywj579j252hj6lz5ghvmiiqf9yb2lncqbypbibdr34irs5if9"))))
+       (base32 "1zyadmgnpgsx728gzd55qyijsm13pb9cxs1y4l4c4m9lnz4y183v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -915,14 +945,14 @@ This package is part of the KDE games module.")
 (define-public ksirk
   (package
     (name "ksirk")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ksirk-" version ".tar.xz"))
        (sha256
-        (base32 "0c1ls3i2jqcrmdy3zhb25ml9lhdy4gjdcvv4j5z8x5wig265qbwx"))))
+        (base32 "1sp5mhnf8r3fvifz0kw74436j5kwsmiw66myygb4rsggb8amh5x4"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -970,14 +1000,14 @@ This package is part of the KDE games module.")
 (define-public palapeli
   (package
     (name "palapeli")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/palapeli-" version ".tar.xz"))
        (sha256
-        (base32 "0bwi5y5mrf6h1vhyhs5sxwx8hdv0hkknpscpg5q54f6hw6cwf4qv"))))
+        (base32 "19xh03rhb48m4bbdmpga4aqij6agqg047ghl92p98z1phg5lxzrv"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1017,14 +1047,14 @@ This package is part of the KDE games module.")
 (define-public kiriki
   (package
     (name "kiriki")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kiriki-" version ".tar.xz"))
        (sha256
-        (base32 "1ijl4hjck4wvxplcjzqw9ahadnbvd8hk61qn04kbyz6mrp67xgrn"))))
+        (base32 "13lzpbhkp48r9m0bcrzfqacz9xvc89xavf3yn3ql50g3jjlkq41v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1055,14 +1085,14 @@ This package is part of the KDE games module.")
 (define-public kigo
   (package
     (name "kigo")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kigo-" version ".tar.xz"))
        (sha256
-        (base32 "0wav6pmljbki2ipgzp82gb2j861b2bj1c2x4ydqn106aqcm0ci71"))))
+        (base32 "0qx9plrs588210rdgvb2bkm5yjw4pna9q7v38cb166nfgkh6gv63"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1101,14 +1131,14 @@ This package is part of the KDE games module.")
 (define-public kubrick
   (package
     (name "kubrick")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kubrick-" version ".tar.xz"))
        (sha256
-        (base32 "09hxrigckvpxw1ipzlhq5fb5hpzrb5h65b55m6di3nj6ys2x50v9"))))
+        (base32 "0nank1ga4c4xfsw0m1cqhjhyz2wpbsxplyyb9x3l2vpg92gj5dbs"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1142,14 +1172,14 @@ This package is part of the KDE games module.")
 (define-public lskat
   (package
     (name "lskat")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/lskat-" version ".tar.xz"))
        (sha256
-        (base32 "07pkrgn9pgwwcc903iqmdp49i26ijkkb795jbwyhdg3nqgck9ar9"))))
+        (base32 "1qphzc1r26qwc8sl5rjkw16ia3lsj7c2lg9fxnhk08k8mxncymxg"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1180,14 +1210,14 @@ This package is part of the KDE games module.")
 (define-public kapman
   (package
     (name "kapman")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kapman-" version ".tar.xz"))
       (sha256
-       (base32 "0clh3nyc3kan0hbbzzca3sd09nl2hd36y7f6g5pv2cp6i1m4757y"))))
+       (base32 "0ildsd7pig3lm9n616kw5mpl8hbwidsnbzdfifx8nnffslrr4bv7"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1219,14 +1249,14 @@ This package is part of the KDE games module.")
 (define-public kspaceduel
   (package
     (name "kspaceduel")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kspaceduel-" version ".tar.xz"))
        (sha256
-        (base32 "1yb7y1f5rcw4jacpf9vpzbragm2ywwb3mkjhq67x7x99q6r9iz55"))))
+        (base32 "1mpry73vvi332wxyw2wymh3lsrj2amblg50dym9ni1lj2af657ia"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1254,14 +1284,14 @@ This package is part of the KDE games module.")
 (define-public bovo
   (package
     (name "bovo")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/bovo-" version ".tar.xz"))
        (sha256
-        (base32 "1yz4x7fmllmp57yxfipqkldgf38haldah81d2qmc5jlahvy3j23p"))))
+        (base32 "1zds6d4rmcf4sa2sfhyp1i5n7s7cgslikvbra4pz2kpi0hmvihi1"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1290,14 +1320,14 @@ This package is part of the KDE games module.")
 (define-public killbots
   (package
     (name "killbots")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/killbots-" version ".tar.xz"))
        (sha256
-        (base32 "07ak86a4v0v8b0nny8n246j3lab5zr8sq0ra9k48cdy53xmq909j"))))
+        (base32 "0ygg2cmp7wqzw9nsn768vzgjs8i44k3skwcn2abg1jj5k64wp9cb"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1331,14 +1361,14 @@ This package is part of the KDE games module.")
 (define-public ksnakeduel
   (package
     (name "ksnakeduel")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ksnakeduel-" version ".tar.xz"))
       (sha256
-       (base32 "0hi812hsjnyp1ds3wwv2wr58az6m2zsq97nywsncc0d3b5cxzsza"))))
+       (base32 "182z9664p0shyx4rbr1cn32mzlfzl80x96nwakvv1ss7sf7dp1x3"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1369,14 +1399,14 @@ This package is part of the KDE games module.")
 (define-public kollision
   (package
     (name "kollision")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kollision-" version ".tar.xz"))
       (sha256
-       (base32 "0ra83qmvzd4n6d7df2i8bh81y70lxa48i115x9h9ik52b2a48mxf"))))
+       (base32 "0g9nz3df8nibcwlrjlyw306dnrx58nlga2lljn7a9acpmvbp6qgi"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1406,14 +1436,14 @@ This package is part of the KDE games module.")
 (define-public knavalbattle
   (package
     (name "knavalbattle")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/knavalbattle-" version ".tar.xz"))
       (sha256
-       (base32 "0i7hf58b3gylld6d7q2aq5w6dksa32z5y1dcaj8nm1lpgcndmj0s"))))
+       (base32 "1brj2dvymgpf74vbsrs2m81lxxfxsly9pafd13g8rkzdx3hn1n0q"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1446,14 +1476,14 @@ This package is part of the KDE games module.")
 (define-public kreversi
   (package
     (name "kreversi")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kreversi-" version ".tar.xz"))
       (sha256
-       (base32 "0gyj0a6hj6jps5z97wdw0nwp0mvnib6v062bcy4dp3c14lhl9r4p"))))
+       (base32 "1mb1xrywk5p7ipjml1g2mjqfs7rlpa41if3yc7p9zcrkcasnbffv"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1488,14 +1518,14 @@ This package is part of the KDE games module.")
 (define-public ksquares
   (package
     (name "ksquares")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ksquares-" version ".tar.xz"))
       (sha256
-       (base32 "05cz0d83570awnh0faam3y5fxzafzkxaj3wijka1vcbigxk350c5"))))
+       (base32 "0b3r99hfhm5r4jxkwiji0lww703r7dj60x2m55ginvdy7ixm46rm"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1524,14 +1554,14 @@ This package is part of the KDE games module.")
 (define-public kjumpingcube
   (package
     (name "kjumpingcube")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kjumpingcube-" version ".tar.xz"))
       (sha256
-       (base32 "0m9ajl9lq52yn498g0kvsbwa0xmihlqli7zw644c282ni934bwhn"))))
+       (base32 "09bh57vzjnn56dnhpp4szx72wyskc5g714vlyp6c27vr27xry8fi"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1557,3 +1587,56 @@ control of the board by capturing or adding to one square.
 
 This package is part of the KDE games module.")
     (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kde-games
+  (package
+    (name "kde-games")
+    (version "23.04.3")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     ;; TODO: kpat, klickety, katomic, knights.
+     (list bomber
+           bovo
+           granatier
+           kajongg
+           kapman
+           kblackbox
+           kblocks
+           kbounce
+           kbreakout
+           kdiamond
+           kfourinline
+           kgoldrunner
+           kigo
+           killbots
+           kiriki
+           kjumpingcube
+           klines
+           kmahjongg
+           kmines
+           knavalbattle
+           knetwalk
+           kolf
+           kollision
+           konquest
+           kreversi
+           kshisen
+           ksirk
+           ksnakeduel
+           kspaceduel
+           ksquares
+           ksudoku
+           ktuberling
+           kubrick
+           lskat
+           palapeli
+           picmi))
+    (home-page "https://apps.kde.org/categories/games/")
+    (synopsis "KDE Games")
+    (description "This metapackage includes a collection of games provided
+with the official release of KDE.")
+    (license
+     (list license:gpl2+ license:lgpl2.0+ license:gpl3+ license:fdl1.2+))))
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index 43af023831..4c519b93fd 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -52,7 +52,8 @@
   #:use-module (gnu packages vnc)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xiph)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg))
 
 (define-public choqok
   (package
@@ -114,17 +115,59 @@ Other notable features include:
 @end itemize")
     (license license:gpl3+)))
 
+(define-public falkon
+  (package
+    (name "falkon")
+    (version "23.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/falkon-" version ".tar.xz"))
+       (sha256
+        (base32
+         "11r1iwimdzabfah68gsvw6xi67cj539anqa6s1rg33agsi5y56d3"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "ctest" "-E"
+                             "(locationbartest|qmltabsapitest)")))))))
+    (native-inputs
+     (list extra-cmake-modules pkg-config qttools-5))
+    (inputs
+     (list karchive
+           ki18n
+           kio
+           kwallet
+           openssl
+           purpose
+           qtquickcontrols-5
+           qtsvg-5
+           qtwebengine-5
+           qtx11extras
+           qtwayland-5
+           xcb-util))
+    (home-page "https://www.falkon.org/")
+    (synopsis "Qt-based web browser for KDE")
+    (description
+     "Falkon is is a Qt-based web browser for  KDE.")
+    (license license:gpl3+)))
+
 (define-public kget
   (package
     (name "kget")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kget-" version ".tar.xz"))
        (sha256
-        (base32 "0rqznsyphnq0zi65wvrl9mwqm9268wgihkr104i87pp5kfiah5yp"))))
+        (base32 "1n9wnm1si4g4rv8zaqpr8m3c2aav0mj8i7z96m78dk1apippx77r"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools pkg-config))
@@ -183,14 +226,14 @@ This package is part of the KDE networking module.")
 (define-public konversation
   (package
     (name "konversation")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/konversation-" version ".tar.xz"))
        (sha256
-        (base32 "08b4vnm66hbbnvkkh1p0a82pd2aj4zy5a8indfv3fzczsfpx6gp0"))))
+        (base32 "1ip0jlz71fad5l0ppbc6w914hqk7h626s12ssbb9p1c2yvlr1j1v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -255,14 +298,14 @@ Features are:
 (define-public kopete
   (package
     (name "kopete")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kopete-" version ".tar.xz"))
        (sha256
-        (base32 "0fc9m2xgsjmsypqllqb3cp1y2m28dqh48r1qg2xgkfyqa70dnvp9"))))
+        (base32 "1ps6g440p1dy2zwbj23f0mzw1d78r02aj88fy3i5sws9p9ra92gi"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools pkg-config))
@@ -332,14 +375,14 @@ This package is part of the KDE networking module.")
 (define-public krdc
   (package
     (name "krdc")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/krdc-" version ".tar.xz"))
        (sha256
-        (base32 "0bs8q3na924lnmra5608jwnn0dqczvh0f72nn43673ib3m1mddlr"))))
+        (base32 "0jva74n11fpm4ix4sbi0y1xnbly97lnap7dfj0bliw5s2d0sdjr0"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -377,14 +420,14 @@ This package is part of the KDE networking module.")
 (define-public ktorrent
   (package
     (name "ktorrent")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/ktorrent-" version ".tar.xz"))
        (sha256
-        (base32 "1h95hf4ki2xi2c9bzdg18p6d1757gzqknf6gn1ls6lwqy6p0pr4h"))))
+        (base32 "17q6ivnbh4zxqnbm1bdzz3hri1434sq2rs9y57lvn4bb2xdwn1z5"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -432,14 +475,14 @@ a full-featured client for BitTorrent.")
 (define-public libktorrent
   (package
     (name "libktorrent")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/"
                            version "/src/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "098ac7b5wa7v6svqv4rx1w44j18pr22qgr236fj94r2kpl2nq79q"))))
+        (base32 "1m6gyk1bids7qr9wfh6gcfq73ac9j5b2bljvfvfsw9f1ky1cmwab"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index e3de6db432..cc12a72a59 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2022 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,14 +58,14 @@
 (define-public audiocd-kio
   (package
     (name "audiocd-kio")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/audiocd-kio-" version ".tar.xz"))
        (sha256
-        (base32 "0d6pbsh1fbhwwr2c4kf9b17dhzzx2jsmgamawcp4kn7pw9i7i8ql"))))
+        (base32 "0kl0j5qy54q88cbclwqj0rn8hj3gzjhzk7bimjgw5w0xy3cw6kql"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -96,14 +97,14 @@ This package is part of the KDE multimedia module.")
 (define-public dragon
   (package
     (name "dragon")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/dragon-" version ".tar.xz"))
        (sha256
-        (base32 "0284shnqwbh1953ym197qaqgjwrnva77zi55lvvykg5cq42x512s"))))
+        (base32 "0mliddp0nyxz91wzy8md0p0i45mlhffip4zqjl4db55x4p6wh4y8"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -154,14 +155,14 @@ This package is part of the KDE multimedia module.")
 (define-public elisa
   (package
     (name "elisa")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/elisa-" version ".tar.xz"))
        (sha256
-        (base32 "1v2h7ayyrv6f6hdkl78x1nrv5x0l6n8dh0xrfm5fnii4f694iik8"))))
+        (base32 "1ry4mhj7wc31xq9fip3amv8fj631m213zz0qg44h68q77sik4422"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config dbus kdoctools
@@ -227,14 +228,14 @@ its own database.  You can build and play your own playlist.")
 (define-public ffmpegthumbs
   (package
     (name "ffmpegthumbs")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/ffmpegthumbs-" version ".tar.xz"))
        (sha256
-        (base32 "1jl7l3n2lfg71kbzwjn5nrm3qlgilhnvs67iil162mnv52gf3c0v"))))
+        (base32 "02wvhjqqird55xcs4kkj0s7nam4vqh3khjz5f1mjqfnk62sj1plx"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -253,14 +254,14 @@ This package is part of the KDE multimedia module.")
 (define-public juk
   (package
     (name "juk")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/juk-" version ".tar.xz"))
        (sha256
-        (base32 "12pnbx17r1103w39gglybdzs8kcpwghy5lc4q9fqk89s1r7l3c7h"))))
+        (base32 "1q0r0iv4nn6jd0g8db54r7xdw7kdw1ja0z1ggxl1sy0k60m9c4q3"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -307,7 +308,7 @@ This package is part of the KDE multimedia module.")
 (define-public kid3
   (package
     (name "kid3")
-    (version "3.9.1")
+    (version "3.9.4")
     (source
      (origin
        (method git-fetch)
@@ -316,7 +317,7 @@ This package is part of the KDE multimedia module.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rq0742rm3y5ps7878qd7xhhiizy6d6ls6hdjqa6z5sq077s5lz9"))))
+        (base32 "0j454nzwx0v7iwcixyjcx71shzh3ag4ydggs8d68alrfj9f4ajap"))))
     (build-system qt-build-system)
     (arguments
      (list
@@ -365,14 +366,14 @@ variety of formats.")
 (define-public k3b
   (package
     (name "k3b")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/k3b-" version ".tar.xz"))
        (sha256
-        (base32 "1bizk66ad2yq8xszjqvv2ghk069d0l6iczn5rlna1p3zigr43ysl"))))
+        (base32 "1kr1hw4pws87zzwyrwrg2ysdn11qf0qhwi1vc9b0k8jkjmmdplmb"))))
     (build-system qt-build-system)
     (arguments
      `(#:phases
@@ -519,14 +520,14 @@ autoloading of subtitle files for use while playing video.")
 (define-public kamoso
   (package
     (name "kamoso")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kamoso-" version ".tar.xz"))
        (sha256
-        (base32 "0br7dbnm2ypdl55pscp8wr0vwrgprycrxxj206b5r1l9ysx9aqip"))))
+        (base32 "1f06331qigf5wi6lgir5ij8h1fsdn54v32fyw2mgf0hg05xndrcl"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -562,14 +563,14 @@ camera.  Use it to take pictures and make videos to share.")
 (define-public kmix
   (package
     (name "kmix")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kmix-" version ".tar.xz"))
       (sha256
-       (base32 "0zc96l9mnn763pw54ki715sw3wm4z6rjdz2zzsjc6l5iwcqzwqq8"))))
+       (base32 "09pfsa6y1phm6z24da60s47gc18w4cvv7r8sxh5qfww7b0dnhixj"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools pkg-config))
@@ -677,14 +678,14 @@ Some features:
 (define-public kwave
   (package
     (name "kwave")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kwave-" version ".tar.xz"))
        (sha256
-        (base32 "0j6ck44lkfcnaa0rymv2aqvdcy0zbybbklm1s6mvbgdpfsh0rhkm"))))
+        (base32 "0s9w8jgwblljwfji2a19bqs3nx6sr2qzz35kwbi0ahwncy69k4jx"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules (librsvg-for-system) pkg-config kdoctools))
@@ -751,14 +752,14 @@ Its features include:
 (define-public libkcddb
   (package
     (name "libkcddb")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkcddb-" version ".tar.xz"))
        (sha256
-        (base32 "1js5r8hxqabnygmavfjvjbfy5c7978bmwm2rqlgsfyn17fkmf2y8"))))
+        (base32 "1s10g6m6c3h14gzxvp2s0v51jxzsrh23xfn7gl51a0r50srbbz52"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -767,6 +768,7 @@ Its features include:
            kconfig
            ki18n
            kio
+           kcmutils
            kwidgetsaddons
            libmusicbrainz
            qtbase-5))
@@ -781,14 +783,14 @@ Its features include:
 (define-public libkcompactdisc
   (package
     (name "libkcompactdisc")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkcompactdisc-" version ".tar.xz"))
        (sha256
-        (base32 "0fv9dbx74xs42iiw67bvjpxga0d126q2nfs8n4hiv3z2xda9n4ic"))))
+        (base32 "0gl21mhfz3vj89x0r8y79yiijcag1xfdnyfrjqzkx9i8yd2k45b1"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index 6f3cbf2999..e95eac4e2f 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -29,6 +29,8 @@
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cyrus-sasl)
@@ -51,14 +53,14 @@
 (define-public akonadi
   (package
     (name "akonadi")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/akonadi-" version ".tar.xz"))
               (sha256
                (base32
-                "1yfy0b6kyiq82zkfkx9ldgjlbwg3lgg4di53fqjllmqhzaj1xy91"))
+                "0jpp91d5rlblq6r981wxizmsv512kc43lfk8y29bdky6j4idflrb"))
               (patches (search-patches "akonadi-paths.patch"
                                        "akonadi-timestamps.patch"
                                        "akonadi-not-relocatable.patch"))))
@@ -133,14 +135,14 @@ programs.")
 (define-public akonadi-calendar
   (package
     (name "akonadi-calendar")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-calendar-" version ".tar.xz"))
        (sha256
-        (base32 "1xcnlkipy2rq0bsm811y9khw7dmsgkqxgw18b3lmy29xs7wcsiv5"))))
+        (base32 "166xm57jcy7d2dv2pfy4lllzic4giin31szxz7xq3a7ixsd6g7cs"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -180,14 +182,14 @@ collection and item views.")
 (define-public akonadi-contacts
   (package
     (name "akonadi-contacts")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-contacts-" version ".tar.xz"))
        (sha256
-        (base32 "1mzlv124wa135xfbxl2ghl4n8pi1a6zd64195px1v90qnhjljw28"))))
+        (base32 "10vlzj56ps1pysf7g6i14v8wp2wkxh53055r2v4iq4cpq3mzayc6"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -235,14 +237,14 @@ to list and filter contacts.")
 (define-public akonadi-mime
   (package
     (name "akonadi-mime")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-mime-" version ".tar.xz"))
        (sha256
-        (base32 "19wbfkvhkyzlz5r49y7rzbn4ay7rm8zyj7d4j3x9j79nprjr4zw0"))))
+        (base32 "1r33v2q49s7l90id4jqg0lar9p1j5k0cbnzsaqdksavzpzkcklh5"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules libxslt ;; xslt for generating interface descriptions
@@ -285,14 +287,14 @@ with emails through Akonadi easier.")
 (define-public akonadi-notes
   (package
     (name "akonadi-notes")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-notes-" version ".tar.xz"))
        (sha256
-        (base32 "05sx7h1aw4mx93l4krv4574zpjf63vdrhaiwayqz11wrdpvdq7ww"))))
+        (base32 "0s5a414cdcz37srys2w3c2z5c63ha9ivsqj0srnfwwv0pxix266v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -310,14 +312,14 @@ wrapping notes into KMime::Message objects.")
 (define-public akonadi-search
   (package
     (name "akonadi-search")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-search-" version ".tar.xz"))
        (sha256
-        (base32 "06apb5lx7bs0lfvsnbf8kyxk7yyjrzb1f1wfckfsjaysf0xmdvfg"))))
+        (base32 "1hpclfcb7almvajscm2az36bw9rrhkp3ywb9h0j9h8ims2gm60m7"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules
@@ -365,14 +367,14 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
 (define-public itinerary
   (package
     (name "itinerary")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1w1gl4lz8gwf8cmxhsfyp4afiaq9anc8glrxay407bqp28andp3a"))))
+                "132x68wc4pallxgkvridfsimfq5m2g47fj9lcgz1kq4gdsidzf6i"))))
     (build-system qt-build-system)
     (arguments
      `(#:tests? #f)) ;Fails 20/27
@@ -382,6 +384,7 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
                   ki18n
                   kio
                   kirigami
+                  kirigami-addons
                   kitinerary
                   kitemmodels
                   kcoreaddons
@@ -419,14 +422,14 @@ information.")
 (define-public kincidenceeditor
   (package
     (name "kincidenceeditor")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/incidenceeditor-" version ".tar.xz"))
        (sha256
-        (base32 "1znbpqpxkbn79pzhcg5v77bqr345lcmy2h0a6d90rzdmnlh303ln"))))
+        (base32 "1pqfl7gqz7ibpns2gpwqpvzhsba7xj4ilhi4ax1vn3m086iyh3a0"))))
     (properties `((upstream-name . "incidenceeditor")))
     (build-system qt-build-system)
     (native-inputs
@@ -458,6 +461,7 @@ information.")
            kmime
            kpimcommon
            kpimtextedit
+           ktextaddons
            ktextwidgets
            kwallet
            libkdepim
@@ -480,14 +484,14 @@ information.")
 (define-public kaddressbook
   (package
     (name "kaddressbook")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kaddressbook-" version ".tar.xz"))
        (sha256
-        (base32 "177zgbpgignvglpvbis1q9d36pi1dvyckv3q2gcgd9425gpm0vmb"))))
+        (base32 "0zjbri91dh9vnwi6jqkbmyq667yzn8g4kw5v47qn8id2629zj6jq"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -516,6 +520,7 @@ information.")
            kparts
            kpimcommon
            kpimtextedit
+           ktextaddons
            ktextwidgets
            kxmlgui
            libkdepim
@@ -569,14 +574,14 @@ one of the APIs mentioned above.")
 (define-public kaccounts-integration
   (package
     (name "kaccounts-integration")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1q1d2a1qknfkgm63gji6ijji35d0b1jy1kvf10a7ac4l1z1fvnpl"))))
+                "1mn64xw5r2magy5y0qmg5r907jz1y8jar0qqkc6s1zjjr3s3knac"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kcmutils
@@ -587,6 +592,7 @@ one of the APIs mentioned above.")
                   kwallet
                   kio
                   libaccounts-qt
+                  qcoro-qt5
                   signond))
     (home-page "https://invent.kde.org/network/kaccounts-integration")
     (synopsis "Online account management system")
@@ -594,10 +600,37 @@ one of the APIs mentioned above.")
 management system and its Plasma integration components.")
     (license license:lgpl2.0+)))
 
+(define-public kaccounts-providers
+  (package
+    (name "kaccounts-providers")
+    (version "23.04.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/release-service/"
+                                  version "/src/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1lrmj6r09ypnpl2s586i4rd3fk3760qlxyrhh91k43wkb8i6m8f0"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules intltool))
+    (inputs (list kaccounts-integration
+                  kcoreaddons
+                  kdeclarative
+                  ki18n
+                  kio
+                  libaccounts-qt
+                  qtwebengine-5
+                  signond))
+    (home-page "https://invent.kde.org/network/kaccounts-providers")
+    (synopsis "Online account providers for the KAccounts system")
+    (description "This package provides online account providers for the
+KAccounts system.")
+    (license license:lgpl2.0+)))
+
 (define-public kalendar
   (package
     (name "kalendar")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
@@ -605,7 +638,7 @@ management system and its Plasma integration components.")
                                   ".tar.xz"))
               (sha256
                (base32
-                "0slk9z7p1z5m2kbb8kq05afslxad8w5pjsajxawckcx0mlsd3apj"))))
+                "1w56glv8m1rlk86v78h69d21ydxb6i61g1dk6mcizjr5rvi4liy0"))))
     (build-system qt-build-system)
     (arguments
      (list #:tests? #f ;All 2 tests fail
@@ -627,12 +660,15 @@ management system and its Plasma integration components.")
     (inputs (list akonadi
                   akonadi-contacts
                   breeze-icons
+                  gpgme
                   grantlee
                   grantleetheme
                   kio
                   kirigami
+                  kirigami-addons
                   kdbusaddons
                   ki18n
+                  kimap
                   kcalendarcore
                   kcalendarsupport
                   kconfigwidgets
@@ -640,15 +676,22 @@ management system and its Plasma integration components.")
                   kcoreaddons
                   kcontacts
                   kitemmodels
+                  kmailcommon
+                  kmessagelib
                   kmime
                   kidentitymanagement
+                  kpimcommon
                   kpimtextedit
+                  ktextaddons
                   ktextwidgets
                   akonadi-calendar
+                  akonadi-mime
                   keventviews
                   kcalutils
                   kxmlgui
                   kiconthemes
+                  libkdepim
+                  libkleo
                   qtbase-5
                   qtdeclarative-5
                   qtquickcontrols2-5
@@ -656,7 +699,8 @@ management system and its Plasma integration components.")
                   qtquickcontrols-5
                   qtgraphicaleffects
                   qtlocation
-                  qqc2-desktop-style))
+                  qqc2-desktop-style
+                  qtwebengine-5))
     (home-page "https://apps.kde.org/kalendar/")
     (synopsis "Calendar application")
     (description
@@ -667,14 +711,14 @@ external services.")
 (define-public kcalendarsupport
   (package
     (name "kcalendarsupport")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/calendarsupport-" version ".tar.xz"))
        (sha256
-        (base32 "09fs15qckydmbs6idl5k1b6gyhjkygsa1r8frlysn1ahhfmxr33p"))))
+        (base32 "1zk6kv5nhcd7a5llzh31890xpqdg522ahjdgbwsm7pcp62y0nbsj"))))
     (properties `((upstream-name . "calendarsupport")))
     (build-system qt-build-system)
     (native-inputs
@@ -712,14 +756,14 @@ calendaring applications.")
 (define-public kcalutils
   (package
     (name "kcalutils")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kcalutils-" version ".tar.xz"))
        (sha256
-        (base32 "1y25csn37lp14ba18gqmw9ssimy4dqi55irx8c89p4p1lypjwfzq"))))
+        (base32 "1j7f5ai25zcxggw3dvky624asxim5bkd6a35rcdzkjhj1qwk3vll"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules libxml2)) ;; xmllint required for tests
@@ -750,14 +794,14 @@ functions for accessing calendar data using the kcalcore API.")
 (define-public kdepim-runtime
   (package
     (name "kdepim-runtime")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kdepim-runtime-" version ".tar.xz"))
        (sha256
-        (base32 "1g6bq27s7nf9rmrbl5kwycl4lzjpp3m088mji3p7qrrv01ywp4mn"))))
+        (base32 "1wvwibq6zzjlhh8yqrlqras0m8i01ynlwj9z6l3f0g0hyyz5nkw4"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules dbus kdoctools libxslt shared-mime-info))
@@ -845,14 +889,14 @@ package.")
 (define-public keventviews
   (package
     (name "keventviews")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/eventviews-" version ".tar.xz"))
        (sha256
-        (base32 "0bkidva045q85z4ymhj4m9ayfbsckjl4cl7nncl48yk2dmanfg51"))))
+        (base32 "1nh8a7jy0sjsyi41pxhxwjkq6fr4yy9rqgcjjbj01dnx1ykz3d7l"))))
     (properties `((upstream-name . "eventviews")))
     (build-system qt-build-system)
     (native-inputs
@@ -894,27 +938,32 @@ package.")
 (define-public kgpg
   (package
     (name "kgpg")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kgpg-" version ".tar.xz"))
        (sha256
-        (base32 "1xs0w6lxwq3hzs8r1cwmygcjilbgwa8zpjxwj6zz1wmbg04gqk36"))))
+        (base32 "1ihxw1s4sq7cp5pm6rddcmvqk0v5gfg4v38b6yg8hyjg655x63jz"))))
     (build-system qt-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "dbus-launch" "ctest" "-E" ;; FIXME: Failing tests.
-                       "(kgpg-import|kgpg-disable)")))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (setenv "HOME" (getcwd))
+                     (invoke "ctest")))))
+           ;; XXX: Tests could fail randomly with:
+           ;;   gpg: can't connect to the agent: IPC connect call failed
+           ;;   gpg process did not finish. Cannot generate a new key pair.
+           #:tests? #f))
     (native-inputs
-     (list extra-cmake-modules gnupg ;; TODO: Remove after gpgme uses fixed path
-           dbus ;; Remove after failing test passes
-           kdoctools))
+     (list extra-cmake-modules
+           gnupg ;; TODO: Remove after gpgme uses fixed path
+           kdoctools
+           pkg-config))
     (inputs
      (list akonadi
            akonadi-contacts
@@ -952,24 +1001,26 @@ cryptography to the contents of the clipboard.")
 (define-public khealthcertificate
   (package
     (name "khealthcertificate")
-    (version "22.09")
+    (version "23.01.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://kde/stable/plasma-mobile/"
-                                  (version-major+minor version)
+              (uri (string-append "mirror://kde/stable/plasma-mobile/" version
                                   "/khealthcertificate-" version ".tar.xz"))
               (sha256
                (base32
-                "16vkjpyxwx34pvdpnci0l6mx2bdjialiscjvbdx53xbsq9ff701k"))))
+                "193agd3jg029vcq1h5hdg3gw6zgqcmszl6ffcrid0ajbbiic4pbm"))))
     (build-system qt-build-system)
     (arguments
-     (list #:phases #~(modify-phases %standard-phases
-                        (replace 'check
-                          (lambda* (#:key tests? #:allow-other-keys)
-                            (when tests?
-                              (invoke "ctest" "-E"
-                               "(icaovdsparsertest|nlcoronacheckparsertest)")))))))
-    (native-inputs (list extra-cmake-modules pkg-config))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key inputs tests? #:allow-other-keys)
+                   (when tests?
+                     (setenv "TZDIR"
+                             (search-input-directory inputs "share/zoneinfo"))
+                     (invoke "ctest" "-E"
+                             "(icaovdsparsertest|eudgcparsertest)")))))))
+    (native-inputs (list extra-cmake-modules pkg-config tzdata-for-tests))
     (inputs (list karchive
                   kcodecs
                   ki18n
@@ -986,14 +1037,14 @@ test and recovery certificates.")
 (define-public kidentitymanagement
   (package
     (name "kidentitymanagement")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kidentitymanagement-" version ".tar.xz"))
        (sha256
-        (base32 "1h76c8k6lvf4dlh9awd4z71hkikm7x71760gljybd6fkygxpm992"))))
+        (base32 "03bfz0x35wiynla39iysxa5g3rckmy9nj2z1f439v9sblcqbvz3p"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1024,14 +1075,14 @@ test and recovery certificates.")
 (define-public kimap
   (package
     (name "kimap")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kimap-" version ".tar.xz"))
        (sha256
-        (base32 "1a3wwzwlp0zsj4brhs22sygfxh65slikapa4iipxjw78mkwhiq8h"))))
+        (base32 "08s2891f2cnf5f7q034lmqv3vnh3v61l7bsyssdx711jfbswg9ik"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1055,15 +1106,14 @@ easier to do so.")
 (define-public kitinerary
   (package
     (name "kitinerary")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "https://invent.kde.org/pim/kitinerary/-/archive/v"
-                    version "/kitinerary-v" version ".tar.gz"))
+              (uri (string-append "mirror://kde/stable/release-service/"
+                                  version "/src/kitinerary-" version ".tar.xz"))
               (sha256
                (base32
-                "1gpy5siaw9k4332ii6a87rq162dbmyfkqp1l1k8bmldg1755v3jz"))))
+                "0fcqix7hgmv7qcfxzmqy61kg7dqi5zas5vqfs7pfycgcxma0g869"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -1089,7 +1139,8 @@ easier to do so.")
                   qtlocation
                   qtquickcontrols2-5
                   libxml2
-                  zlib))
+                  zlib
+                  zxing-cpp))
     (home-page "https://apps.kde.org/itinerary/")
     (synopsis
      "Data Model and Extraction System for Travel Reservation information")
@@ -1100,14 +1151,14 @@ model and itinerary extraction code.")
 (define-public kldap
   (package
     (name "kldap")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kldap-" version ".tar.xz"))
        (sha256
-        (base32 "0hqvf939d2sqb2frizw9pnhgpc8vi627882d30ssymw5p5nm58il"))))
+        (base32 "0hp5j02kwh91xf0n6zqzgam7g50r54hzbkli5i7c0rxdb1g28ihm"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1125,14 +1176,14 @@ protocol for querying and modifying directory services running over TCP/IP.")
 (define-public kleopatra
   (package
     (name "kleopatra")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kleopatra-" version ".tar.xz"))
        (sha256
-        (base32 "1vay6cdrx1l7qyg0rrc7z7rwv1jjpwksqzadka7rpshfqhf3r9y8"))))
+        (base32 "0lcl20yihsa8dq0s24akp5z0290vh9nxjjjdwqk88nz8vmsr29i0"))))
     (build-system qt-build-system)
     (native-inputs
      (list dbus extra-cmake-modules gnupg ;; TODO: Remove after gpgme uses fixed path
@@ -1179,14 +1230,14 @@ and retrieving certificates from LDAP servers.")
 (define-public kmail
   (package
     (name "kmail")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmail-" version ".tar.xz"))
        (sha256
-        (base32 "1q7d2jazc6792dhwxb2zx66bghdnn43sw6lvdg44a7d9zgik1qzb"))))
+        (base32 "16gz0i7na1pkyly9jnvavyffkawxf5irr92rd50w68p01b82dhc6"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules dbus kdoctools))
@@ -1231,6 +1282,7 @@ and retrieving certificates from LDAP servers.")
            kpimtextedit
            kservice
            ksyntaxhighlighting
+           ktextaddons
            ktextwidgets
            kuserfeedback
            ktnef
@@ -1279,14 +1331,14 @@ manager from KDE.")
 (define-public kmailcommon
   (package
     (name "kmailcommon")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/mailcommon-" version ".tar.xz"))
        (sha256
-        (base32 "1lpnfcj2p58lhgcjg6ray5b9ygz7gpb8xh8qkakn4m7cpjhgcj5j"))))
+        (base32 "165a0qf6i2862dpsw4wvgnxi4wv7hnc9s63fsf9jp6kbwwfw9nqv"))))
     (properties `((upstream-name . "mailcommon")))
     (build-system qt-build-system)
     (native-inputs
@@ -1323,6 +1375,7 @@ manager from KDE.")
            kpimcommon
            kpimtextedit
            ksyntaxhighlighting
+           ktextaddons
            ktextwidgets
            kwallet
            kwidgetsaddons
@@ -1348,14 +1401,14 @@ dealing with email.")
 (define-public kmailimporter
   (package
     (name "kmailimporter")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/mailimporter-" version ".tar.xz"))
        (sha256
-        (base32 "1k7gwagcvhj733c48ayxwi1gf37y6w5g6n2b9fknhfs40kqpdri9"))))
+        (base32 "18shpxz7rg64g2mxdhdjhxhn893m0930v76cdnij339ycbcq5ypc"))))
     (properties `((upstream-name . "mailimporter")))
     (build-system qt-build-system)
     (native-inputs
@@ -1381,6 +1434,7 @@ dealing with email.")
            kmime
            kpimcommon
            kpimtextedit
+           ktextaddons
            ktextwidgets
            kxmlgui
            libkdepim
@@ -1395,14 +1449,14 @@ e-mail client programs into KMail and KDE PIM.")
 (define-public kmailtransport
   (package
     (name "kmailtransport")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmailtransport-" version ".tar.xz"))
        (sha256
-        (base32 "0hhd1m1kfagyiwwfmsxhpin5c25dsiwbzg188khppn6fp2dh79dg"))))
+        (base32 "14vmm9vla8i477jq40z73lc4klx6mm03y2xnljvx1v4inm3cpw2c"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1437,14 +1491,14 @@ mail transport.")
 (define-public kmbox
   (package
     (name "kmbox")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmbox-" version ".tar.xz"))
        (sha256
-        (base32 "0n49xqgyx40hml9554zvnycff26qki9fdy32awx9v9l8jbnrmm6p"))))
+        (base32 "05hdfjwp6ay2j16rxp55k3fywwf7kxiig4dv9fh51iysglmzzn76"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1459,14 +1513,14 @@ using a Qt/KMime C++ API.")
 (define-public kmessagelib
   (package
     (name "kmessagelib")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/messagelib-" version ".tar.xz"))
        (sha256
-        (base32 "0xq1a064g3h3igrqanfald9n21nnrsg16a4kmn9vn1k03qv1vlp2"))))
+        (base32 "0aqac0p46cwnr3qxjk0ivalfwjcgwy52s088wnk6ckp77m7r65is"))))
     (properties `((upstream-name . "messagelib")))
     (build-system qt-build-system)
     (native-inputs
@@ -1508,6 +1562,7 @@ using a Qt/KMime C++ API.")
            kpimtextedit
            kservice
            ksyntaxhighlighting
+           ktextaddons
            ktextwidgets
            kwallet
            kwidgetsaddons
@@ -1545,14 +1600,14 @@ kwebengineviewer.")
 (define-public kmime
   (package
     (name "kmime")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmime-" version ".tar.xz"))
        (sha256
-        (base32 "1vz5gw33ncc5lx8fx2nnp8ayxpdhfjwwx226gwa94vhxxkfcnmh4"))))
+        (base32 "1i38g0s98d24882kxyjay965nz3d3fjhb3mv1p4sllm2lnffrq2d"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1580,14 +1635,14 @@ information in non-ASCII character sets.")
 (define-public knotes
   (package
     (name "knotes")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/knotes-" version ".tar.xz"))
        (sha256
-        (base32 "076rwgkwx67rn6z0mj0sj77h1jngcpbvrwka3ijg2309r9f2wg8h"))))
+        (base32 "0f2a9xy2w909y792hwwnmsqvxx91azn6f0j0xl2mlmav00a4w6za"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools libxslt))
@@ -1623,6 +1678,7 @@ information in non-ASCII character sets.")
            kparts
            kpimcommon
            kpimtextedit
+           ktextaddons
            ktextwidgets
            kwidgetsaddons
            kwindowsystem
@@ -1650,14 +1706,14 @@ Features:
 (define-public kontactinterface
   (package
     (name "kontactinterface")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kontactinterface-" version ".tar.xz"))
        (sha256
-        (base32 "0j7cck262j8z7m7fm55qa5i936x81ljn3cijrk5c5h881152h4fs"))))
+        (base32 "16fg24hz9vx912cffc94x5zx4jv3k72mbxgp5ck50lydypx6rfns"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1668,7 +1724,8 @@ Features:
            kparts
            kwindowsystem
            kxmlgui
-           qtbase-5))
+           qtbase-5
+           qtx11extras))
     (home-page "https://api.kde.org/kdepim/kontactinterface/html/index.html")
     (synopsis "Kontact interface library")
     (description "This library provides the glue necessary for
@@ -1678,17 +1735,17 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
 (define-public korganizer
   (package
     (name "korganizer")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/korganizer-" version ".tar.xz"))
        (sha256
-        (base32 "0pcyij50k96mrm9vkq0pzr7n0nrgy1d51zrcb3hly7fpl4gvkx4x"))))
+        (base32 "1vp1jsmna059vvfj7xaj9fhhhq0lz9k0pphczkfbwm3gy6nzcavz"))))
     (build-system qt-build-system)
     (native-inputs
-     (list extra-cmake-modules dbus qttools-5 kdoctools))
+     (list extra-cmake-modules dbus qttools-5 kdoctools tzdata-for-tests))
     (inputs
      (list akonadi
            akonadi-calendar
@@ -1730,6 +1787,7 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
            kpimcommon
            kpimtextedit
            kservice
+           ktextaddons
            kwallet
            kwidgetsaddons
            kwindowsystem
@@ -1739,19 +1797,13 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
            phonon
            qtbase-5))
     (arguments
-     `(#:phases
+     '(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-test
-           (lambda _
-             ;; FIXME: This test started failing after the 20.04 update
-             ;; seemingly due to DBus communication issues.
-             ;; See also 'akonadi-search' for a similar test failure.
-             (substitute* "src/autotests/CMakeLists.txt"
-               ((".*test_advanced\\(koeventpopupmenutest\\.cpp.*")
-                ""))))
          (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
+           (lambda* (#:key inputs tests? #:allow-other-keys)
              (when tests?
+               (setenv "TZDIR" (search-input-directory
+                                inputs "share/zoneinfo"))
                (invoke "dbus-launch" "ctest")))))))
     (home-page "https://apps.kde.org/korganizer/")
     (synopsis "Organizational assistant, providing calendars and other similar
@@ -1799,14 +1851,14 @@ Virtual Contact File}) files to the KPeople contact management library.")
 (define-public kpkpass
   (package
     (name "kpkpass")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kpkpass-" version ".tar.xz"))
               (sha256
                (base32
-                "09l6c7nsgfnffgkm0yzjhsfkm79fv9izasislrlzdvca5xninrgb"))))
+                "1l3k33yzfjzarc2rpf576ib86ifzrfmsvpcdmv060dy0k8lbm1k9"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list karchive qtbase-5 shared-mime-info))
@@ -1819,14 +1871,14 @@ pass files.")
 (define-public kpimcommon
   (package
     (name "kpimcommon")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/pimcommon-" version ".tar.xz"))
        (sha256
-        (base32 "00gxv1028xdp7ag44z9h6cpmlw55f3rk7i6msymga3pdq639c19y"))))
+        (base32 "1v2nv83h9p1ajbcwfdk8b7lrr84r8c855lysknzvzkpm5z012z3l"))))
     (properties `((upstream-name . "pimcommon")))
     (build-system qt-build-system)
     (native-inputs
@@ -1861,6 +1913,7 @@ pass files.")
            kmime
            knewstuff
            kpimtextedit
+           ktextaddons
            ktextwidgets
            kwallet
            kwidgetsaddons
@@ -1882,14 +1935,14 @@ pass files.")
 (define-public libgravatar
   (package
     (name "libgravatar")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libgravatar-" version ".tar.xz"))
        (sha256
-        (base32 "1yhmxl2gqwrn5flr5qm56aqg6rgmqbgcr3pyb4d0vshdfksjr4rc"))))
+        (base32 "03zhnpb114y6a6vhiv9c1fiqsinjmk52j1k9w2r04ibxp35m3xj7"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kconfig
@@ -1897,6 +1950,7 @@ pass files.")
                   kio
                   kpimcommon
                   kpimtextedit
+                  ktextaddons
                   ktextwidgets
                   kwidgetsaddons
                   qtbase-5))
@@ -1913,14 +1967,14 @@ unnecessary network operations.")
 (define-public kpimtextedit
   (package
     (name "kpimtextedit")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kpimtextedit-" version ".tar.xz"))
        (sha256
-        (base32 "1dxdlspqssxnvha202bgh9yaszs77cph5qd9wcbd45xj07dqgbw1"))))
+        (base32 "1rrs19bwl8qvasridysbbgsgdy9hyjlpi26hw77hli5ixkflj85b"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -1954,14 +2008,14 @@ text in the text edit to all kinds of markup, like HTML or BBCODE.")
 (define-public ksmtp
   (package
     (name "ksmtp")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/ksmtp-" version ".tar.xz"))
        (sha256
-        (base32 "13ybnr39pim3r83p56wj98fwj0yk1rspd9g24a8d0qykmnbx57l3"))))
+        (base32 "0pz17vmn38n2xl35d9di1b9138dh54wgyal9hx412nh123w13h12"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1993,14 +2047,14 @@ standard protocols for e-mail transmission.")
 (define-public ktnef
   (package
     (name "ktnef")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/ktnef-" version ".tar.xz"))
        (sha256
-        (base32 "05rcs0m4dr4p4wxigcnhjmmp15nlf36ka85v8b8gd8630v61w6y6"))))
+        (base32 "00dkcmywjxzq5v2kp4klw50c3w74lmh16kbcwn8qd97kky3pd5ik"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -2025,14 +2079,14 @@ and allows one to view/extract message formatted text in Rich Text Format.")
 (define-public libkdepim
   (package
     (name "libkdepim")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkdepim-" version ".tar.xz"))
        (sha256
-        (base32 "07ihnps983x3sp74yq5glsq3h3jw4k80mnc4xxzm6ps2vgswah12"))))
+        (base32 "1i5c4qqd4ghlfjvxniy8sbfqh0fsrz4sadvh0n2d207s9rsl274v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -2072,14 +2126,14 @@ and allows one to view/extract message formatted text in Rich Text Format.")
 (define-public libkgapi
   (package
     (name "libkgapi")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkgapi-" version ".tar.xz"))
        (sha256
-        (base32 "065441mbl67wyp4nz03jdygkn5wmnmkj4fiql4mnq99k2v80y0ka"))))
+        (base32 "18jcrp7qi35zxzb4b7mn6519bjw47s7kwfahd6a50p40j17k09bs"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5))
@@ -2107,14 +2161,14 @@ various Google services.")
 (define-public libkleo
   (package
     (name "libkleo")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkleo-" version ".tar.xz"))
        (sha256
-        (base32 "05ypgrwynm1hr32hj35faj3sxabi46x8slnbs3pxwz2f2z2ry58a"))))
+        (base32 "0l77n4dlbv9hclzvh69kdzji907if7yayxiasxnnjkzsvcm1af25"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools qttools-5))
@@ -2155,7 +2209,7 @@ KDE using certificate-based crypto.")
 (define-public libksieve
   (package
     (name "libksieve")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
@@ -2163,7 +2217,7 @@ KDE using certificate-based crypto.")
                            "/src/libksieve-" version ".tar.xz"))
        (sha256
         (base32
-		"1ia1gjx8x9ym3dml3y403kif50jhcsrqmhivn3j5yxf8abc3rnk6"))))
+		"066z33v30h568bmdcsl4v478p3xhiwsmq7pr7kziilrhy3a2m7p6"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -2183,6 +2237,7 @@ KDE using certificate-based crypto.")
            kpimcommon
            kpimtextedit
            ksyntaxhighlighting
+           ktextaddons
            ktextwidgets
            kwallet
            kwindowsystem
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 974c35e9cc..11586a6ce2 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2020, 2023 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
@@ -50,6 +50,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages ibus)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
@@ -69,6 +70,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages package-management) ; flatpak
+  #:use-module (gnu packages unicode)
   #:use-module (gnu packages video)
   #:use-module (gnu packages vpn)
   #:use-module (gnu packages vulkan)
@@ -76,22 +78,26 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages web))
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages gps)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages opencl))
 
 (define-public bluedevil
   (package
     (name "bluedevil")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1dsah7rcx2brcd1d5x7bvhrixx5nvwp1fwq9b8k2zc038xzpx6ys"))))
+                "0ddzcarn06rvhbmvm9x737ba9ycxcvg030892nh6izgfrjlaxhfb"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules pkg-config qttools-5))
     (inputs (list kcoreaddons
+                  kcmutils
                   kwidgetsaddons
                   kdbusaddons
                   knotifications
@@ -112,14 +118,14 @@
 (define-public breeze
   (package
     (name "breeze")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0m3ggv5znzfcp25afgl7v5w7m27v5hdvv6jw9vrvwbqj8lzq1hlx"))))
+                "1wfclkg4d3wraz19kwpm87vwp9327s5y8n1a42qgrdh980qwzzdz"))))
     (build-system qt-build-system)
     ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
     ;;   warnings during generation of metainfo for org.kde.breezedark.desktop:
@@ -159,7 +165,7 @@ the Plasma Desktop.  Breeze is the default theme for the KDE Plasma desktop.")
 (define-public breeze-gtk
   (package
     (name "breeze-gtk")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -167,7 +173,7 @@ the Plasma Desktop.  Breeze is the default theme for the KDE Plasma desktop.")
                                   "-" version ".tar.xz"))
               (sha256
                (base32
-                "0wj8qzy2104ggczxagxm45zwsvvpwd6jjnbv1893mhlr6f2zrbmh"))))
+                "1s2qv51qa867b0bf29b7j90yzqmn3s2dwblczsb79h2i1gnr8ci9"))))
     (build-system qt-build-system)
     (arguments
      '(#:tests? #f))                              ;no 'test' target
@@ -183,14 +189,14 @@ Breeze is the default theme for the KDE Plasma desktop.")
 (define-public calindori
   (package
     (name "calindori")
-    (version "22.09")
+    (version "23.01.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma-mobile/" version
                                   "/calindori-" version ".tar.xz"))
               (sha256
                (base32
-                "1pwgdqznp76mhk0ikzjhy3c67qgk91kgv69ygqwzlh5hwiw5sl4n"))))
+                "0jhrxsh6gd20qpq68n2lspfkgq3bam46j6m10jnm3zckb190pfhl"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kconfig
@@ -215,7 +221,7 @@ Breeze is the default theme for the KDE Plasma desktop.")
 (define-public discover
   (package
     (name "discover")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -227,7 +233,7 @@ Breeze is the default theme for the KDE Plasma desktop.")
                                   ".tar.xz"))
               (sha256
                (base32
-                "01vdi66c7v60db25p0qi0q73wgqw6dy2kirbk34bvhld41gpxhhv"))))
+                "0025g1whq8z1s5915jhq83xsiz4klzqpayfzqkar8c6gni5s3v59"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases
@@ -261,6 +267,7 @@ Breeze is the default theme for the KDE Plasma desktop.")
                   kcmutils
                   kidletime
                   packagekit-qt5
+                  purpose
                   qtdeclarative-5
                   qtgraphicaleffects
                   qtquickcontrols2-5))
@@ -281,7 +288,7 @@ games, and tools.")
 (define-public drkonqi
   (package
     (name "drkonqi")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -289,7 +296,7 @@ games, and tools.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0vw4bfld2jdiwm4g3008x8s1lq1ydf87ckb0fvyzsp11hq9nnnk7"))))
+                "1li1j85yvg2nj392rl1jmdqx3mzmrdj0lf72j37xd8r2bi0ic9z8"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -313,7 +320,8 @@ games, and tools.")
                   kidletime
                   kwindowsystem
                   ksyntaxhighlighting
-                  qtdeclarative-5))
+                  qtdeclarative-5
+                  kuserfeedback))
     (synopsis "Crash handler for KDE software")
     (description "This package provides an automatic handler for crashed apps.")
     (home-page "https://invent.kde.org/plasma/drkonqi")
@@ -322,7 +330,7 @@ games, and tools.")
 (define-public kactivitymanagerd
   (package
     (name "kactivitymanagerd")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -330,7 +338,7 @@ games, and tools.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0hsllhqi46n25sr27crnad053ghk3hni2w496g6d2qfmi20l3g4n"))))
+                "1d7vz8gwqa7nhfn62dsqircm0qbp9ryass82k2891mqj0qrlbwid"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list boost
@@ -349,17 +357,56 @@ concept.")
     (home-page "https://invent.kde.org/plasma/kactivitymanagerd")
     (license (list license:gpl2 license:gpl3))))
 
+(define-public kde-gtk-config
+  (package
+    (name "kde-gtk-config")
+    (version "5.27.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/kde-gtk-config-" version ".tar.xz"))
+              (sha256
+               (base32
+                "13qwj3gdfvs0l6k01n8hf25kzrsksi3qi0b1rzpshcj1ix31wamf"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-gsettings-schemas-path
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "cmake/modules/FindGSettingSchemas.cmake"
+                     (("\\$\\{PC_GLIB2_PREFIX\\}")
+                      (assoc-ref inputs "gsettings-desktop-schemas"))))))))
+    (native-inputs
+     (list extra-cmake-modules pkg-config qtsvg-5 sassc))
+    (inputs
+     (list gsettings-desktop-schemas
+           gtk+
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kguiaddons
+           kdbusaddons
+           kdecoration
+           kwindowsystem
+           xsettingsd))
+    (home-page "https://invent.kde.org/plasma/kde-gtk-config")
+    (synopsis "Sync of KDE settings to GTK applications")
+    (description "This package provides tools to sync KDE settings to GTK
+applications.")
+    (license (list license:bsd-2 license:bsd-3 license:gpl2 license:gpl3))))
+
 (define-public kdecoration
   (package
     (name "kdecoration")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kdecoration-" version ".tar.xz"))
               (sha256
                (base32
-                "1x3scszz5nfwqciwc3bv0r04wgqlxs0c9j1090zvn6mjjg2nsyb7"))))
+                "153j3w00zwj6gx9ndq46vkfwx3ayig80j0jsqbkajk8zsncs89pg"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -375,7 +422,7 @@ manager which re-parents a Client window to a window decoration frame.")
 (define-public kde-cli-tools
   (package
     (name "kde-cli-tools")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -383,10 +430,10 @@ manager which re-parents a Client window to a window decoration frame.")
               (patches (search-patches "kde-cli-tools-delay-mime-db.patch"))
               (sha256
                (base32
-                "0i1lnkyb2bdvbhnr2wsgjy2sjichzxxqkvn30ca85rj21cavk2z3"))))
+                "1br1i8ba4n7d2yl618ph4glsaasn3rxy4kjp48f12l9l2pk29nxa"))))
     (build-system qt-build-system)
     (arguments
-     (list #:tests? #f ;TODO: Failing sub-tests 3/7
+     (list #:tests? #f ;TODO: Failing 1 test
            #:phases
            #~(modify-phases %standard-phases
                (add-after 'unpack 'set-writable-location
@@ -397,7 +444,13 @@ GenericDataLocation.")
                       (string-append "\"" (getcwd) "/\"")))))
                (add-before 'check 'setup-env
                  (lambda* _
-                   (setenv "HOME" (getcwd)))))))
+                   (setenv "HOME" (getcwd))))
+               (add-after 'install 'symlink-kdesu
+                 (lambda _
+                   ;; XXX: nixpkgs say kdesu need kdeinit5 in PATH, but i can't
+                   ;; found in source, need check
+                   (symlink (string-append #$output "/libexec/kf5/kdesu")
+                            (string-append #$output "/bin/kdesu")))))))
     (native-inputs (list extra-cmake-modules pkg-config shared-mime-info))
     (inputs (list kconfig
                   kdesu
@@ -422,23 +475,27 @@ KDE Frameworks 5 to better interact with the system.")
 (define-public kdeplasma-addons
   (package
     (name "kdeplasma-addons")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1a5cq0jz69hlcr22wxi2p5mzxv5xcp88220irxmq0dhpk85kywlx"))))
+                "0l7g4lx6y10xfabfcgvh7zb7h08clj0g9yx8ajyg7rzwfa43visi"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
                         (replace 'check
-                          (lambda* (#:key tests? #:allow-other-keys)
+                          (lambda* (#:key tests? inputs #:allow-other-keys)
+
                             (when tests?
+                              (setenv "TZDIR"
+                                      (search-input-directory
+                                       inputs "share/zoneinfo"))
                               (invoke "ctest" "-E"
-                               "(converterrunnertest|spellcheckrunnertest)")))))))
-    (native-inputs (list extra-cmake-modules))
+                                      "(converterrunnertest)")))))))
+    (native-inputs (list extra-cmake-modules tzdata-for-tests))
     (inputs (list karchive
                   kconfig
                   kcoreaddons
@@ -455,8 +512,8 @@ KDE Frameworks 5 to better interact with the system.")
                   plasma-framework
                   purpose
                   sonnet
+                  ;; qtwebengine-5 ; Optional for online dictionary
                   qtdeclarative-5))
-                 ;qtwebengine-5)) ;; Optional for online dictionary
     (synopsis "Add-ons to improve your Plasma experience")
     (description
      "This package provides multiple addons for the Plasma Desktop.")
@@ -466,7 +523,7 @@ KDE Frameworks 5 to better interact with the system.")
 (define-public kgamma
   (package
     (name "kgamma")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -474,7 +531,7 @@ KDE Frameworks 5 to better interact with the system.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1c305bs50km7bsn0phz7yj4x2168sxwsw9zxbpcgw4q3r53c0ywz"))))
+                "0v5fynydjha9wx9j59ysw8vxx2h2gm55q27gnnhgyv0wxva8hpnl"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kauth
@@ -487,19 +544,20 @@ KDE Frameworks 5 to better interact with the system.")
     (description
      "This package provides a tool to adjust your monitor gamma settings.")
     (home-page "https://invent.kde.org/plasma/kgamma5")
+    (properties '((upstream-name . "kgamma5")))
     (license license:gpl2+)))
 
 (define-public khotkeys
   (package
     (name "khotkeys")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0c9i4vxiiv90dpzsd2hjwavks87cvwplkj63751z8mazax6r95as"))))
+                "1ipg71jz356jrngw7kqbjs7jplpnr8q3yz694rkhqklsqlfh91bd"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kdbusaddons
@@ -523,23 +581,56 @@ are pressed.")
 (define-public kinfocenter
   (package
     (name "kinfocenter")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0zvki76yghkn158s7hb5g9drz7xaqxkmp2747404n2n0gmnmsdif"))))
+                "15hm828ifrrzsbkvknqwf0l3qxr45pdi49z823cw421z45r8ivkj"))))
     (build-system cmake-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
                         (add-after 'unpack 'fix-systemsettings-symlink
                           (lambda* (#:key inputs #:allow-other-keys)
-                            (substitute* "CMakeLists.txt"
-                              (("\\$\\{KDE_INSTALL_FULL_BINDIR\\}/systemsettings5")
-                               (search-input-file inputs
-                                                  "/bin/systemsettings5"))))))))
+                            (let ((replace (lambda (file cmd)
+                                             (substitute* file
+                                               (((string-append
+                                                  "\""
+                                                  cmd
+                                                  "\""))
+                                                (string-append
+                                                 "\""
+                                                 (search-input-file
+                                                  inputs
+                                                  (string-append "/bin/" cmd))
+                                                 "\""))))))
+                              (substitute* "CMakeLists.txt"
+                                (("\\$\\{KDE_INSTALL_FULL_BINDIR\\}/systemsettings5")
+                                 (search-input-file inputs
+                                                    "/bin/.systemsettings5-real")))
+                              (substitute* "Modules/kwinsupportinfo/kcm_kwinsupportinfo.json.in"
+                                (("@QtBinariesDir@/qdbus")
+                                 (search-input-file inputs "/bin/qdbus")))
+                              (substitute* "Modules/kwinsupportinfo/main.cpp"
+                                (("QLibraryInfo::location\\(QLibraryInfo::BinariesPath\\) \\+ QStringLiteral\\(\"/qdbus\"\\)")
+                                 (string-append "QStringLiteral(\"" (search-input-file inputs "/bin/qdbus") "\")")))
+
+                              (replace '("Modules/cpu/kcm_cpu.json"
+                                         "Modules/cpu/main.cpp") "lscpu")
+                              (replace '("Modules/opencl/kcm_opencl.json"
+                                         "Modules/opencl/main.cpp") "clinfo")
+                              (replace '("Modules/vulkan/kcm_vulkan.json"
+                                         "Modules/vulkan/main.cpp") "vulkaninfo")
+                              (replace '("Modules/glx/kcm_glx.json"
+                                         "Modules/glx/main.cpp") "glxinfo")
+                              (replace '("Modules/wayland/kcm_wayland.json"
+                                         "Modules/wayland/main.cpp") "wayland-info")
+                              (replace '("Modules/egl/kcm_egl.json"
+                                         "Modules/egl/main.cpp") "eglinfo")
+                              (replace '("Modules/xserver/kcm_xserver.json"
+                                         "Modules/xserver/main.cpp") "xdpyinfo")))))))
     (native-inputs (list aha extra-cmake-modules kdoctools pkg-config))
     ;; * vulkaninfo
     ;; Wayland KCM
@@ -566,7 +657,9 @@ are pressed.")
                   util-linux
                   vulkan-tools
                   wayland-utils
-                  xdpyinfo))
+                  xdpyinfo
+                  qttools-5
+                  clinfo))
     (propagated-inputs (list system-settings))
     (home-page "https://invent.kde.org/plasma/kinfocenter")
     (synopsis "View information about computer's hardware")
@@ -577,7 +670,7 @@ computer's hardware.")
 (define-public kmenuedit
   (package
     (name "kmenuedit")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -585,7 +678,7 @@ computer's hardware.")
                                   ".tar.xz"))
               (sha256
                (base32
-                "0z85w7w207dnsinsz8yg6s408pwfy3l7wjkcsjpyg8aj8s9x6nl7"))))
+                "0n60z44wbsjinrcrhs5cfnjs9szpsv2wzva2fiwwgh36j6zz5av7"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules kdoctools))
     (inputs (list ki18n
@@ -605,14 +698,14 @@ computer's hardware.")
 (define-public kongress
   (package
     (name "kongress")
-    (version "22.09")
+    (version "23.01.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma-mobile/" version
                                   "/kongress-" version ".tar.xz"))
               (sha256
                (base32
-                "0pjp2s774sgw2dklqib8alm1a9fkixy3s92i2v8v00znx08zf2jz"))))
+                "0yma1b44sjnvhsw31r5bndrpj2sjgwgchpzc8bf9380l6an9k4r5"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     ;; NOTE: Reporting bugs is linked to web browser, better not link it and let
@@ -640,10 +733,39 @@ computer's hardware.")
 the schedule and venue information.")
     (license license:gpl3+)))
 
+(define-public kpipewire
+  (package
+    (name "kpipewire")
+    (version "5.27.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version "/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "10j7sa8vv530c388z5rzafkdr4sx3agjqczlnkh7412whyw77lha"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (propagated-inputs (list libepoxy pipewire qtbase-5 qtdeclarative-5))
+    (inputs (list ffmpeg
+                  kcoreaddons
+                  ki18n
+                  kwayland
+                  plasma-wayland-protocols
+                  qtwayland-5
+                  wayland
+                  wayland-protocols))
+    (home-page "https://invent.kde.org/plasma/kpipewire")
+    (synopsis "Components relating to pipewire use in Plasma")
+    (description "This package offers a set of convenient classes to use
+PipeWire in Qt projects.")
+    ;; LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
+    (license (list license:lgpl2.1 license:lgpl3))))
+
 (define-public kscreen
   (package
     (name "kscreen")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -651,7 +773,7 @@ the schedule and venue information.")
                                   ".tar.xz"))
               (sha256
                (base32
-                "0361202n0366jiyv61w06jikh2i4s1fzr6x3chmdykx4fgvbqj7s"))))
+                "03qa2qrwdjgb6va7akhwpdvzky608sq2lnwj3b1f310mn3hmbmrq"))))
     (build-system cmake-build-system)
     (arguments
      ;; TODO: All tests fail
@@ -667,6 +789,7 @@ the schedule and venue information.")
                   kcoreaddons
                   kcmutils
                   kxmlgui
+                  layer-shell-qt
                   libkscreen
                   libxi
                   plasma-wayland-protocols
@@ -684,14 +807,14 @@ KDE Plasma Workspaces.")
 (define-public ksshaskpass
   (package
     (name "ksshaskpass")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/ksshaskpass-" version ".tar.xz"))
               (sha256
                (base32
-                "0z8pp2mh4s98jh8jkf6r8v014gb6svapmp0m1npzw7zcmr6jvpn6"))))
+                "0vmydvj4c9c93y9wyyjs2hr9m0hygssk1asl4idbj7mcy6n7acg1"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -708,7 +831,7 @@ call it if it is not associated to a terminal.")
 (define-public ksystemstats
   (package
     (name "ksystemstats")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -716,7 +839,7 @@ call it if it is not associated to a terminal.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "07xm6gn2k3vsl1pkrd2n9w8w8b7jq26h3cpslqha4ipw0by2mlqa"))))
+                "1fx5b566xx32q7gxi8qnnx6vny7ip5r65zi2znnx3azmwsc8jgvw"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -748,14 +871,14 @@ the running system.")
 (define-public latte-dock
   (package
     (name "latte-dock")
-    (version "0.10.8")
+    (version "0.10.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/latte-dock/"
                                   "latte-dock-" version ".tar.xz"))
               (sha256
                (base32
-                "0ali9i0y0y1c5mdaps5ybhk4nqvzzs5jq27wj8rg8xxqjyfvbah0"))))
+                "0zj818wpxdiqpzivvwrgbzj26lcmmv49zw8206v4shcms1afbl9j"))))
     (build-system cmake-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list qtbase-5
@@ -790,14 +913,14 @@ an elegant and intuitive experience for your tasks and plasmoids.")
 (define-public layer-shell-qt
   (package
     (name "layer-shell-qt")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/layer-shell-qt-" version ".tar.xz"))
               (sha256
                (base32
-                "1mvhklq7n9hhjing704jr3ybq58ixwr9fdg3phnqhmdnqc2q3w0l"))))
+                "08glqqh7jmqrli4n7j04lz3w3c6192w8p7ki51ksmwivnxylxi17"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -816,62 +939,59 @@ an elegant and intuitive experience for your tasks and plasmoids.")
 (define-public kscreenlocker
   (package
     (name "kscreenlocker")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kscreenlocker-" version ".tar.xz"))
               (sha256
                (base32
-                "0mivx0l266310iy52qi94b6wi8w2a8nl7cjn5750x66dz81jl3yj"))))
+                "11y3ksd29p8hdn8chaf8vscnc7fbh8xkjdsbakrb056p1r8kn0f2"))))
     (build-system qt-build-system)
     (arguments
-     `(#:tests? #f ;; TODO: make tests pass
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (system "Xvfb :1 -screen 0 640x480x24 &")
-             (setenv "DISPLAY" ":1")
-             #t))
-         (delete 'check)
-         ;; Tests use the installed library and require a DBus session.
-         (add-after 'install 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (if tests?
-                 (begin
-                   (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-                   (invoke "dbus-launch" "ctest")))
-             #t)))))
-    (native-inputs
-     (list extra-cmake-modules pkg-config
-           ;; For tests.
-           dbus xorg-server-for-tests))
-    (inputs
-     (list kcmutils
-           kconfig
-           kcrash
-           kdeclarative
-           kglobalaccel
-           ki18n
-           kidletime
-           knotifications
-           ktextwidgets
-           kwayland
-           kwindowsystem
-           kxmlgui
-           layer-shell-qt
-           libseccomp ;for sandboxing the look'n'feel package
-           libxcursor ;missing in CMakeList.txt
-           libxi ;XInput, required for grabbing XInput2 devices
-           linux-pam
-           elogind ;optional loginctl support
-           qtbase-5
-           qtdeclarative-5
-           qtx11extras
-           solid
-           wayland
-           xcb-util-keysyms))
+     (list #:tests? #f ;TODO: make tests pass
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'check 'check-setup
+                          (lambda* (#:key inputs outputs #:allow-other-keys)
+                            (system "Xvfb :1 -screen 0 640x480x24 &")
+                            (setenv "DISPLAY" ":1")))
+                        (delete 'check)
+                        ;; Tests use the installed library and require a DBus session.
+                        (add-after 'install 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (if tests?
+                                (begin
+                                  (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+                                  (invoke "dbus-launch" "ctest"))))))))
+    (native-inputs (list extra-cmake-modules pkg-config
+                         ;; For tests.
+                         dbus xorg-server-for-tests))
+    (inputs (list kcmutils
+                  kconfig
+                  kcrash
+                  kdeclarative
+                  kglobalaccel
+                  ki18n
+                  kio
+                  kidletime
+                  knotifications
+                  ktextwidgets
+                  kwayland
+                  kwindowsystem
+                  kxmlgui
+                  layer-shell-qt
+                  libkscreen
+                  libseccomp ;for sandboxing the look'n'feel package
+                  libxcursor ;missing in CMakeList.txt
+                  libxi ;XInput, required for grabbing XInput2 devices
+                  linux-pam
+                  elogind ;optional loginctl support
+                  qtbase-5
+                  qtdeclarative-5
+                  qtx11extras
+                  solid
+                  wayland
+                  xcb-util-keysyms))
     (home-page "https://invent.kde.org/plasma/kscreenlocker")
     (synopsis "Screen locking library")
     (description
@@ -918,14 +1038,14 @@ installed.")
 (define-public libkscreen
   (package
     (name "libkscreen")
-    (version "5.25.5")
+    (version "5.27.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/plasma/" version "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "17f2pbbkpmw3a32nsqlwd0x5xb71l6dzrh7ldwcqv46nvb54yhfa"))))
+        (base32 "1ary7qavz8vkzbvjx2mxv09h61hxa7i4f7rfgbykldbc83ripdc6"))))
     (build-system qt-build-system)
     (arguments
      '(#:phases
@@ -937,14 +1057,19 @@ installed.")
                (setenv "QT_QPA_PLATFORM" "offscreen")
                (setenv "WAYLAND_DISPLAY" "libkscreen-test-wayland-backend-0")
                (invoke "ctest" "-E"
-                "(kscreen-testscreenconfig|kscreen-testqscreenbackend|kscreen-testkwaylandbackend|kscreen-testkwaylandconfig|kscreen-testkwaylanddpms)")))))))
+                       (string-append "(kscreen-testedid"
+                                      "|kscreen-testqscreenbackend"
+                                      "|kscreen-testkwaylandbackend"
+                                      "|kscreen-testkwaylandconfig"
+                                      "|kscreen-testkwaylanddpms)"))))))))
     (native-inputs
      (list extra-cmake-modules
            pkg-config
+           qttools-5
            ;; For testing.
            dbus))
     (inputs
-     (list kwayland libxrandr plasma-wayland-protocols
+     (list kconfig kwayland libxrandr plasma-wayland-protocols
            qtbase-5 qtwayland-5 wayland qtx11extras))
     (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
     (synopsis "KDE's screen management software")
@@ -956,7 +1081,7 @@ basic needs and easy to configure for those who want special setups.")
 (define-public libksysguard
   (package
     (name "libksysguard")
-    (version "5.25.5")
+    (version "5.27.7")
     (source
      (origin
        (method url-fetch)
@@ -964,7 +1089,7 @@ basic needs and easy to configure for those who want special setups.")
                            "/libksysguard-" version ".tar.xz"))
        (patches (search-patches "libksysguard-qdiriterator-follow-symlinks.patch"))
        (sha256
-        (base32 "1gqsjsdkp25abqqp4f6cv6ih199q9ad7q1a4lkhjgsh4h8jq1856"))))
+        (base32 "066bjar4105bfyry6ni7nnikz66bqzy5nvssz6vm4np3aa996ak8"))))
     (native-inputs
      (list bash-minimal extra-cmake-modules pkg-config qttools-5))
     (inputs
@@ -1012,7 +1137,7 @@ with a ksysguardd daemon, which may also run on a remote system.")
 (define-public kwallet-pam
   (package
     (name "kwallet-pam")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1020,7 +1145,7 @@ with a ksysguardd daemon, which may also run on a remote system.")
                                   ".tar.xz"))
               (sha256
                (base32
-                "14w803lc3s2c0f4mqzzdhpfy5qnlz7wv00pbrc3v4k3zv381ci8n"))))
+                "1ac0hqpzqivg40jq7pfr2s1zydl600a3nyzfv97wc20i9myzafrb"))))
     (build-system qt-build-system)
     (arguments
      (list #:tests? #f)) ;no tests
@@ -1032,59 +1157,10 @@ you login.")
     (home-page "https://invent.kde.org/plasma/kwallet-pam")
     (license (list license:lgpl2.1+))))
 
-(define-public kwayland-server
-  (package
-    (name "kwayland-server")
-    (version "5.24.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://kde/stable/plasma/" version
-                    "/" name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1wwgb1p177g6vvyf4l5jisigwvy5756ray1x355mlp7bi1pfs664"))))
-    (build-system qt-build-system)
-    (native-inputs
-     (list extra-cmake-modules pkg-config))
-    (inputs
-     (list plasma-wayland-protocols
-           qtbase-5
-           qtwayland-5
-           kwayland
-           wayland
-           wayland-protocols))
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-install-path
-           (lambda _
-             ;; Fixes errors including nonexistant /include/KF5
-             (substitute* "src/server/CMakeLists.txt"
-               (("KF5_INSTALL") "KDE_INSTALL"))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "HOME" (getcwd))
-               (setenv "XDG_RUNTIME_DIR" (getcwd))
-               (setenv "QT_QPA_PLATFORM" "offscreen")
-               (invoke "ctest" "-E"
-                       ;; This test fails inconsistently.
-                       "kwayland-testDragAndDrop")))))))
-    (home-page "https://api.kde.org/kwayland-server/html/index.html")
-    (synopsis "KDE wayland server component")
-    (description
-     "KWayland is a Qt-style API to interact with the wayland-client and
-wayland-server API.")
-    ;; Most files are LGPL2.1 or LGPL3.0 only, at the users option.
-    (license (list license:lgpl2.1 license:lgpl3
-                   ;; src/server/drm_fourcc.h carries the MIT license.
-                   license:expat))))
-
 (define-public kwayland-integration
   (package
     (name "kwayland-integration")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1092,7 +1168,7 @@ wayland-server API.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "10xl7yrj519b9s5vq0hqqfz3vvg1fdwggw96snzm44iwycqbgss8"))))
+                "1fvf64vx5m3h5v8h697ixkcifhva6a14wlz75kv6759ji9l9fy8y"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -1129,14 +1205,14 @@ KDE Frameworks components.")
 (define-public kwin
   (package
     (name "kwin")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
-               (method url-fetch)
-               (uri (string-append "mirror://kde/stable/plasma/" version "/"
-                                   name "-" version ".tar.xz"))
-               (sha256
-                (base32
-                 "1dh7ydwxbb9r53p353d53gq7w9vmp7idvsr4s5ldxmah35436v2s"))))
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0bssp76lzqqlan5pfg6wjf4z9c6pl6p66ri8p82vqqw406x5bzyb"))))
     (build-system qt-build-system)
     (arguments
      (list
@@ -1167,9 +1243,14 @@ KDE Frameworks components.")
                   _ a Xwayland b)
                  (string-append a
                                 (which "Xwayland") b)))
+              ;; https://github.com/NixOS/nixpkgs/blob/6da4bc6cb07cba1b8e53d139cbf1d2fb8061d967/pkgs/desktops/plasma-5/kwin/0003-plugins-qpa-allow-using-nixos-wrapper.patch
+              (substitute* "src/plugins/qpa/main.cpp"
+                (("(\\(QLatin1String\\(\"kwin_wayland\"\\)\\))" _ start)
+                 (string-append start " && !QCoreApplication::applicationFilePath()\
+.endsWith(QLatin1String(\".kwin_wayland-real\"))" )))
               (substitute* '("cmake/modules/Findhwdata.cmake")
                 (("/usr/share")
-                 (string-append #$hwdata:pnp "/share")))))
+                 (string-append #$(this-package-input "hwdata") "/share")))))
           (add-after 'install 'add-symlinks
             (lambda* (#:key outputs #:allow-other-keys)
               (let ((kst5 (string-append #$output
@@ -1193,20 +1274,21 @@ KDE Frameworks components.")
                 (setenv "DISPLAY" ":1")
                 (system "Xvfb :1 &")
                 (sleep 5)
-                (invoke "ctest" "-E"
+                (invoke "dbus-launch"
+                        "ctest"
+                        "-E"
                         (string-join
-                          (list "kwayland-testXdgDecoration"
-                                "kwin-testXkb"
-                                "kwin-testPointerInput"
-                                "kwin-testXdgShellWindow"
-                                "kwin-testXdgShellWindow-waylandonly"
-                                "kwin-testSceneOpenGLES"
-                                "kwin-testSceneOpenGLES-waylandonly"
-                                "kwin-testNightColor"
-                                "kwin-testNightColor-waylandonly"
-                                "kwin-testSceneQPainter"
-                                "kwin-testLibinputDevice")
-                          "|"))))))))
+                         (list "kwin-testXkb"
+                               "kwin-testPointerInput"
+                               "kwin-testXdgShellWindow"
+                               "kwin-testXdgShellWindow-waylandonly"
+                               "kwin-testSceneOpenGLES"
+                               "kwin-testSceneOpenGLES-waylandonly"
+                               "kwin-testNightColor"
+                               "kwin-testNightColor-waylandonly"
+                               "kwin-testScriptedEffects"
+                               "kwayland-testWaylandSurface")
+                         "|"))))))))
     (native-inputs (list extra-cmake-modules
                          dbus
                          kdoctools
@@ -1243,7 +1325,6 @@ KDE Frameworks components.")
                   kscreenlocker
                   ktextwidgets
                   kwayland
-                  kwayland-server
                   kwindowsystem
                   kxmlgui
                   libqaccessibilityclient
@@ -1285,7 +1366,7 @@ conjunction with the KDE Plasma Desktop.")
 (define-public kwrited
   (package
     (name "kwrited")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1293,7 +1374,7 @@ conjunction with the KDE Plasma Desktop.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "03gw3czdgyf35n6x79x416rk6f7w1ayzmy5pb65v9733nx1j34mh"))))
+                "1a4g05ynblbz0j0lqclxf6628x6wcd3b52l0smic3rdvbis43v0n"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kcoreaddons ki18n kpty knotifications))
@@ -1336,7 +1417,7 @@ and minimalistic.")
 (define-public milou
   (package
     (name "milou")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1344,7 +1425,7 @@ and minimalistic.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0ijdbiq169sy47g0x22pj9x6abldpfxcnski4w1jh9hi9qz1rc25"))))
+                "0lq8m72nwink8x46m8qd5zdkadym1kc70ipnkb04b16mr7zhnsc1"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kcoreaddons
@@ -1365,7 +1446,7 @@ on top of Baloo.")
 (define-public oxygen-sounds
   (package
     (name "oxygen-sounds")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1373,7 +1454,7 @@ on top of Baloo.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "04rn3ccqszznknvblz2i8r406m32hk4d3yzma4vzq93jfk57hdf1"))))
+                "132jaabfpj8k6xk6f1732a0qgjz1mzyyk74b1mm7q7pyhpypr2gq"))))
     (build-system cmake-build-system)
     (native-inputs (list extra-cmake-modules))
     (home-page "https://community.kde.org/Frameworks")
@@ -1384,58 +1465,82 @@ on top of Baloo.")
 (define-public plasma
   (package
     (name "plasma")
-    (version "5.25.5")
+    (version "5.27.7")
     (source #f)
     (build-system trivial-build-system)
     (arguments
      (list #:builder #~(begin
                          (mkdir #$output))))
-    (propagated-inputs (list bluedevil
+    ;; TODO: cleanup, check what is no need
+    (propagated-inputs (list kdeclarative ;; require by sddm breeze theme
+
+                             baloo
+                             breeze-icons ; default mouse icon
                              breeze
                              breeze-gtk
-                             discover
                              drkonqi
-                             kactivitymanagerd
+                             kactivitymanagerd ; require this run dbus
                              kde-cli-tools
-                             ;; kde-gtk-config
                              kdecoration
                              kdeplasma-addons
                              kgamma
                              khotkeys
-                             kinfocenter
-                             kmenuedit
+                             ktexteditor
+
                              kscreen
-                             kscreenlocker
-                             ksshaskpass
+                             libkscreen
+
                              ksystemstats
                              kwallet-pam
-                             kwayland-integration
                              kwin
-                             kwrited
                              kinit
-                             layer-shell-qt
-                             libkscreen
+
                              libksysguard
                              milou
                              ;; oxygen
                              oxygen-sounds
+
+                             kde-gtk-config
+                             kdesu
+                             krunner
+                             kinfocenter
+                             kscreenlocker
+                             ksshaskpass
+                             discover
+                             kmenuedit
+                             plasma-welcome
                              plasma-browser-integration
                              plasma-desktop
                              plasma-disks
+                             polkit-kde-agent
+                             system-settings
+                             xdg-desktop-portal-kde
+                             ;; module cyclic referencing
+                             (module-ref
+                              (resolve-interface
+                               '(gnu packages kde-systemtools))
+                              'dolphin)
+                             (module-ref
+                              (resolve-interface
+                               '(gnu packages kde-systemtools))
+                              'konsole)
+                             (module-ref
+                              (resolve-interface
+                               '(gnu packages kde-systemtools))
+                              'spectacle)
+
+                             kwayland-integration
                              plasma-firewall
                              plasma-integration
                              plasma-nm
                              plasma-pa
                              plasma-systemmonitor
                              ;; plasma-thunderbolt ;; waiting for bolt
+
+                             kglobalaccel
                              plasma-vault
                              plasma-workspace
-                             plasma-workspace-wallpapers
-                             polkit-kde-agent
-                             powerdevil
-                             sddm
-                             system-settings
-                             xdg-desktop-portal-kde))
+                             powerdevil))
     (synopsis "The KDE Plasma desktop environment")
     (home-page "https://kde.org/plasma-desktop/")
     (description
@@ -1445,14 +1550,14 @@ on top of Baloo.")
 (define-public plasma-bigscreen
   (package
     (name "plasma-bigscreen")
-    (version "5.25.90")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://kde/unstable/plasma/" version
+              (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1445j8hzfvh2z91fa8nxrc0z576c67cq5fxcs19pmzpnjjli1ads"))))
+                "0b2w0d5w1s2jm7al1nqdc1qh9fmrj8fw93wjbb2bsa9fabz2i81b"))))
     (build-system cmake-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -1491,16 +1596,16 @@ is controllable via voice or TV remote.")
 (define-public plasmatube
   (package
     (name "plasmatube")
-    (version "22.09")
+    (version "23.01.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma-mobile/"
                                   version "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "00w9p5fcpv4s406lmcdcbrxf19sgkvf9yy8pfjmf1asvvvi8bpnk"))))
+                "06hwa1m6gaacjmcyssa63vw43cgx096x9aj87rv1z9k9qsv2qgfj"))))
     (build-system cmake-build-system)
-    (native-inputs (list extra-cmake-modules))
+    (native-inputs (list extra-cmake-modules pkg-config))
     (inputs
      (list kconfig
            kirigami
@@ -1510,6 +1615,7 @@ is controllable via voice or TV remote.")
            qtmultimedia-5
            qtquickcontrols2-5
            qtsvg-5
+           mpv
            youtube-dl))
     (home-page "https://apps.kde.org/plasmatube/")
     (synopsis "Kirigami YouTube video player")
@@ -1549,14 +1655,14 @@ active window on Plasma Desktop.")
 (define-public plasma-browser-integration
   (package
     (name "plasma-browser-integration")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "18pbn5ic5l3m8i1y99yprpwd4x4746aq3abqn1f2cq5h2683h2ia"))))
+                "0c30pdlhl452bjpdc7mwxl01hqabahyc0j1cc54liy0hla9vir9y"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules pkg-config))
     ;; TODO: Figure out how to integrate this package into web browsers
@@ -1587,14 +1693,14 @@ the KDE Plasma 5 desktop.")
 (define-public plasma-desktop
   (package
     (name "plasma-desktop")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "05s1pkwr4xmkghp8jrwcyrvjm83n68ngmk2694055xcfgi0pxicg"))))
+                "1njkjf3fhxfmwyviypxqzrn23klxiih82bazvd8y61cshqwai6i2"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules
                          dbus
@@ -1602,7 +1708,9 @@ the KDE Plasma 5 desktop.")
                          intltool
                          pkg-config
                          qtsvg-5
-                         qttools-5))
+                         qttools-5
+                         ;; require QtWaylandScanner
+                         qtwayland-5))
     (inputs (list packagekit-qt5
                   signon-plugin-oauth2
                   signond
@@ -1676,6 +1784,7 @@ the KDE Plasma 5 desktop.")
                   qqc2-desktop-style
                   qtbase-5
                   qtdeclarative-5
+                  qtquickcontrols-5
                   qtquickcontrols2-5
                   qtwayland
                   qtx11extras
@@ -1706,17 +1815,6 @@ the KDE Plasma 5 desktop.")
                       (string-append "\"" (search-input-directory
                                            inputs "/share/xml/iso-codes")
                                      "\"")))))
-               (add-after 'unpack 'patch-qml-import-path
-                 (lambda _
-                   (substitute*
-                       '("applets/pager/package/contents/ui/main.qml"
-                         "containments/desktop/package/contents/ui/FolderView.qml"
-                         "containments/desktop/package/contents/ui/main.qml"
-                         "containments/panel/contents/ui/main.qml")
-                     (("^import \"(utils|FolderTools|LayoutManager).js\" as "
-                       line mod)
-                      (string-append "import \"../code/" mod
-                                     ".js\" as ")))))
                (replace 'check
                  (lambda* (#:key tests? #:allow-other-keys)
                    (when tests?
@@ -1739,7 +1837,7 @@ activities effectively, without being distracting.")
 (define-public plasma-disks
   (package
     (name "plasma-disks")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1747,7 +1845,7 @@ activities effectively, without being distracting.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0vci2cf8vx2lclypys9rmvjb8haakv6ksrvqm5j28pazbq2kskvl"))))
+                "0jwjv20ra1mhwl2cm7x2jz8pasmkc58fd57qxhzzf84l4sgbda9v"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kcoreaddons
@@ -1768,7 +1866,7 @@ activities effectively, without being distracting.")
 (define-public plasma-firewall
   (package
     (name "plasma-firewall")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1776,7 +1874,7 @@ activities effectively, without being distracting.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0k3pc0dcsjr2hhh4hr8vhsvaddn66s6imm8skrr02icxqvljs6jh"))))
+                "1n5ljkydhcx6qapwrshslq835zaf02gssp2zvzi3vwfy4asc7ind"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list iproute
@@ -1794,7 +1892,7 @@ activities effectively, without being distracting.")
 (define-public plasma-integration
   (package
     (name "plasma-integration")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1802,7 +1900,7 @@ activities effectively, without being distracting.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1pab56cg2zi8fcaar53lhhh98iw7l07f5lkymkqhsh8a5crfc3yr"))))
+                "1ahzckvc69wk2rx73sl40h0in1y7ny0vm0i7lbrrcggv1v36dwp3"))))
     (build-system qt-build-system)
     (arguments
      (list #:tests? #f                  ;TODO: Failing tests
@@ -1844,14 +1942,14 @@ integration of Qt applications when running on a KDE Plasma workspace.")
 (define-public plasma-nano
   (package
     (name "plasma-nano")
-    (version "5.24.3")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
                                   version "/plasma-nano-" version ".tar.xz"))
               (sha256
                (base32
-                "13jxhfi3c3dhg7zdyfqnsii661h1am0w9dsv82dalqvwr1mw28l5"))))
+                "14wc76bxnwd0z51gz4zb88p5h9n2711ifr1wpx9lrj9r7y1llank"))))
     (build-system cmake-build-system)
     (native-inputs (list extra-cmake-modules pkg-config qttools))
     (inputs (list qtbase-5
@@ -1869,7 +1967,7 @@ integration of Qt applications when running on a KDE Plasma workspace.")
 (define-public plasma-nm
   (package
     (name "plasma-nm")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -1877,7 +1975,7 @@ integration of Qt applications when running on a KDE Plasma workspace.")
                                   ".tar.xz"))
               (sha256
                (base32
-                "036bx0qjrjanfxy8aiy6ab7rmm2h8l7wlkvlwhzw2hgl1w03xjps"))))
+                "1w9zclih2mh8gqwahsmbbm0nrg1b6gcr5w2w02szlw30iq8k92j8"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -1890,6 +1988,7 @@ integration of Qt applications when running on a KDE Plasma workspace.")
     (inputs (list kconfigwidgets
                   kcompletion
                   kcoreaddons
+                  kcmutils
                   kdeclarative
                   kdbusaddons
                   kio
@@ -2004,7 +2103,7 @@ customizable platform for mobile devices.")
 (define-public plasma-pa
   (package
     (name "plasma-pa")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -2012,11 +2111,12 @@ customizable platform for mobile devices.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0g06pm1isnzx4hv6380rjpyr22s4j5iw9083s71vnl4npx28npvb"))))
+                "1vg28v5n648y94m6amcwmr0n7dw4a2kfx16kny7jb9bkmxrgnwsc"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules kdoctools pkg-config))
     (inputs (list glib
                   kcoreaddons
+                  kcmutils
                   kdeclarative
                   kglobalaccel
                   knotifications
@@ -2035,17 +2135,18 @@ PulseAudio.")
 (define-public plasma-pass
   (package
     (name "plasma-pass")
-    (version "1.2.0")
+    (version "1.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/" name "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "107pd6cnkd46px83pm3q7vbw10g5pd0qsw77jmr0c774k4xv1w01"))))
+                "0x1yj9wsz2hb5333g645wjasxd83gd2phpwg80h24vfpqdhz62qj"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
-    (inputs (list ki18n kitemmodels kwindowsystem oath-toolkit qtdeclarative-5))
+    (inputs (list ki18n kitemmodels kwindowsystem oath-toolkit
+                  qgpgme qtdeclarative-5))
     (propagated-inputs (list plasma-framework))
     (home-page "https://invent.kde.org/plasma/plasma-pass")
     (synopsis "Plasma applet for the Pass password manager")
@@ -2157,14 +2258,14 @@ Desktop.")
 (define-public plasma-vault
   (package
     (name "plasma-vault")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "15nf4myl6sry0930m8qiixpr1i8bh1g58cy2gf304h029vr2fn5j"))))
+                "1p5m5rlamb50cbd1qlx81m003sv8vdijkpy5airmy1pf6xmvl6hq"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules pkg-config))
     (inputs (list kio
@@ -2181,20 +2282,20 @@ Desktop.")
     (home-page "https://invent.kde.org/plasma/plasma-vault")
     (synopsis "Plasma applet and services for creating encrypted vaults")
     (description "Provides Plasma applet and services for creating encrypted
-	vaults.")
+vaults.")
     (license (list license:gpl2 license:gpl3))))
 
 (define-public plasma-systemmonitor
   (package
     (name "plasma-systemmonitor")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0rs3avhpmfapzha8dkir9ny60ba2m92bbfv4avsd85vz5kggg29h"))))
+                "1qr8krc7d1hzxv0gx0ii0rxk9bm62rgh157mr8x785qqbd11nq8l"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list ki18n
@@ -2210,6 +2311,7 @@ Desktop.")
                   ksystemstats
                   kitemmodels
                   libksysguard
+                  qqc2-desktop-style
                   qtdeclarative-5
                   qtquickcontrols2-5))
     (synopsis "System sensors, process information and other system resources
@@ -2220,19 +2322,18 @@ sensors, process information and other system resources.")
     (license (list license:gpl2 license:gpl3))))
 
 (define-public plasma-welcome
-(let ((commit "dac7569078782a96f122782c15d34e51737d2b89") ; no tags
-      (revision "1"))
   (package
     (name "plasma-welcome")
-    (version (git-version "0.1-pre" revision commit))
-    (home-page "https://invent.kde.org/plasma/plasma-welcome")
+    (version  "5.27.7")
     (source (origin
-              (method git-fetch)
-              (uri (git-reference (url home-page) (commit commit)))
-              (file-name (git-file-name name version))
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version "/plasma-welcome"
+                                  "-"
+                                  version ".tar.xz"))
               (sha256
                (base32
-                "1x7ra699r5a9kpa3isdnx6af4j6778kw2pmprnx4s8f1rwk2idhh"))))
+                "0nz1hxz5nvgl3sbm6k3a76s0l3fy3j38i4plly2zhp5xqdk0ks1x"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -2245,33 +2346,39 @@ sensors, process information and other system resources.")
            kirigami
            knotifications
            kservice
+           knewstuff
+           kaccounts-integration
+           signond
+           kuserfeedback
+           libaccounts-qt
            kwindowsystem
            networkmanager-qt
            plasma-framework
            qtdeclarative-5
            qtgraphicaleffects
            qtsvg-5
-           qtquickcontrols2-5
-           system-settings))
+           qtquickcontrols2-5))
     (synopsis "Plasma welcome screen")
     (description
      "This package provides a wizard for Plasma to configure settings.")
-    (license (list license:gpl2 license:gpl3)))))
+    (home-page "https://invent.kde.org/plasma/plasma-welcome")
+    (license (list license:gpl2 license:gpl3))))
 
 (define-public plasma-workspace
   (package
     (name "plasma-workspace")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0pxwg3i07sipfchn4qkmlr6kcgqbhj2s10xq69wi32x1fc13jx5x"))))
+                "0pyf5vc466mfgicxpp76igdz58lpa0n7x2cl2hhaq4zmrlfr8hh6"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules kdoctools pkg-config qtsvg-5
-                         qttools-5))
+                         qttools-5
+                         xorg-server-for-tests))
     (inputs (list appmenu-gtk-module
                   appstream-qt
                   baloo
@@ -2279,6 +2386,7 @@ sensors, process information and other system resources.")
                   breeze-icons
                   dbus
                   fontconfig
+                  icu4c
                   iso-codes
                   kactivities
                   kactivities-stats
@@ -2308,6 +2416,8 @@ sensors, process information and other system resources.")
                   kquickcharts
                   kpackage
                   kpeople
+                  kpipewire
+                  kquickcharts
                   krunner
                   kscreenlocker
                   ktexteditor
@@ -2338,6 +2448,7 @@ sensors, process information and other system resources.")
                   qtbase-5
                   qtdeclarative-5
                   qtquickcontrols2-5
+                  qttools-5
                   qtwayland-5
                   qtgraphicaleffects
                   qtx11extras
@@ -2349,13 +2460,25 @@ sensors, process information and other system resources.")
                   xrdb
                   xmessage
                   xsetroot
-                  zlib))
+                  polkit-qt
+                  ucd
+
+                  libxcursor
+                  libkexiv2
+                  gpsd
+                  zlib
+
+                  ;; qml dependency
+                  qtquickcontrols-5
+                  plasma-nm
+                  plasma-pa
+                  kscreen))
     (arguments
      (list #:phases
            #~(modify-phases %standard-phases
                (add-after 'unpack 'patch-wallpaper
                  (lambda* (#:key inputs #:allow-other-keys)
-                   (substitute* "sddm-theme/theme.conf.cmake"
+                   (substitute* "lookandfeel/sddm-theme/theme.conf.cmake"
                      (("background=..KDE_INSTALL_FULL_WALLPAPERDIR.")
                       (string-append "background="
                                      #$(this-package-input "breeze")
@@ -2365,7 +2488,8 @@ sensors, process information and other system resources.")
                    (let ((xmessage (search-input-file inputs "/bin/xmessage"))
                          (xsetroot (search-input-file inputs "/bin/xsetroot"))
                          (xrdb (search-input-file inputs "/bin/xrdb"))
-                         (kinit #$(this-package-input "kinit")))
+                         (kinit #$(this-package-input "kinit"))
+                         (qttools #$(this-package-input "qttools")))
                      (substitute* "startkde/startplasma.cpp"
                        (("xmessage") xmessage)
                        (("xsetroot") xsetroot))
@@ -2376,16 +2500,24 @@ sensors, process information and other system resources.")
                      (substitute* "startkde/plasma-session/startup.cpp"
                        (("CMAKE_INSTALL_FULL_LIBEXECDIR_KF5..")
                         (string-append "\"" kinit
-                                       "/lib/libexec/kf5")))
+                                       "/libexec/kf5")))
                      (substitute* (list
                                    "startkde/startplasma-wayland.cpp"
                                    "startkde/startplasma-x11.cpp")
                        (("kdeinit5_shutdown")
-                        (string-append kinit "/bin/kdeinit5_shutdown"))))))
+                        (string-append kinit "/bin/kdeinit5_shutdown")))
+                     ;; QT_INSTALL_BINS refers to qtbase, but qdbus is in
+                     ;; qttools.
+                     (substitute* "CMakeLists.txt"
+                       (("ecm_query_qt\\(QtBinariesDir QT_INSTALL_BINS\\)")
+                        (string-append "set(QtBinariesDir \"" qttools
+                                       "/bin\")"))))))
                (delete 'check)
                (add-after 'install 'check-after-install
                  (lambda* (#:key tests? #:allow-other-keys)
                    (when tests?
+                     (setenv "DISPLAY" ":1")
+                     (system "Xvfb +extension GLX :1 &")
                      (setenv "HOME" (getcwd))
                      (setenv "XDG_RUNTIME_DIR" (getcwd))
                      (setenv "XDG_CACHE_HOME" (getcwd))
@@ -2394,8 +2526,17 @@ sensors, process information and other system resources.")
                              (string-append #$output
                                             "/lib/qt5/plugins:"
                                             (getenv "QT_PLUGIN_PATH")))
-                     (invoke "ctest" "-E"
-                             "(appstreamtest|lookandfeel-kcmTest|tst_triangleFilter|systemtraymodeltest|testdesktop| screenpooltest)")))))))
+                     (setenv "QML2_IMPORT_PATH"
+                             (string-append #$output
+                                            "/lib/qt5/qml:"
+                                            (getenv "QML2_IMPORT_PATH")))
+                     (invoke "dbus-launch" "ctest"
+                             "--output-on-failure"
+                             "--rerun-failed"
+                             "-E"
+                             "(appstreamtest|tasksmodeltest|shelltest|\
+testimagefinder|systemtraymodeltest|testimagelistmodel|\
+testpackageimagelistmodel|testimageproxymodel|testslidemodel|testdesktop)")))))))
     (home-page "https://invent.kde.org/plasma/plasma-workspace")
     (synopsis "Plasma workspace components")
     (description
@@ -2406,14 +2547,14 @@ hardware management, and a high degree of customizability.")
 (define-public plasma-workspace-wallpapers
   (package
     (name "plasma-workspace-wallpapers")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0pdgg8h6zwyxf1pj241mg3hd94wh38bqxj68af5jfp10xrwkzcyr"))))
+                "181q0mmmp3dygzafgh4qq2pwi5w15vw6mwc21nkl98qf6z773ify"))))
     (build-system cmake-build-system)
     (native-inputs (list extra-cmake-modules))
     (home-page "https://community.kde.org/Frameworks")
@@ -2425,14 +2566,14 @@ hardware management, and a high degree of customizability.")
 (define-public polkit-kde-agent
   (package
     (name "polkit-kde-agent")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-1-" version ".tar.xz"))
               (sha256
                (base32
-                "1qb9nxlkgcv0c30l2vqgf9xs9d220q5pg7ikpb6zjzvj4wsvlvwd"))))
+                "0p6gnv59mnb5y6riiifyg98sk8zycchv8bkf7x1332qa7zqhcjcc"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list ki18n
@@ -2448,25 +2589,27 @@ hardware management, and a high degree of customizability.")
      "This package contains a daemon providing a Polkit authentication
 UI for Plasma")
     (home-page "https://invent.kde.org/plasma/polkit-kde-agent-1")
+    (properties '((upstream-name . "polkit-kde-agent-1")))
     (license license:gpl2+)))
 
 (define-public powerdevil
   (package
     (name "powerdevil")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0anisirn7z8aw442npdnk1csb5ghpzj2hx49gpw4l6ijk70b76pr"))))
+                "151qhpf5j33jk3jhhxsr4zaf0z3f8xlnw8inmzf2a8lficiq9060"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules qttools-5 pkg-config))
     (inputs (list bluez-qt
                   glib
                   kauth
                   kactivities
+                  kcmutils
                   kscreen
                   kidletime
                   kconfig
@@ -2497,14 +2640,14 @@ of a Plasma shell.")
 (define-public system-settings
   (package
     (name "system-settings")
-    (version "5.25.5")
+    (version "5.27.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/systemsettings-" version ".tar.xz"))
               (sha256
                (base32
-                "0n7mf6ygi8fgn1m6pk2fadnqj1h58mxqni3h19xbi373wfypq5fl"))))
+                "0vkcmb4sch97sq5xd8rj8z42qdcxy5ys758q6dl69kbv9hadl7bw"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kauth
@@ -2529,8 +2672,22 @@ of a Plasma shell.")
                   knotifications
                   krunner
                   plasma-workspace
-                  qtdeclarative-5))
+                  qtdeclarative-5
+                  ;; qml's indirect dependency
+                  ;; XXX: make them propagated dependency runtime qml module
+                  qtquickcontrols-5
+                  qtquickcontrols2-5
+                  kirigami-addons
+                  qtgraphicaleffects
+                  kdeclarative
+                  kuserfeedback
+                  knewstuff
+                  plasma-pa
+                  bluez-qt
+                  kwin
+                  bluedevil))
     (synopsis "Control center to configure Plasma Desktop")
     (description "This package provides configuration UI for Plasma Desktop.")
     (home-page "https://invent.kde.org/plasma/systemsettings")
+    (properties '((upstream-name . "systemsettings")))
     (license license:gpl2+)))
diff --git a/gnu/packages/kde-systemtools.scm b/gnu/packages/kde-systemtools.scm
index 498dcbf0ed..56ce37fea8 100644
--- a/gnu/packages/kde-systemtools.scm
+++ b/gnu/packages/kde-systemtools.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,31 +26,35 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (guix gexp)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages kde-plasma)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages search)
   #:use-module (gnu packages vnc)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages xorg))
 
 (define-public dolphin
   (package
     (name "dolphin")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/dolphin-" version ".tar.xz"))
        (sha256
-        (base32 "07ian9aai9mjygn6bgxanv8h16i83wf69nkl8c9qynwbz4fkwmwf"))))
+        (base32 "0bys24i2a3a65ahq5p3q1zr2px8jqip1gjn5m7rngq4hcddb1ji8"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools ruby ruby-test-unit))
@@ -77,6 +82,7 @@
            breeze-icons ;; default icon set
            phonon
            qtbase-5
+           qtx11extras
            solid))
     (arguments
      `(#:tests? #f)) ;; TODO: 4/15 tests fail even with offscreen
@@ -99,14 +105,14 @@ The main features of Dolphin are:
 (define-public dolphin-plugins
   (package
     (name "dolphin-plugins")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/dolphin-plugins-" version ".tar.xz"))
        (sha256
-        (base32 "1ii1xrz22caxcgrr9ibzkh7nvw1h9d8xb5a2fadni0makk02qjif"))))
+        (base32 "0h1b559icj5g3xrx5697a9rncpdcmsjg774c6m36ild56bwc048v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -128,14 +134,14 @@ Dolphin with the version control systems: Bzr, Git, Mercurial, Subversion.")
 (define-public khelpcenter
   (package
     (name "khelpcenter")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/khelpcenter-" version ".tar.xz"))
        (sha256
-        (base32 "0ga270imh1ssifj0w3434z9hgrmn0dqrschygywy1z2hcpyx991d"))))
+        (base32 "10rivj5c14v5hwk87z41gwk830sy35fz0jg1jpay43jzw0ss995y"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -160,17 +166,17 @@ Dolphin with the version control systems: Bzr, Git, Mercurial, Subversion.")
            qtbase-5
            xapian))
     (arguments
-     `(#:tests? #f  ;; 1/1 test fails
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               ;; Since qt-wrap selectors do not wrap for /share/kf5
-               ;; directories, we need this so khelpcenter can find html4.css.
-               (wrap-program (string-append out "/bin/khelpcenter")
-                 `("XDG_DATA_DIRS" suffix
-                   (,(string-append (assoc-ref inputs "khtml") "/share"))))))))))
+     (list #:tests? #f ;;1/1 test fails
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'install 'wrap-executable
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            ;; Since qt-wrap selectors do not wrap for /share/kf5
+                            ;; directories, we need this so khelpcenter can find html4.css.
+                            (wrap-program (string-append #$output
+                                                         "/bin/khelpcenter")
+                              `("XDG_DATA_DIRS" suffix
+                                (,(string-append (assoc-ref inputs "khtml")
+                                                 "/share")))))))))
     (home-page "https://apps.kde.org/khelpcenter/")
     (synopsis "KDE documentation viewer")
     (description "KHelpCenter uses meta data files which describe the
@@ -187,14 +193,14 @@ document meta data file.")
 (define-public konsole
   (package
     (name "konsole")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/konsole-" version ".tar.xz"))
        (sha256
-        (base32 "19yrhjjbwq7kaip05ig8raqnh87k5dg57jck2zrsdrhq2f4nb3ql"))))
+        (base32 "1k68y1i3g3bsz1dz81jhkx1q2fb13rbm5ywh632bcyln0c6l0vz0"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools zlib))
@@ -224,7 +230,9 @@ document meta data file.")
            kxmlgui
            breeze-icons ;; default icon set
            qtbase-5
-           qtscript))
+           qtscript
+           qtmultimedia-5
+           icu4c))
     (arguments
      `(#:tests? #f)) ;; TODO: 2/15 tests fail even with HOME, offscreen, SHELL, debus
     (home-page "https://www.kde.org/")
@@ -241,14 +249,14 @@ This package is part of the KDE base applications module.")
 (define-public krfb
   (package
     (name "krfb")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/krfb-" version ".tar.xz"))
        (sha256
-        (base32 "09h05al7ivf9pzf2p6mnja1124746fawmr3vdk6rggjjw0p0wgn1"))))
+        (base32 "0qbrvf2wa3af1z1dpq3pqkngfbrfdgqfz8xs1qpdpyb7jxnphry7"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config kdoctools))
@@ -261,6 +269,7 @@ This package is part of the KDE base applications module.")
            kdnssd
            ki18n
            knotifications
+           kpipewire
            kwallet
            kwayland
            kwidgetsaddons
@@ -295,14 +304,14 @@ This package is part of the KDE networking module.")
 (define-public ksystemlog
   (package
     (name "ksystemlog")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/ksystemlog-" version ".tar.xz"))
        (sha256
-        (base32 "0x9j3m0kndbaxldsk2rh8zawz0nqqdpn1xf36m4zzymm3b034glv"))))
+        (base32 "15c1h1dlcgbx2adhjzry2zwia0alym7vc251zymyzhl2xjacvqlm"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -331,17 +340,70 @@ who want to quickly see problems occurring on their server.
 This package is part of the KDE administration module.")
     (license license:gpl2+)))
 
+(define-public spectacle
+  (package
+    (name "spectacle")
+    (version "23.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/spectacle-" version ".tar.xz"))
+       (sha256
+        (base32 "1fyklcvz0zndxabflkka75rham6768rp01as7m5dv0ic4lipkf9m"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "ctest" "-E"
+                             "filename_test")))))))
+    (native-inputs
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kconfig
+           kcoreaddons
+           kdbusaddons
+           kglobalaccel
+           kguiaddons
+           ki18n
+           kio
+           kirigami
+           knotifications
+           kpipewire
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libxcb
+           purpose
+           qtdeclarative-5
+           qtquickcontrols2-5
+           qtwayland-5
+           qtx11extras
+           wayland
+           wayland-protocols
+           plasma-wayland-protocols
+           xcb-util
+           xcb-util-cursor
+           xcb-util-image))
+    (home-page "https://apps.kde.org/spectacle/")
+    (synopsis "Screenshot capture utility for KDE")
+    (description "Spectacle is a screenshot taking utility for the KDE.")
+    (license license:gpl2+)))
+
 (define-public yakuake
   (package
     (name "yakuake")
-    (version "22.04.3")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/" version
                                   "/src/yakuake-" version ".tar.xz"))
               (sha256
                (base32
-                "0h5c8j65m6gylvwrj4sag4rlx92brbfllyrwpi7kwfjbwf7a5j1k"))))
+                "17ylm5z5lzjq5g4d48s0clpl3hg4rym9sc1p5hr0wfs9jx7197jy"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index 5774fa9910..4e665da599 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -52,14 +52,14 @@
 (define-public ark
   (package
     (name "ark")
-    (version "22.04.3")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/" version
                                   "/src/ark-" version ".tar.xz"))
               (sha256
                (base32
-                "1wjy90qkkzafwcw8d4v9cyhmc3sgfipc1085hq2ghqhvrgdyzs00"))
+                "081swq9f87yxg4dxdl5i4hszhr0q4ph402in397zfa5vpyspzy41"))
               ;; The libarchive package in Guix does not support
               ;; xar; disable related tests.
               (patches (search-patches "ark-skip-xar-test.patch"))))
@@ -99,6 +99,7 @@
            kdbusaddons
            khtml
            ki18n
+           kiconthemes
            kio
            kitemmodels
            kparts
@@ -244,14 +245,14 @@ well as CD-ROM images.")
 (define-public filelight
   (package
     (name "filelight")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/filelight-" version ".tar.xz"))
               (sha256
                (base32
-                "1fqgmpq5dznbn5lalx1j6dyynhylijrcqw3x9hrwxcqwr275h9iw"))))
+                "1mwl1dkknvqw9hd5jsh4cdx1zd8f6rxca0vyq01wrx44q9p6dn1n"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kirigami
@@ -303,47 +304,45 @@ your computer.")
       (license license:lgpl2.1+))))
 
 (define-public isoimagewriter
-  (let ((commit "bd1ef4f0ce179fa874b102689022ebda3e7b4c16")
-        (revision "1"))
-    (package
-      (name "isoimagewriter")
-      (version (git-version "0.8" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://invent.kde.org/utilities/isoimagewriter")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0dha2y4kmyppi6c0g0hclp53fjj963vq27q7azznpl0bz6zb4042"))))
-      (build-system qt-build-system)
-      (native-inputs (list extra-cmake-modules))
-      (inputs (list kauth
-                    karchive
-                    kcoreaddons
-                    ki18n
-                    kiconthemes
-                    kcrash
-                    solid
-                    kwidgetsaddons))
-      (home-page "https://invent.kde.org/utilities/isoimagewriter")
-      (synopsis "Write hybrid ISO files onto USB disks")
-      (description
-       "This package provides a tool to write ISO files to USB disks.")
-      (license license:gpl3+))))
+  (package
+    (name "isoimagewriter")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://invent.kde.org/utilities/isoimagewriter")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1iphp2krgadc175570iiyaxbnjgpc1xilc71gkcbn5n0yd7qmkbv"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kauth
+                  karchive
+                  kcoreaddons
+                  ki18n
+                  kiconthemes
+                  kcrash
+                  solid
+                  kwidgetsaddons))
+    (home-page "https://invent.kde.org/utilities/isoimagewriter")
+    (synopsis "Write hybrid ISO files onto USB disks")
+    (description
+     "This package provides a tool to write ISO files to USB disks.")
+    (license license:gpl3+)))
 
 (define-public kate
   (package
     (name "kate")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kate-" version ".tar.xz"))
        (sha256
-        (base32 "0dnlr1cld6lqanqv98bss66w2bi2y78vqb8jx26addn2r1w4ygkf"))))
+        (base32 "0yyhh21pvzsaz7swmghdchzsfk089axhqkjwjv1m8j4q3q3rhv86"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -369,16 +368,23 @@ your computer.")
            kxmlgui
            breeze-icons ;; default icon set
            qtbase-5
-           qtscript))
+           qtscript
+           qtx11extras))
     (arguments
-     `(#:tests? #f ;; 2/7 tests fail
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; This test requires a 'bin' diretory under '/usr'.
+             (substitute* "addons/externaltools/autotests/externaltooltest.cpp"
+               (("QStringLiteral[(]\"/usr\"[)]")
+                (format #f "QStringLiteral(\"~a\")"
+                        (dirname (dirname (which "ls"))))))))
          (add-before 'check 'check-setup
            (lambda _
              ;; make Qt render "offscreen", required for tests
              (setenv "QT_QPA_PLATFORM" "offscreen")
-             (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache"))))))
+             (setenv "HOME" (getcwd)))))))
     (home-page "https://kate-editor.org/")
     (synopsis "Multi-document, multi-view text editor")
     (description "Kate is a powerful text editor that can open multiple files
@@ -402,7 +408,7 @@ Kate's features include:
 (define-public kdebugsettings
   (package
     (name "kdebugsettings")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
@@ -410,7 +416,7 @@ Kate's features include:
                                   ".tar.xz"))
               (sha256
                (base32
-                "0l9q7cmzc93zz2zc5ncq3q7q6jil6ai36n2vh70s2wsi8b0gsms8"))))
+                "02igg8ry1cxa83pdj6pgwzw7hpjwfrfk57d9ybgfvy2x08d5kvqz"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kcoreaddons
@@ -419,7 +425,8 @@ Kate's features include:
                   ki18n
                   kwidgetsaddons
                   kitemviews
-                  kcompletion))
+                  kcompletion
+                  kxmlgui))
     (home-page "https://invent.kde.org/utilities/kdebugsettings")
     (synopsis "Choose which QLoggingCategory are displayed")
     (description
@@ -429,14 +436,14 @@ Kate's features include:
 (define-public kbackup
   (package
     (name "kbackup")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/kbackup-" version ".tar.xz"))
               (sha256
                (base32
-                "0c0zdk00j9qssjdb5dg5hwc5mx7h5kvriyszia2xizqjq2m53c3k"))))
+                "121w54ivmq8qnxc97g47i8vq4nkivypp84pqs9rs5bid4cpfvh9p"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kguiaddons
@@ -447,6 +454,7 @@ Kate's features include:
                   kiconthemes
                   karchive
                   kwidgetsaddons
+                  libarchive
                   shared-mime-info))
     (home-page "https://apps.kde.org/kbackup/")
     (synopsis "Backup program with an easy-to-use interface")
@@ -464,14 +472,14 @@ drive, USB stick, etc
 (define-public kcalc
   (package
     (name "kcalc")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/kcalc-" version ".tar.xz"))
               (sha256
                (base32
-                "01rn6qy40q4b90i5mysrygkqh5fzq885dgcd11l6r8s59ijjcjlk"))))
+                "04mqicwqn6h99jgh1zl0wsgk1rdkswzxaq8b8yz5hq654dsyq6y1"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules kdoctools))
     (inputs (list gmp
@@ -493,7 +501,7 @@ drive, USB stick, etc
 (define-public kcharselect
   (package
     (name "kcharselect")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
@@ -501,7 +509,7 @@ drive, USB stick, etc
                                   ".tar.xz"))
               (sha256
                (base32
-                "1gs9jkq76dkhjgjqpl5dcsx0l2qi6i0pk122y1qmwgyd6f8af35b"))))
+                "05z80j8bwrj1zfpy376gsx30bv7bxsa3lyvrqsz197w1g8vp5gix"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules))
     (inputs (list kbookmarks kcoreaddons kcrash ki18n kwidgetsaddons kxmlgui))
@@ -517,14 +525,14 @@ characters.")
 (define-public kdialog
   (package
     (name "kdialog")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/kdialog-" version ".tar.xz"))
               (sha256
                (base32
-                "1lqzhfn5g16qr6ada9i0i3kshna1zxp1y20ylwmmsa82bgmyblhx"))))
+                "042az7d9ngar6xp7gv3xcmlns9hpbvs39dkymanqgc0riwa1mvsx"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules kdoctools))
     (inputs (list ktextwidgets
@@ -573,15 +581,14 @@ conversions between European currencies.")
 (define-public keysmith
   (package
     (name "keysmith")
-    (version "22.09")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://kde/stable/plasma-mobile/"
-                                  (version-major+minor version) "/keysmith-"
-                                  version ".tar.xz"))
+              (uri (string-append "mirror://kde/stable/release-service/"
+                                  version "/src/keysmith-" version ".tar.xz"))
               (sha256
                (base32
-                "0w3vvmp9rn6ahly2fm9n6f4glfr7d84bfvj33mrs5pn7n99h7jgy"))))
+                "1rfp516adliyc57nx4ha1rp8v2z340ygsvblh5sqmsdsg2ivjklj"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules pkg-config))
     (inputs (list kdbusaddons
@@ -603,14 +610,14 @@ with support for QR scanning.")
 (define-public kfind
   (package
     (name "kfind")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/kfind-" version ".tar.xz"))
               (sha256
                (base32
-                "0py6ygnj7qxbwrldf2a3hqc1cqd5yvyfi1l0nji0hwn8lvidnjhc"))))
+                "03g9cn0wp3f2n9zwzbc5sbcria4hcp2ls77fbxyj3wkady3m50if"))))
     (build-system qt-build-system)
     (native-inputs (list extra-cmake-modules kdoctools))
     (inputs (list karchive
@@ -680,16 +687,16 @@ with support for QR scanning.")
 (define-public kontrast
   (package
     (name "kontrast")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/kontrast-" version ".tar.xz"))
               (sha256
                (base32
-                "03y3y5p29zx4nmqi7hp3abxq2n2bgwbz2knhn9vhl3im3ghp7lmp"))))
+                "08qwvc2b5bj3012lvwxainbw7d34mkbwwznj3661ydsnfjyxxs92"))))
     (build-system qt-build-system)
-    (native-inputs (list extra-cmake-modules))
+    (native-inputs (list extra-cmake-modules kdoctools))
     (inputs (list kirigami
                   ki18n
                   kcoreaddons
@@ -776,14 +783,14 @@ the computer and 3D Printers.")
 (define-public kmag
   (package
     (name "kmag")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kmag-" version ".tar.xz"))
       (sha256
-       (base32 "08jwv2wnb67vjgz5pv1nn6rwl9ldj8dfd74l6va9vz4x5pk7d859"))))
+       (base32 "13ar37yv3gk5451cdqrgbm91jm50qw4559sx25fv95g2i9wa7z74"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -806,14 +813,14 @@ artists to web-designers to people with low vision.")
 (define-public kmousetool
   (package
     (name "kmousetool")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmousetool-" version ".tar.xz"))
        (sha256
-        (base32 "13pvdhhf3fdkaiyjp0ijqm5qdffabyw7qq2051l1nqv6i7w6lgwx"))))
+        (base32 "1prh9xdzwx0mx93g9cbjy55hxwcci90hvrv2ckj4dqdnv5fv4h21"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -844,14 +851,14 @@ whom pressing buttons hurts.")
 (define-public kmouth
   (package
     (name "kmouth")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmouth-" version ".tar.xz"))
        (sha256
-        (base32 "0lzaw7qqvpqzfz4nb2lk8l06c4yxacfg5982yk33g5q0j7r19bpy"))))
+        (base32 "0qyzq4cvcsacb7hr6n79i3rzyjr0m3c8lrf8fwbzdivswpk8wss3"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -883,14 +890,14 @@ sentences to be re-spoken.")
 (define-public kronometer
   (package
     (name "kronometer")
-    (version "2.2.3")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/kronometer/" version
                            "/src/kronometer-" version ".tar.xz"))
        (sha256
-        (base32 "05hs8729a3aqjpwmn2xdf2sriacrll4sj4ax3lm4s1ravj09n9bm"))))
+        (base32 "0xn4z9y2yl57a5skwp4cjsn1456kiwnwvhrddc0qsihgdyif3fbm"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -916,15 +923,24 @@ to save the times and resume them later.")
 (define-public krusader
   (package
     (name "krusader")
-    (version "2.7.2")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/krusader/" version
                            "/krusader-" version ".tar.xz"))
        (sha256
-        (base32 "02b1jz5a7cjr13v6c7fczrhs1xmg1krnva5fxk8x2bf4nd1rm8s1"))))
+        (base32 "16n2y861ka8jhackf7hd9b0b0argifc1p0a114dvrc0qjddg0k4f"))))
     (build-system qt-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-compat.h
+                 (lambda _
+                   ;; Those fallbacks for pre KF-5.91 cause missing includes.
+                   (substitute* "app/compat.h"
+                     (("#  include <kcompletion_version\\.h>") "")
+                     (("#  include <karchive_version\\.h>") "")))))))
     (native-inputs
      (list extra-cmake-modules kdoctools))
     (inputs
@@ -993,14 +1009,14 @@ either be created or generated from a image.")
 (define-public okteta
   (package
     (name "okteta")
-    (version "0.26.9")
+    (version "0.26.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/okteta/" version
                            "/src/okteta-" version ".tar.xz"))
        (sha256
-        (base32 "1yszs3w78dqdr5d8djf6gp4abzc5lcms859imqcq50wl9r6lr18n"))))
+        (base32 "18bj8gd9kvdk85ypykl668safiyqn5qskgrsb214wxxaprl6phj9"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools qttools-5 shared-mime-info))
@@ -1052,14 +1068,14 @@ redone.")
 (define-public print-manager
   (package
     (name "print-manager")
-    (version "22.08.0")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/print-manager-" version ".tar.xz"))
        (sha256
-        (base32 "1abwj1ccm70adzx07ykqjlb4f6y55k2rv1j861dl0822187vl799"))))
+        (base32 "1fnbkx2xk3pr3cwcji1xbswcf5b7h8r4kag8i3lv28cnjw3ahs52"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1199,14 +1215,14 @@ Features:
 (define-public sweeper
   (package
     (name "sweeper")
-    (version "22.04.3")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/sweeper-" version ".tar.xz"))
        (sha256
-        (base32 "0kda4a5d9a11am2y6f91bx8v3nb8mw9qh671nskvgkx46x1pww21"))))
+        (base32 "19b382cgdcd4qh4ppdmbhsacvcc9nlbs7spcg8ii02bdpx6qw9b7"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 8ad24931b2..17cbc73295 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages apr)
   #:use-module (gnu packages astronomy)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
@@ -59,6 +60,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages ebook)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
@@ -70,6 +72,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gperf)
   #:use-module (gnu packages gps)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages image)
@@ -77,10 +80,13 @@
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages kde-pim)
   #:use-module (gnu packages kde-plasma)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mp3)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
@@ -89,6 +95,8 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages samba)
+  #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
@@ -100,14 +108,14 @@
 (define-public baloo-widgets
   (package
     (name "baloo-widgets")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/baloo-widgets-" version ".tar.xz"))
        (sha256
-        (base32 "02p4v8g4syk908mg7f0l5fpqn7ddsxqji1n8jqghsdkkdsvry7mn"))))
+        (base32 "01k8kmzr2vgd567v4js080cnyl2i43zh6zz25ml76z77lywlfzz6"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -124,14 +132,14 @@ This package contains GUI widgets for baloo.")
 (define-public grantleetheme
   (package
     (name "grantleetheme")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/grantleetheme-" version ".tar.xz"))
        (sha256
-        (base32 "01ls16x6ngi43lcwffav9qig3afakrs04v4wvyfb8lm7sd65hgf9"))))
+        (base32 "01kkj3y6xhc792jaxnkglkwvlqx9ckn5yhlfrpqff5hlf5x9vn4w"))))
     (build-system qt-build-system)
     (arguments `(#:tests? #f))  ; unexpected error in the test suite.
     (native-inputs
@@ -152,14 +160,14 @@ This package contains GUI widgets for baloo.")
 (define-public akregator
   (package
     (name "akregator")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akregator-" version ".tar.xz"))
        (sha256
-        (base32 "01rgyl2hwjprq4z5yjc99j6jk9vrhjy608ha72j470pw6g47ac5s"))))
+        (base32 "0g916453zip8i5g61pf8ib68fiqfbmr1i1lhbnwmsv1cryx035w9"))))
     (build-system qt-build-system)
     (arguments
      `(#:phases
@@ -197,6 +205,7 @@ This package contains GUI widgets for baloo.")
            kpimcommon
            kpimtextedit
            kquickcharts
+           ktextaddons
            ktexteditor
            kuserfeedback
            libkdepim
@@ -218,6 +227,62 @@ It comes with a fast search, advanced archiving functionality and an internal
 browser for easy news reading.")
     (license license:gpl2+)))
 
+(define-public gwenview
+  (package
+    (name "gwenview")
+    (version "23.04.3")
+    (source
+     (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/release-service/" version
+                            "/src/gwenview-" version ".tar.xz"))
+        (sha256
+         (base32 "0vijsq4174p4asdjq47bzdp2xkfn8hpg7b4dgp3yvapfxwjgp148"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "ctest" "-E"
+                             "(placetreemodeltest|historymodeltest|contextmanagertest|urlutilstest)")))))))
+    (native-inputs
+     (list extra-cmake-modules kdoctools pkg-config))
+    (inputs
+     (list baloo
+           cfitsio
+           exiv2
+           kactivities
+           kcolorpicker
+           kguiaddons
+           kiconthemes
+           kimageannotator
+           kio
+           kitemmodels
+           knotifications
+           kparts
+           lcms
+           libjpeg-turbo
+           libkdcraw
+           libpng
+           libtiff
+           phonon
+           purpose
+           qtimageformats
+           qtsvg-5
+           qtwayland-5
+           qtx11extras
+           wayland
+           wayland-protocols
+           zlib))
+    (home-page "https://userbase.kde.org/Gwenview")
+    (synopsis "Image viewer for KDE")
+    (description
+     "Gwenview is an image viewer for KDE.  It also provides image editing and
+annotating features.")
+    (license license:gpl2+)))
+
 (define-public kdenlive
   (package
     (name "kdenlive")
@@ -305,14 +370,14 @@ projects.")
 (define-public kdevelop
   (package
     (name "kdevelop")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://kde/stable/release-service/" version
                             "/src/kdevelop-" version ".tar.xz"))
         (sha256
-         (base32 "14a80z4sahxyzssrz605zp7ah5xdjbc22ccv0vwcnhr5lzr76v31"))))
+         (base32 "0m1q5nhx7wd4b8850ikw7dk6zka57gapf78wawjv2h1hijxcyf4v"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config shared-mime-info qttools-5))
@@ -371,14 +436,16 @@ projects.")
        ;; heaptrack_gui
        ;; meson
     (arguments
-     `(#:tests? #f  ;; there are some issues with the test suite
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'add-include-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "cmake/modules/FindClang.cmake"
-               (("^\\s*PATHS \"\\$\\{CLANG_LIBRARY_DIRS\\}\"" line)
-                (string-append line " " (assoc-ref inputs "clang") "/lib"))))))))
+     (list #:tests? #f ;; there are some issues with the test suite
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'configure 'add-include-path
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "plugins/clang/Locate_CLANG_BUILTIN_DIR.cmake"
+                     (("\"\\$[{]CLANG_INCLUDE_DIRS[}]\"" line)
+                      (string-append
+                       line " \""
+                       (assoc-ref inputs "clang") "/lib\""))))))))
     (home-page "https://kdevelop.org")
     (synopsis "IDE for C, C++, Python, Javascript and PHP")
     (description "The KDevelop IDE provides semantic syntax highlighting, as
@@ -391,7 +458,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
 (define-public kdevelop-pg-qt
   (package
     (name "kdevelop-pg-qt")
-    (version "2.2.1")
+    (version "2.2.2")
     (source
      (origin
        (method git-fetch)
@@ -400,7 +467,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
               (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "3kfab4p717acbdkcdi41d98vwch7v431gb2qi6s38hmclsf8bf8g"))))
+        (base32 "0kdi12phrl5afv41dy856g2vv3bp0a1b1vwp90h08wbqsfyy1zlm"))))
     (native-inputs
      (list extra-cmake-modules))
     (inputs
@@ -444,7 +511,7 @@ illustrate project schedules.")
 (define-public kio-extras
   (package
     (name "kio-extras")
-    (version "22.08.0")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
@@ -452,7 +519,7 @@ illustrate project schedules.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0gzna2ps2qd2js28c97kjpcbah7zz8n4s4932faggc2nz5z5wnyn"))))
+                "1ygxfq62idpgf1dlic1245y5gf0fnkrpbqxd230xmxi7a35za8qd"))))
     (build-system cmake-build-system)
     (arguments
      (list #:phases #~(modify-phases %standard-phases
@@ -461,22 +528,40 @@ illustrate project schedules.")
                             (when tests?
                               (setenv "HOME" (getcwd))
                               (setenv "TMPDIR" (getcwd))
-                              (invoke "ctest" "-E" "testkioarchive")))))))
-    (native-inputs (list extra-cmake-modules dbus kdoctools qttools-5))
-    (inputs (list karchive
+                              (invoke "ctest" "-E" "(thumbnailtest|testkioarchive)")))))))
+    (native-inputs (list extra-cmake-modules dbus kdoctools pkg-config qttools-5))
+    ;; TODO: libappimage, kdsoap-ws-discovery-client
+    (inputs (list gperf
+                  imath
+                  kactivities
+                  kactivities-stats
+                  karchive
+                  kbookmarks
                   kconfig
                   kconfigwidgets
                   kcoreaddons
+                  kdnssd
                   kdbusaddons
+                  kdsoap
+                  kguiaddons
                   ki18n
-                  kdnssd
                   kio
-                  solid
-                  kbookmarks
-                  kguiaddons
                   ksyntaxhighlighting
+                  libimobiledevice
+                  libkexiv2
+                  libmtp
+                  libplist
+                  libssh
+                  libtirpc
+                  openexr
+                  phonon
                   qtbase-5
-                  qtsvg-5))
+                  qtsvg-5
+                  samba
+                  shared-mime-info
+                  solid
+                  taglib
+                  zlib))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Additional components to increase the functionality of KIO")
     (description
@@ -516,7 +601,7 @@ the functionality of the KDE resource and network access abstractions.")
 (define-public kirigami-addons
   (package
     (name "kirigami-addons")
-    (version "0.8.0")
+    (version "0.10.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -525,7 +610,7 @@ the functionality of the KDE resource and network access abstractions.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1bi6sc1fpycxj1ydd08gkbw1x1pi2ab6p9bk4175hm0mb0rykdir"))))
+                "154yzhy6nva4d39lnsh7i40vvrj146263j07kfkd1g1w4qy381y3"))))
     (build-system qt-build-system)
     (arguments
      (list #:tests? #f)) ; failing test
@@ -564,6 +649,58 @@ and desktop experiences.")
 expression library, that is used in Krita.")
     (license license:gpl3+)))
 
+(define-public kcolorchooser
+  (package
+    (name "kcolorchooser")
+    (version "23.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kcolorchooser-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1ripvn2li74rwngicay9c78j0slia1rpsi1f43rbb36p9af02lwq"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules))
+    (inputs
+     (list kcoreaddons
+           ki18n
+           kxmlgui))
+    (home-page "https://apps.kde.org/de/kcolorchooser/")
+    (synopsis "Color selector utility")
+    (description "KColorChooser is a utility to select a color.")
+    (license license:expat)))
+
+(define-public kolourpaint
+  (package
+    (name "kolourpaint")
+    (version "23.04.3")
+    (source
+     (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/release-service/" version
+                            "/src/kolourpaint-" version ".tar.xz"))
+        (sha256
+         (base32 "1ab9v6ksb185f6jfhhk578qazhmy8hx6s8vjr9xyh7k3jilayj9v"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kguiaddons
+           ki18n
+           kio
+           kjobwidgets
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui))
+    (home-page "http://kolourpaint.org/")
+    (synopsis "Paint program for KDE")
+    (description "KolourPaint is a paint program for KDE.  It is useful for
+painting, image manipulating and icon editing.")
+    (license (list license:lgpl2.0+ license:bsd-2))))
+
 (define-public krita
   (package
     (name "krita")
@@ -714,14 +851,14 @@ accessibility clients such as screen readers.")
 (define-public libkomparediff2
   (package
     (name "libkomparediff2")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://kde/stable/release-service/" version
                             "/src/libkomparediff2-" version ".tar.xz"))
         (sha256
-         (base32 "0hjxxhfv0ds05l821avq787sfdy0afr595xx266c20x8fxgm6kv9"))))
+         (base32 "1zkiyyrbfbr1i7zyhhayf53daaarzc8a2xz0iqjy9za7rawnmgbv"))))
     (native-inputs
      (list extra-cmake-modules pkg-config))
     (inputs
@@ -745,14 +882,14 @@ used in KDE development tools Kompare and KDevelop.")
 (define-public qca
   (package
     (name "qca")
-    (version "2.3.4")
+    (version "2.3.7")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://kde/stable/qca/" version
                             "/qca-" version ".tar.xz"))
         (sha256
-         (base32 "1i7m5y3dfwij9cyjp72ya5zd2skgp7mfmrmf7bvrbzg3ly0mhsbb"))))
+         (base32 "0hrzmzvzsgzn4nvplgg2wmxaql7fjvi3rcqgwgimnzb8ahxk9qpy"))))
     (build-system cmake-build-system)
     (native-inputs
      (list pkg-config))
@@ -766,26 +903,110 @@ including SSL/TLS, X.509 certificates, SASL, OpenPGP, S/MIME CMS, and smart
 cards.")
     (license license:lgpl2.1+)))
 
+(define-public kommit
+  (package
+    (name "kommit")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/"
+                                  name "/" name "-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0vp9d1x01na28p6smbd6spx14bjnzilr2bjsd380h1d17b9cm3hy"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "ctest" "-E"
+                             "(difftest|clonedialogtest|overlaytest)")))))))
+    (native-inputs
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kxmlgui
+           kio
+           ktextwidgets
+           ktexteditor
+           ksyntaxhighlighting))
+    (home-page "https://apps.kde.org/kommit/")
+    (synopsis "Git client for KDE")
+    (description
+     "Kommit is a git client for KDE.")
+    (license license:gpl3+)))
+
+(define-public kompare
+  (package
+    (name "kompare")
+    (version "23.04.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/release-service/" version
+                                  "/src/kompare-" version ".tar.xz"))
+              (sha256
+               (base32
+                "058rr0n5r9czxqs6ixacx0bm8hglwjmhfpf5xf1zr0fjgcirlrwy"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list libkomparediff2
+           kcodecs
+           kconfig
+           kcoreaddons
+           kiconthemes
+           kjobwidgets
+           kparts
+           ktexteditor
+           kwidgetsaddons))
+    (home-page "https://apps.kde.org/kompare/")
+    (synopsis "Graphical file differences tool")
+    (description
+     "Kompare is a program to view the differences between files.  Features
+include:
+@itemize
+@item comparison of files or directories via a graphical interface,
+@item bezier-based connection widget letting you see both source and destination,
+@item graphical viewing of patch files in normal, context, unified and diff
+ formats,
+@item interactive application of differences,
+@item network transparency,
+@item ability to view plain-text diff output in embedded viewer,
+@item navigation of multiple-file diffs with dockable navigation tree,
+@item graphical interface for commonly used diff command line options,
+@item switch source and destination
+@item and diff statistics.
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public kopeninghours
   (package
     (name "kopeninghours")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "03hslgx4zgg7gsnz2xhx4wnchvqfc5n8c6ihgwz3972fkxsjfdvq"))))
+                "14m4wl79b4qad42l1capz59pslfcrm25jshyhmcqzhqb0wzwkav9"))))
     (build-system cmake-build-system)
     (arguments
-     (list #:phases '(modify-phases %standard-phases
-                       (replace 'check
-                         (lambda* (#:key tests? #:allow-other-keys)
-                           (when tests?
-                             (setenv "QT_QPA_PLATFORM" "offscreen")
-                             (invoke "ctest" "-E"
-                                     "(evaluatetest|iterationtest)")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "QT_QPA_PLATFORM" "offscreen")
+                              (invoke "ctest" "-E"
+                                      "(evaluatetest|iterationtest)")))))))
     (native-inputs (list bison extra-cmake-modules flex))
     (inputs (list boost
                   kholidays
@@ -803,14 +1024,14 @@ opening hours expressions.")
 (define-public kosmindoormap
   (package
     (name "kosmindoormap")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "042axwxa1497snr8f0m6a61gl9ypdkvllnhnlw4h5ffah7yl5n3s"))))
+                "1winrgc3698wjpil0hblw7bgbgaxgjh6h3dsl1kwc77w14f6vql3"))))
     (build-system cmake-build-system)
     (native-inputs (list bison extra-cmake-modules flex))
     (inputs (list ki18n
@@ -829,7 +1050,7 @@ multi-floor indoor maps.")
 (define-public kpmcore
   (package
     (name "kpmcore")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -837,7 +1058,7 @@ multi-floor indoor maps.")
                     "/src/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1y28dnmbnkkjar4kl033fkmcnazgczc3pgdac2q1ry2hjzkcbnpa"))))
+                "0cz0pz84sxa7lvkq8v25775z7x7g6pz9sq7c90pfv8h9qsz8q1l9"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules pkg-config))
@@ -851,14 +1072,14 @@ multi-floor indoor maps.")
            qca
            `(,util-linux "lib")))
     (arguments
-     `(#:tests? #f ;; 4/6 tests fail do to no plugin instance
-	   #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-cmake-install-directories
-           (lambda _
-             (substitute* "src/util/CMakeLists.txt"
-               (("DESTINATION \\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
-                "DESTINATION share/polkit-1/actions")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-cmake-install-directories
+            (lambda _
+              (substitute* "src/util/CMakeLists.txt"
+                (("DESTINATION \\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
+                 "DESTINATION share/polkit-1/actions")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Library for managing partitions")
     (description "Library for managing partitions.")
@@ -867,27 +1088,35 @@ multi-floor indoor maps.")
 (define-public kpublictransport
   (package
     (name "kpublictransport")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "mirror://kde/stable/release-service/" version
-                    "/src/kpublictransport-" version ".tar.xz"))
+              (uri (string-append "mirror://kde/stable/release-service/"
+                                  version "/src/kpublictransport-" version
+                                  ".tar.xz"))
               (sha256
                (base32
-                "0z7zyyiq4815m74s6p841k1c4pxbrss7hnkag8kr5qa3q4264kg9"))))
+                "04fa9ismgkhskpmjf6b8gvra2z0jpsigz79b93m1snxm4046xihb"))))
     (build-system qt-build-system)
     (arguments
-     (list #:phases '(modify-phases %standard-phases
-                       (replace 'check
-                         (lambda* (#:key tests? #:allow-other-keys)
-                           (when tests?
-                             (setenv "QT_QPA_PLATFORM" "offscreen")
-                             (invoke "ctest" "-E"
-                              "(mergeutiltest|departuretest|journeytest|networkconfigtest|locationhistorymodeltest|navitiaparsertest|otpparsertest|ivvassparsertest|cachetest)")))))))
-    (native-inputs (list extra-cmake-modules pkg-config))
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-before 'check 'check-setup
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (setenv "QT_QPA_PLATFORM" "offscreen")
+                            (setenv "HOME" ".")
+                            (setenv "TZ" "Europe/Prague")
+                            (setenv "TZDIR"
+                                    (search-input-directory inputs
+                                                            "share/zoneinfo")))))))
+    (native-inputs (list extra-cmake-modules pkg-config tzdata-for-tests))
     ;; TODO: clipper and osmctools are not detected
-    (inputs (list clipper osmctools protobuf qtdeclarative-5 zlib))
+    (inputs (list clipper
+                  osmctools
+                  protobuf
+                  qtdeclarative-5
+                  zlib
+                  networkmanager-qt
+                  ki18n))
     (home-page "https://api.kde.org/kdepim/kpublictransport/html/index.html")
     (synopsis "Library for accessing realtime public transport data")
     (description
@@ -924,29 +1153,30 @@ different notification systems.")
 (define-public kdeconnect
   (package
     (name "kdeconnect")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "mirror://kde/stable/release-service/"
-                            version "/src/kdeconnect-kde-"
-                            version ".tar.xz"))
-        (sha256
-         (base32
-          "1yzx49gcm7x2wdk53iznyjz09y2a6mrrhh68xilbcsafyiw3l3zr"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/"
+                           version "/src/kdeconnect-kde-"
+                           version ".tar.xz"))
+       (sha256
+        (base32
+         "1gcmqqj752h3lmcpvc7cm6k6bpb158ha7i5ysp0kqvf8cmpi5ydz"))))
     (build-system qt-build-system)
     (arguments
-     `(#:configure-flags '("-DBUILD_TESTING=ON"
-                           "-DKDE_INSTALL_LIBEXECDIR=libexec"
-                           ;; So kdeconnect.so isn't installed to lib/plugins
-                           "-DPLUGIN_INSTALL_DIR=lib/qt5/plugins")
-       #:tests? #f)) ; tests fail hard in our build environment
+     (list #:configure-flags #~'("-DBUILD_TESTING=ON"
+                                 "-DKDE_INSTALL_LIBEXECDIR=libexec"
+                                 ;; So kdeconnect.so isn't installed to lib/plugins
+                                 "-DPLUGIN_INSTALL_DIR=lib/qt5/plugins")
+           #:tests? #f)) ; tests fail hard in our build environment
     (native-inputs
      (list extra-cmake-modules
            kdoctools
            libxtst
            pkg-config
-           python-wrapper))
+           python-wrapper
+           wayland-protocols))
     (inputs
      (list kcmutils
            kconfigwidgets
@@ -974,7 +1204,9 @@ different notification systems.")
            qtquickcontrols2-5
            qtx11extras
            qtwayland-5
-           wayland))
+           wayland
+           modemmanager-qt
+           libxkbcommon))
     (home-page "https://community.kde.org/KDEConnect")
     (synopsis "Enable your devices to communicate with each other")
     (description "KDE Connect is a project that enables all your devices to
@@ -1072,14 +1304,14 @@ to perform data analysis.")
 (define-public kdf
   (package
     (name "kdf")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/kdf-" version ".tar.xz"))
               (sha256
                (base32
-                "0p7iqld2phc74pmhyb8bqqg9clnc7l2rh6hd0i6jcsp266cgg205"))))
+                "11ndcbfkq5fhb1lfij0mmm43fw49sh0z3nw644sll0smcwic76aa"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1105,14 +1337,14 @@ unmount drives and view them in a file manager.")
 (define-public ktimer
   (package
     (name "ktimer")
-    (version "20.12.0")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/" version
                                   "/src/ktimer-" version ".tar.xz"))
               (sha256
                (base32
-                "12fz5v5ky03h18jl75fnq1zagjq8qzi1s1q7phjz5d1rbhwc57ls"))))
+                "1n5az5cgb0q28lz5f7afqjlfga32q232g836nkl1sfq8n5whj5z5"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules
@@ -1132,14 +1364,14 @@ timers for each task can be started, stopped, changed, or looped.")
 (define-public kcachegrind
   (package
     (name "kcachegrind")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/" version
                                   "/src/kcachegrind-" version ".tar.xz"))
               (sha256
                (base32
-                "05wcnfqs0fdfhfpagn0pqky0l7014nblv8r9fv1khy4g5mdlm4hs"))))
+                "175bag1mfidp7bdsjb3zinib76jy8h881rqxgmkn90gmv4fqy62b"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules perl python qttools-5 kdoctools))
@@ -1166,14 +1398,14 @@ Python, PHP, and Perl.")
 (define-public libkdegames
   (package
     (name "libkdegames")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/libkdegames-" version ".tar.xz"))
       (sha256
-       (base32 "1aihbha073fw2bxmdk4l768716kvrlyjd72x2nfx0vvr0ngc5wx9"))))
+       (base32 "1sicpfsrkxn5d0fdy71h7033rpkb94r5hjvv5ab7qbmzb1qa4awq"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1212,7 +1444,7 @@ Python, PHP, and Perl.")
 (define-public marble-qt
   (package
     (name "marble-qt")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method git-fetch)
@@ -1222,16 +1454,16 @@ Python, PHP, and Perl.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-		"0pn0mjh5cg7mgjj82bsj8zikzdyq2fmzckdcav2y0msxwi859crl"))))
+         "02qv2mfga4jm5br9dr8g6kcqr93q2ssq06m383kh83lkvickxzc9"))))
     (build-system qt-build-system)
     (arguments
      ;; FIXME: libmarblewidget-qt5.so.28 not found.  Also enable the
      ;; corresponding configure flag to build tests.
-     `(#:tests? #f
-       #:configure-flags
-       (list "-DBUILD_MARBLE_TOOLS=YES" ; file conversion tools
-             "-DBUILD_TOUCH=YES"
-             "-DBUILD_MARBLE_TESTS=FALSE")))
+     (list #:tests? #f
+           #:configure-flags
+           #~(list "-DBUILD_MARBLE_TOOLS=YES" ; file conversion tools
+                   "-DBUILD_TOUCH=YES"
+                   "-DBUILD_MARBLE_TESTS=FALSE")))
     (native-inputs
      (list extra-cmake-modules kdoctools qttools-5))
     ;; One optional dependency missing: libwlocate.
@@ -1269,24 +1501,42 @@ creating routes by drag and drop and more.")
 (define-public okular
   (package
     (name "okular")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "0f98kfsb6sirpym27j2wwz4qr4p5vl4pbnckxd3gmgyfpz8mszln"))))
+        (base32 "1vgcqkq6mzd270hzabmdqqv105iv6kr6ah2h18b15al2n9rmg0bi"))))
     (build-system qt-build-system)
-    ;; The tests fail because they can't find the proper mimetype plugins:
-    ;; "org.kde.okular.core: No plugin for mimetype '"image/jpeg"'."
-    ;; The built program seems to work okay, so we skip the tests for now.
     (arguments
-     `(#:tests? #f
-       #:configure-flags
-       (list "-DBUILD_TESTING=OFF")))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'check)
+          ;; use installed data to check.
+          (add-after 'install 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "ctest"
+                        "--output-on-failure"
+                        "--rerun-failed"
+                        "-E"
+                        "(mainshelltest|parttest|chmgeneratortest)"))))
+          (add-before 'check 'check-setup
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((share (string-append (assoc-ref outputs "out") "/share")))
+                (setenv "QT_QPA_PLATFORM" "offscreen")
+                (setenv "HOME" ".")
+                (setenv "XDG_DATA_DIRS"
+                        (string-append
+                         share ":" (getenv "XDG_DATA_DIRS")))
+                (invoke "update-desktop-database" "-v" share)))))))
     (native-inputs
-     (list extra-cmake-modules kdoctools pkg-config))
+     (list extra-cmake-modules kdoctools pkg-config
+           ;; for test
+           desktop-file-utils))
     (inputs
      (list ebook-tools
            breeze-icons
@@ -1324,7 +1574,8 @@ creating routes by drag and drop and more.")
            qtwayland-5
            threadweaver
            kcrash
-           kjs))
+           kjs
+           qtx11extras))
     (home-page "https://apps.kde.org/okular/")
     (synopsis "Document viewer")
     (description
@@ -1335,7 +1586,7 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
 (define-public poxml
   (package
     (name "poxml")
-    (version "22.08.1")
+    (version "23.04.3")
     (source (origin
               (method url-fetch)
               (uri
@@ -1343,7 +1594,7 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
                               "/src/poxml-" version ".tar.xz"))
               (sha256
                (base32
-                "13jp5g5la3kq9i3qybdvwfl4vgqz3hxf64qzmh7kl71ykas7s5vi"))))
+                "11rqd7hhsy6f8qi0529cmy381bhskji6wf4fij7yjksmrsdvfw6d"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules kdoctools))
@@ -1360,14 +1611,14 @@ PO template files.")
 (define-public kdegraphics-mobipocket
   (package
     (name "kdegraphics-mobipocket")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "1kxvzgmq83hml10pc4j66r59dsar7h92w2i0cs1nhar781mz666n"))))
+        (base32 "13hn6dh5d4vsblvg6wyyvbmcyl0yyqr8srilik86wilp58qbsrdv"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
@@ -1382,14 +1633,14 @@ Mobipocket e-books in Dolphin and other KDE apps.")
 (define-public libkexiv2
   (package
     (name "libkexiv2")
-    (version "22.08.1")
+    (version "23.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "0iwpy79ppv4bbsqrszp9kmghgjvkl13gdpnafsbikh4wy1ch4cv9"))))
+        (base32 "16cb7cab4pyarwwn2byyvanwlakcgq5h203hkysp44flszq515cl"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules))
diff --git a/gnu/packages/patches/akonadi-not-relocatable.patch b/gnu/packages/patches/akonadi-not-relocatable.patch
index bd4cbee79f..04c2a36b5f 100644
--- a/gnu/packages/patches/akonadi-not-relocatable.patch
+++ b/gnu/packages/patches/akonadi-not-relocatable.patch
@@ -22,10 +22,10 @@ index 4e8cc81..63161b7 100644
  )
 
  install(FILES
-diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
+diff --git a/KPimAkonadiConfig.cmake.in b/KPimAkonadiConfig.cmake.in
 index bcf7320..1574319 100644
---- a/KF5AkonadiConfig.cmake.in
-+++ b/KF5AkonadiConfig.cmake.in
+--- a/KPimAkonadiConfig.cmake.in
++++ b/KPimAkonadiConfig.cmake.in
 @@ -1,10 +1,10 @@
  @PACKAGE_INIT@
 
diff --git a/gnu/packages/patches/grantlee-fix-i586-precision.patch b/gnu/packages/patches/grantlee-fix-i586-precision.patch
new file mode 100644
index 0000000000..f3d4384b5b
--- /dev/null
+++ b/gnu/packages/patches/grantlee-fix-i586-precision.patch
@@ -0,0 +1,40 @@
+From 13094b78a790786030a468453c2b3ead4c7fd9cf Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Sun, 13 Nov 2022 14:01:21 +0100
+Subject: [PATCH] Fix formatting of some larger file sizes on 32bit x86
+
+With the x87 FPU available, GCC uses long double precision for some variables.
+Due to the function call passing a double, some comparisons break down.
+That resulted in "1.00 YB" being printed as "1000.00 ZB" instead.
+
+Fixes #85
+---
+ templates/lib/util.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/templates/lib/util.cpp b/templates/lib/util.cpp
+index 504674a7..a0381c59 100644
+--- a/templates/lib/util.cpp
++++ b/templates/lib/util.cpp
+@@ -23,6 +23,7 @@
+ #include "metaenumvariable_p.h"
+ #include "metatype.h"
+
++#include <cfloat>
+ #include <QtCore/QStringList>
+
+ QString Grantlee::unescapeStringLiteral(const QString &input)
+@@ -212,7 +213,13 @@ std::pair<qreal, QString> Grantlee::calcFileSize(qreal size, int unitSystem,
+   bool found = false;
+   int count = 0;
+   const qreal baseVal = (_unitSystem == 10) ? 1000.0F : 1024.0F;
++#if FLT_EVAL_METHOD == 2
++  // Avoid that this is treated as long double, as the increased
++  // precision breaks the comparison below.
++  volatile qreal current = 1.0F;
++#else
+   qreal current = 1.0F;
++#endif
+   int units = decimalUnits.size();
+   while (!found && (count < units)) {
+     current *= baseVal;
diff --git a/gnu/packages/patches/kwayland-skip-flaky-test.patch b/gnu/packages/patches/kwayland-skip-flaky-test.patch
deleted file mode 100644
index 592ab3cc77..0000000000
--- a/gnu/packages/patches/kwayland-skip-flaky-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-This test fails in the Guix CI for unknown and difficult to debug reasons.
-
-diff --git a/autotests/client/test_plasma_window_model.cpp b/autotests/client/test_plasma_window_model.cpp
---- a/autotests/client/test_plasma_window_model.cpp
-+++ b/autotests/client/test_plasma_window_model.cpp
-@@ -545,6 +545,7 @@ void PlasmaWindowModelTest::testPid()
- 
- void PlasmaWindowModelTest::testVirtualDesktops()
- {
-+    QSKIP("This test fails on the Guix CI (FIXME)");
-     auto model = m_pw->createWindowModel();
-     QVERIFY(model);
-     QSignalSpy rowInsertedSpy(model, &PlasmaWindowModel::rowsInserted);
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 1184a85938..20f29cf706 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -28,6 +28,7 @@
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022 Yash Tiwari <yasht@mailbox.org>
 ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -128,6 +129,31 @@
 
 (define %qt-version "5.15.8")
 
+(define-public qcoro-qt5
+  (package
+    (name "qcoro-qt5")
+    (version "0.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/danvratil/qcoro")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0pk5ybk6zv7m0wnkl6m3m8sjybmfk6wcn22mmgj942hrc3yrdzci"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:configure-flags
+           #~(list "-DUSE_QT_VERSION=5")))
+    (native-inputs (list dbus))         ;for tests
+    (inputs (list qtbase-5 qtdeclarative-5 qtwebsockets-5))
+    (home-page "https://qcoro.dvratil.cz/")
+    (synopsis "C++ Coroutine Library for Qt5")
+    (description "QCoro is a C++ library that provide set of tools to make use
+of C++20 coroutines in connection with certain asynchronous Qt actions.")
+    (license license:expat)))
+
 (define-public qite
   (let ((commit "75fb3b6bbd5c6a5a8fc35e08a6efbfb588ed546a")
         (revision "74"))
@@ -285,7 +311,7 @@ applications on Wayland.")
 (define-public grantlee
   (package
     (name "grantlee")
-    (version "5.2.0")
+    (version "5.3.1")
     (source
       (origin
         (method git-fetch)
@@ -294,7 +320,8 @@ applications on Wayland.")
               (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "02dyqxjyxiqxrlz5g7v9ly8f095vs3iha39l75q6s8axs36y01lq"))))
+         (base32 "1ipnkdi8wgv519mvwa5zxlz20wipbypyfixjv2qdfd9vl1pznwvs"))
+        (patches (search-patches "grantlee-fix-i586-precision.patch"))))
     (native-inputs
      ;; Optional: lcov and cccc, both are for code coverage
      (list doxygen))
@@ -302,12 +329,11 @@ applications on Wayland.")
      (list qtbase-5 qtdeclarative-5 qtscript))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-before 'check 'check-setup
+                          (lambda _
+                            ;; make Qt render "offscreen", required for tests
+                            (setenv "QT_QPA_PLATFORM" "offscreen"))))))
     (home-page "https://github.com/steveire/grantlee")
     (synopsis "Libraries for text templating with Qt")
     (description "Grantlee Templates can be used for theming and generation of
@@ -2370,6 +2396,50 @@ the end-user is driving and cannot attend the incoming messages on the phone.
 In such a scenario, the messaging application can read out the incoming
 message.")))
 
+(define-public qtvirtualkeyboard-5
+  (package
+    (inherit qtsvg-5)
+    (name "qtvirtualkeyboard")
+    (version %qt-version)
+    (source (origin
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1skdjh9q4m438wwl8hwx3jc5hg22dmi5pwm3vd2yksxw6ny67rd7"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments qtsvg-5)
+       ((#:tests? _ #f) #f) ; TODO: pass 2 fail test
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'check 'set-display
+             (lambda _
+               ;; Make Qt render "offscreen", required for tests.
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               (setenv "DISPLAY" ":1")
+               (system "Xvfb +extension GLX :1 &")))
+           (delete 'check)               ;move after the install phase
+           (add-after 'install 'check
+             (assoc-ref %standard-phases 'check))
+           (add-before 'check 'prepare-for-tests
+             (lambda* (#:key outputs #:allow-other-keys)
+               (setenv "QML2_IMPORT_PATH"
+                       (string-append (assoc-ref outputs "out")
+                                      "/lib/qt5/qml:"
+                                      (getenv "QML2_IMPORT_PATH")))
+               (setenv "QT_PLUGIN_PATH"
+                       (string-append (assoc-ref outputs "out")
+                                      "/lib/qt6/plugins:"
+                                      (getenv "QT_PLUGIN_PATH")))))))))
+    (native-inputs (list perl xorg-server-for-tests))
+    (inputs (list qtbase-5 qtdeclarative-5))
+    (propagated-inputs
+     (list qtquickcontrols-5 qtsvg-5))
+    (synopsis "QtQuick virtual keyboard")
+    (description "The Qt Speech module provides a virtual keyboard framework
+that consists of a C++ backend supporting custom input methods as well as a UI
+frontend implemented in QML.")))
+
 (define-public qtspell
   (package
     (name "qtspell")
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 86ec1c033b..11aa5e1602 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -46,7 +46,6 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages fcitx)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
@@ -146,7 +145,6 @@ joystick, and graphics hardware.")
      (modify-inputs (package-inputs sdl)
        (append dbus
                eudev                    ;for discovering input devices
-               fcitx                    ;helps with CJK input
                glib
                ibus-minimal
                libxkbcommon
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4996d1a3d9..5b79fbcda1 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2017, 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
+;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2018, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2023 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
@@ -15,6 +16,7 @@
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021, 2022 muradm <mail@muradm.net>
 ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -55,6 +57,9 @@
   #:use-module (gnu packages cups)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages kde)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages kde-plasma)
   #:use-module (gnu packages xfce)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages xdisorg)
@@ -150,6 +155,10 @@
             sugar-desktop-configuration?
             sugar-desktop-service-type
 
+            plasma-desktop-configuration
+            plasma-desktop-configuration?
+            plasma-desktop-service-type
+
             xfce-desktop-configuration
             xfce-desktop-configuration?
             xfce-desktop-service
@@ -1629,6 +1638,50 @@ profile, and extends dbus with the ability for @code{efl} to generate
 thumbnails and makes setuid the programs which enlightenment needs to function
 as expected.")))
 
+;;;
+;;; KDE Plasma desktop service.
+;;;
+
+(define-record-type* <plasma-desktop-configuration> plasma-desktop-configuration
+  make-plasma-desktop-configuration
+  plasma-desktop-configuration?
+  (plasma-package plasma-package (default plasma)))
+
+(define (plasma-polkit-settings config)
+  "Return the list of KDE Plasma dependencies that provide polkit actions and
+rules."
+  (let ((plasma-plasma (plasma-package config)))
+    (map (lambda (name)
+           ((package-direct-input-selector name) plasma-plasma))
+         '("plasma-desktop"
+           "plasma-workspace"
+           "plasma-disks"
+           "kinfocenter"
+           "libksysguard"
+           "ktexteditor"
+           "powerdevil"
+           "plasma-firewall"))))
+
+;; see https://bugs.kde.org/show_bug.cgi?id=456210
+;; if `kde' no exits, fallback to `other', and then unlock lockscreen not work,
+;; so add it.
+(define (plasma-pam-services config)
+  (list (unix-pam-service "kde")))
+
+(define plasma-desktop-service-type
+  (service-type
+   (name 'plasma-desktop)
+   (description "Run the KDE Plasma desktop environment.")
+   (default-value (plasma-desktop-configuration))
+   (extensions
+    (list (service-extension polkit-service-type
+                             plasma-polkit-settings)
+          (service-extension pam-root-service-type
+                             plasma-pam-services)
+          (service-extension profile-service-type
+                             (compose list
+                                      plasma-package))))))
+
 
 ;;;
 ;;; inputattach-service-type
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
index c9a7ba96f4..69c737829b 100644
--- a/gnu/services/sddm.scm
+++ b/gnu/services/sddm.scm
@@ -171,7 +171,16 @@ Relogin="              (if (sddm-configuration-relogin? config)
          (documentation "SDDM display manager.")
          (requirement '(user-processes elogind pam))
          (provision '(xorg-server display-manager))
-         (start #~(make-forkexec-constructor #$sddm-command))
+         (start #~(make-forkexec-constructor
+                   #$sddm-command
+                   ;; some theme need icon,qml,data so add path to env.
+                   #:environment-variables
+                   (cons*
+                    "XDG_DATA_DIRS=/run/current-system/profile/share"
+                    "XDG_CONFIG_DIRS=/run/current-system/profile/etc/xdg"
+                    "QT_PLUGIN_PATH=/run/current-system/profile/lib/qt5/plugins"
+                    "QML2_IMPORT_PATH=/run/current-system/profile/lib/qt5/qml"
+                    (default-environment-variables))))
          (stop #~(make-kill-destructor)))))
 
 (define (sddm-etc-service config)
diff --git a/gnu/system/examples/plasma.tmpl b/gnu/system/examples/plasma.tmpl
new file mode 100644
index 0000000000..3df819a54f
--- /dev/null
+++ b/gnu/system/examples/plasma.tmpl
@@ -0,0 +1,67 @@
+;; This is an operating system configuration template
+;; for a "desktop" setup with Plasma.
+
+(use-modules (gnu) (gnu system nss))
+(use-service-modules desktop sddm xorg ssh)
+(use-package-modules certs gnome ssh admin fonts)
+(use-package-modules qt xorg tmux linux)
+
+(operating-system
+  (host-name "plasma")
+  (timezone "Asia/Shanghai")
+  (locale "en_US.utf8")
+
+  ;; Assuming /dev/sdX is the target hard disk, and "my-root"
+  ;; is the label of the target root file system.
+  (bootloader (bootloader-configuration
+               (bootloader grub-bootloader)
+               (targets (list "/dev/sdX"))))
+
+  (file-systems (cons (file-system
+                        (device "my-root")
+                        (mount-point "/")
+                        (type "ext4"))
+                      %base-file-systems))
+
+  (users (cons (user-account
+                (name "plasma")
+                (password (crypt "plasma" "$6$abc"))
+                (group "users")
+                (supplementary-groups '("wheel" "netdev"
+                                        "audio" "video")))
+               %base-user-accounts))
+
+  ;; This is where we specify system-wide packages.
+  (packages (cons* nss-certs         ;for HTTPS access
+                   neofetch
+                   htop
+                   tmux
+                   xprop
+                   strace
+                   %base-packages))
+
+  (services (cons*
+             ;; for debug
+             ;; (simple-service
+             ;;  'add-qt-debug-env
+             ;;  session-environment-service-type
+             ;;  '(("QT_MESSAGE_PATTERN"
+             ;;     . "[[%{time process} %{type}] %{appname}: %{category} %{function} - %{message}]")
+             ;;    ("QT_DEBUG_PLUGINS" . "1")
+             ;;    ("QML_IMPORT_TRACE" . "1")))
+             (service openssh-service-type
+                      (openssh-configuration
+                       (openssh openssh-sans-x)
+                       (port-number 2222)))
+             (service plasma-desktop-service-type)
+             (service sddm-service-type
+                      (sddm-configuration
+                       (theme "breeze")))
+             (modify-services %desktop-services
+               (delete gdm-service-type))))
+  ;; Allow resolution of '.local' host names with mDNS.
+  (name-service-switch %mdns-host-lookup-nss))
+
+;; Local Variables:
+;; mode: scheme
+;; End:
diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm
index f52e3f7af5..7d1b0e0e23 100644
--- a/guix/build/qt-utils.scm
+++ b/guix/build/qt-utils.scm
@@ -90,7 +90,7 @@
     '("XDG_CONFIG_DIRS" suffix directory "/etc/xdg")
     `("QT_PLUGIN_PATH" prefix directory
       ,(format #f "/lib/qt~a/plugins" qt-major-version))
-    `("QML2_IMPORT_PATH" = directory
+    `("QML2_IMPORT_PATH" prefix directory
       ,(format #f "/lib/qt~a/qml" qt-major-version))
     ;; QTWEBENGINEPROCESS_PATH accepts a single value, which makes 'exact the
     ;; most suitable environment variable type for it.