[PATCHES] KDE updates.

DoneSubmitted by Brendan Tildesley.
Details
8 participants
  • Leo Famulari
  • Brendan Tildesley
  • Marek Paśnikowski
  • Marius Bakke
  • Maxim Cournoyer
  • Maxime Devos
  • phodina
  • Anthony Wang
Owner
unassigned
Severity
normal
B
B
Brendan Tildesley wrote on 28 Sep 2021 07:24
(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
629540312.113485.1632806682555@office.mailbox.org
I've updated all packages in kde-*.scm files (may have missed something),
plus some KDE games in games.scm. I was hesitant about sending 235 patches
so I just attached them as a zip, and pushed the branch to my notabug
(subject to rebasing):


I used refresh -l to find all dependent packages and basically
everything build apart from some packages like openstack that are
already broken.

Since there are a lot of patches, it's probably I forgot something
important or left something incomplete.

In the grantleetheme package, there was a large C++ I deleted. I'm not
really sure if any patching is still need since it looks complicated

Other packages with changes to patches include
kdbusaddons, kpackage, kplasma-framework, grantleetheme, kmail.

* Reproducibility bugs
- The packages kparts, ktexteditor, plasma-framework, krunner, kio produce
.bz2 files in /share/kdevappwizard/templates/ that include timestamps on
the directories. Any ideas how to fix that?

- kdevelop looks even nastier, containing entire mime/application .xml
files in one build that weren't present in the previous.
- kdelibs4support produces .so's with symbols in varying order.
- sonnet: .so differences (already present in current guix version)

Package list:

akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes akonadi-search akregator ark attica audiocd-kio baloo baloo-widgets bluez-qt bomber bovo breeze breeze-icons dolphin dolphin-plugins dragon elisa extra-cmake-modules ffmpegthumbs granatier grantleetheme juk k3b kactivities kactivities-stats kaddressbook kajongg kalarmcal kamoso kapidox kapman karchive kate kauth kblackbox kblocks kbookmarks kbounce kbreakout kcachegrind kcalendarcore kcalendarsupport kcalutils kcmutils kcodecs kcompletion kconfig kconfigwidgets kcontacts kcoreaddons kcrash kdav kdbusaddons kdeclarative kdeconnect kdecoration kded kde-frameworkintegration kdegraphics-mobipocket kdelibs4support kdepim-runtime kdesignerplugin kdesu kdevelop kdewebkit kdf kdiagram kdiamond kdnssd kdoctools kemoticons keventviews kfilemetadata kfourinline kget kglobalaccel kgoldrunner kgpg kguiaddons khelpcenter kholidays khtml ki18n kiconthemes kidentitymanagement kidletime kigo killbots kimageformats kimap kincidenceed
itor kinit kio kirigami kiriki kitemmodels kitemviews kjobwidgets kjs kjsembed kjumpingcube kldap kleopatra klines kmag kmahjongg kmail kmailcommon kmailimporter kmailtransport kmbox kmediaplayer kmessagelib kmime kmines kmix kmousetool kmouth knavalbattle knetwalk knewstuff knotes knotifications knotifyconfig kolf kollision konquest konsole kontactinterface konversation kopete korganizer kpackage kparts kpeople kpimcommon kpimtextedit kplotting kpmcore kpty kqtquickcharts krdc kreversi krfb krita kross krunner kscreenlocker kservice kshisen ksirk ksmtp ksnakeduel kspaceduel ksquares ksshaskpass ksudoku ksyntaxhighlighting ksystemlog ktexteditor ktextwidgets ktnef ktorrent ktouch ktuberling kubrick kunitconversion kwallet kwave kwayland kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient libgravatar libkcddb libkcompactdisc libkdegames libkdepim libkexiv2 libkgapi libkleo libkmahjongg libkomparediff2 libkscreen libksieve libksysguard libktorrent lskat modemmanager-qt networkmanager-q
t okteta okular oxygen-icons palapeli picmi plasma-framework poxml prison pulseaudio-qt purpose qca qqc2-desktop-style smb4k solid sonnet sweeper syndication threadweaver yakuake zeroconf-ioslave
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:29
[PATCH core-updates-frozen 00/19]
(address . 50862@debbugs.gnu.org)
20211015093015.5834-1-mail@brendan.scot
I've made/remade a new patch series, but for core-updates-frozen instead of
master. This is because I found some programs like libksysguard need
<filesystem> and thus gcc>=9, so master with gcc-7 was a bit of a dead end. It
updates for the recent release of Frameworks 5.87.0, and other version 21.08.2
applications etc. I have provided everything in a smaller number of commits,
because I found myself spending too much time making all those commits and
rebsing them for 200+ packages.

I also fixed the template tarball reproducibility bug in
extra-cmake-modules I mentioned previously, and published my fix upstream.

yakuake still segfaults on launch as reported on master. Not sure why that is.

Was I right to prepare this for core-updates-frozen? Are these updates
something that can be pushed as soon as they are ready or do I have to wait on
other updates or merges to be done? I thought it would fascilitate merging
into master to prepare it all for core-updates-frozen now.

I also included at the start a qt-wrap patch I already sent previously.

If my grepping worked, this should be all the packages, but for completeness
one should try building all kde-*.scm packages

akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
akonadi-search akregator ark attica audiocd-kio baloo baloo-widgets bluez-qt
bomber bovo breeze breeze-icons dolphin dolphin-plugins dragon elisa
extra-cmake-modules ffmpegthumbs granatier grantleetheme juk k3b kactivities
kactivities-stats kaddressbook kajongg kalarmcal kamoso kapidox kapman
karchive kate kauth kblackbox kblocks kbookmarks kbounce kbreakout kcachegrind
kcalendarcore kcalendarsupport kcalutils kcmutils kcodecs kcompletion kconfig
kconfigwidgets kcontacts kcoreaddons kcrash kdav kdbusaddons kdeclarative
kdeconnect kdecoration kded kde-frameworkintegration kdegraphics-mobipocket
kdelibs4support kdepim-runtime kdesignerplugin kdesu kdevelop kdewebkit kdf
kdiagram kdiamond kdnssd kdoctools kemoticons keventviews kfilemetadata
kfourinline kget kglobalaccel kgoldrunner kgpg kguiaddons khelpcenter
kholidays khtml ki18n kiconthemes kidentitymanagement kidletime kigo killbots
kimageformats kimap kincidenceeditor kinit kio kiriki kitemmodels kitemviews
kjobwidgets kjs kjsembed kjumpingcube kldap kleopatra klines kmag kmahjongg
kmail kmailcommon kmailimporter kmailtransport kmbox kmediaplayer kmessagelib
kmime kmines kmix kmousetool kmouth knavalbattle knetwalk knewstuff knotes
knotifications knotifyconfig kolf kollision konquest konsole kontactinterface
konversation kopete korganizer kpackage kparts kpeople kpimcommon kpimtextedit
kplotting kpmcore kpty kqtquickcharts krdc kreversi krfb kross krunner
kscreenlocker kservice kshisen ksirk ksmtp ksnakeduel kspaceduel ksquares
ksshaskpass ksudoku ksyntaxhighlighting ksystemlog ktexteditor ktextwidgets
ktnef ktorrent ktouch ktuberling kubrick kunitconversion kwallet kwave
kwayland kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient libgravatar
libkcddb libkcompactdisc libkdegames libkdepim libkexiv2 libkgapi libkleo
libkmahjongg libkomparediff2 libkscreen libksieve libksysguard libktorrent
lskat modemmanager-qt networkmanager-qt okteta okular oxygen-icons palapeli
picmi plasma-framework poxml prison pulseaudio-qt purpose qca
qqc2-desktop-style smb4k solid sonnet sweeper syndication threadweaver yakuake
zeroconf-ioslave
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:29
[PATCH core-updates-frozen 01/19] build: qt-utils: Don't wrap .X-real files.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-2-mail@brendan.scot
* guix/build/qt-utils.scm (find-files-to-wrap): Exclude already wrapped
programs. This is forbidden in wrap-program now due to a738a663a99.
---
guix/build/qt-utils.scm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

Toggle diff (26 lines)
diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm
index c2b80cab7d..e86442b79f 100644
--- a/guix/build/qt-utils.scm
+++ b/guix/build/qt-utils.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -133,7 +134,10 @@ add a dependency of that output on Qt."
   (define (find-files-to-wrap output-dir)
     (append-map
      (lambda (dir)
-       (if (directory-exists? dir) (find-files dir ".*") (list)))
+       (if (directory-exists? dir)
+           (find-files dir (lambda (file stat)
+                             (not (wrapped-program? file))))
+           (list)))
      (list (string-append output-dir "/bin")
            (string-append output-dir "/sbin")
            (string-append output-dir "/libexec")
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:29
[PATCH core-updates-frozen 02/19] gnu: libdbusmenu-qt: Move (gnu packages qt).
(address . 50862@debbugs.gnu.org)
20211015093015.5834-3-mail@brendan.scot
* gnu/packages/lxqt.scm: Delete libdbusmenu-qt.
* gnu/packages/qt.scm: Readd libdbusmenu-qt.
This prevent amysterious module resolution issue when
attempting to use libdbusmenu in KDE modules.
---
gnu/packages/lxqt.scm | 32 +-------------------------------
gnu/packages/qt.scm | 30 ++++++++++++++++++++++++++++++
2 files changed, 31 insertions(+), 31 deletions(-)

Toggle diff (90 lines)
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index 391d83b7c4..4230775dd0 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -68,36 +68,6 @@
 
 ;; Third party libraries
 
-(define-public libdbusmenu-qt
-  (package
-    (name "libdbusmenu-qt")
-    (version "0.9.3+16.04.20160218-0ubuntu1")
-    (source
-     (origin
-       (method git-fetch)
-       ;; Download from github rather than launchpad because launchpad trunk
-       ;; tarball hash is not deterministic.
-       (uri (git-reference
-             (url "https://github.com/unity8-team/libdbusmenu-qt")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0b7ii1cvmpcyl79gqal9c3va9m55h055s4hx7fpxkhhqs9463ggg"))))
-    (build-system cmake-build-system)
-    (arguments
-     ;; XXX: Tests require a dbus session and some icons.
-     '(#:tests? #f))
-    (native-inputs
-     `(("doxygen" ,doxygen)))
-    (inputs
-     `(("qtbase" ,qtbase-5)))
-    (home-page "https://launchpad.net/libdbusmenu-qt")
-    (synopsis "Qt implementation of the DBusMenu spec")
-    (description "This library provides a Qt implementation of the DBusMenu
-protocol.  The DBusMenu protocol makes it possible for applications to export
-and import their menus over DBus.")
-    (license license:lgpl2.1+)))
-
 (define-public libstatgrab
   (package
     (name "libstatgrab")
@@ -1425,7 +1395,7 @@ desktop.")
        ("lximage-qt" ,lximage-qt)
        ("obconf-qt" ,obconf-qt)
        ("openbox" ,openbox)
-       ("oxygen-icons" ,oxygen-icons)
+       ("breeze-icons" ,breeze-icons)
        ("pavucontrol-qt" ,pavucontrol-qt)
        ("qps" ,qps)
        ("qterminal" ,qterminal)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 5ce4220cb0..962fb5a252 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3101,3 +3101,33 @@ being fully customizable and easy to extend.")
 also compatible with SGI and TGS Open Inventor, and the API is based on the API
 of the InventorXt GUI component toolkit.")
     (license license:bsd-3))))
+
+(define-public libdbusmenu-qt
+  (package
+    (name "libdbusmenu-qt")
+    (version "0.9.3+16.04.20160218-0ubuntu1")
+    (source
+     (origin
+       (method git-fetch)
+       ;; Download from github rather than launchpad because launchpad trunk
+       ;; tarball hash is not deterministic.
+       (uri (git-reference
+             (url "https://github.com/unity8-team/libdbusmenu-qt")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0b7ii1cvmpcyl79gqal9c3va9m55h055s4hx7fpxkhhqs9463ggg"))))
+    (build-system cmake-build-system)
+    (arguments
+     ;; XXX: Tests require a dbus session and some icons.
+     '(#:tests? #f))
+    (native-inputs
+     `(("doxygen" ,doxygen)))
+    (inputs
+     `(("qtbase" ,qtbase-5)))
+    (home-page "https://launchpad.net/libdbusmenu-qt")
+    (synopsis "Qt implementation of the DBusMenu spec")
+    (description "This library provides a Qt implementation of the DBusMenu
+protocol.  The DBusMenu protocol makes it possible for applications to export
+and import their menus over DBus.")
+    (license license:lgpl2.1+)))
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:29
[PATCH core-updates-frozen 03/19] gnu: Add plasma-wayland-protocols.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-4-mail@brendan.scot
* gnu/packages/kde-frameworks.scm (plasma-wayland-protocols): New variable.
---
gnu/packages/kde-frameworks.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 83bf7bd95a..ab04545ddd 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1061,6 +1061,31 @@ integration with a custom editor as well as a ready-to-use
     (properties `((upstream-name . "syntax-highlighting")))
     (license license:lgpl2.1+)))
 
+(define-public plasma-wayland-protocols
+  (package
+    (name "plasma-wayland-protocols")
+    (version "1.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/" name "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1a8v5cyny20g7z3g1qzfkjw66swk0r12kf5bf0vkk0qsjcfl7c1q"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (arguments `(#:tests? #f)) ;; No tests
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "KDE Plasma Wayland Protocols")
+    (description "Contains XML files describing non-standard wayland
+protocols used in KDE Plasma.")
+    (license (list license:bsd-3
+                   license:lgpl2.1
+                   license:lgpl2.1+
+                   license:lgpl3
+                   license:expat))))
+
 (define-public kwayland
   (package
     (name "kwayland")
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 04/19] gnu: kdav: Move to (gnu packages kde-frameworks).
(address . 50862@debbugs.gnu.org)
20211015093015.5834-5-mail@brendan.scot
* gnu/packages/kde-pim.scm
* gnu/packages/kde-frameworks.scm
(kdav): Move to (gnu packages kde-frameworks).
---
gnu/packages/kde-frameworks.scm | 28 ++++++++++++++++++++++++++++
gnu/packages/kde-pim.scm | 28 ----------------------------
2 files changed, 28 insertions(+), 28 deletions(-)

Toggle diff (80 lines)
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index ab04545ddd..1bbfbddf6a 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2855,6 +2855,34 @@ the data accessible in all applications using the KDE file dialog or any other
 KIO enabled infrastructure.")
     (license license:lgpl2.1+)))
 
+(define-public kdav
+  (package
+    (name "kdav")
+    (version "20.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kdav-" version ".tar.xz"))
+       (sha256
+        (base32 "0445gl4xm0h39igkxgb6vmq5iaa04wkgrgbs7nfd0zwngk8xaidn"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("qtbase" ,qtbase-5)
+       ("qtxmlpatterns" ,qtxmlpatterns)))
+    (home-page "https://invent.kde.org/frameworks/kdav")
+    (synopsis "DAV protocol implementation with KJobs")
+    (description "This is a DAV protocol implementation with KJobs.  Calendars
+and todos are supported, using either GroupDAV or CalDAV, and contacts are
+supported using GroupDAV or CardDAV.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
 (define-public knewstuff
   (package
     (name "knewstuff")
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index d0e67fa37a..9930f20bb1 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -616,34 +616,6 @@ data")
 functions for accessing calendar data using the kcalcore API.")
     (license  license:lgpl2.0+)))
 
-(define-public kdav
-  (package
-    (name "kdav")
-    (version "20.04.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://kde/stable/release-service/" version
-                           "/src/kdav-" version ".tar.xz"))
-       (sha256
-        (base32 "0445gl4xm0h39igkxgb6vmq5iaa04wkgrgbs7nfd0zwngk8xaidn"))))
-    (build-system qt-build-system)
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("qtbase" ,qtbase-5)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
-    (home-page "https://invent.kde.org/frameworks/kdav")
-    (synopsis "DAV protocol implementation with KJobs")
-    (description "This is a DAV protocol implementation with KJobs.  Calendars
-and todos are supported, using either GroupDAV or CalDAV, and contacts are
-supported using GroupDAV or CardDAV.")
-    (license ;; GPL for programs, LGPL for libraries
-     (list license:gpl2+ license:lgpl2.0+))))
-
 (define-public kdepim-apps-libs
   (package
     (name "kdepim-apps-libs")
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 05/19] gnu: kdav: Update to 5.87.0.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-6-mail@brendan.scot
* gnu/packages/kde-frameworks.scm (kdav): Update to 5.87.0.
[arguments]: Disable failing test.
---
gnu/packages/kde-frameworks.scm | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)

Toggle diff (41 lines)
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 1bbfbddf6a..35818d579b 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2858,14 +2858,15 @@ KIO enabled infrastructure.")
 (define-public kdav
   (package
     (name "kdav")
-    (version "20.04.3")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/release-service/" version
-                           "/src/kdav-" version ".tar.xz"))
+       (uri (string-append "mirror://kde/stable/frameworks/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
        (sha256
-        (base32 "0445gl4xm0h39igkxgb6vmq5iaa04wkgrgbs7nfd0zwngk8xaidn"))))
+        (base32 "0sb1g0wdpql5gw52nxhzkk1wa9md2k25lwyf902g3pf7ahdgdk5z"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2875,6 +2876,14 @@ KIO enabled infrastructure.")
        ("kio" ,kio)
        ("qtbase" ,qtbase-5)
        ("qtxmlpatterns" ,qtxmlpatterns)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Inconsistent test failure: https://bugs.kde.org/show_bug.cgi?id=442935
+               (invoke "ctest" "-E" "kdav-davcollectionsmultifetchjobtest")))))))
     (home-page "https://invent.kde.org/frameworks/kdav")
     (synopsis "DAV protocol implementation with KJobs")
     (description "This is a DAV protocol implementation with KJobs.  Calendars
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 06/19] gnu: KDE Frameworks: Update to 5.87.0.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-7-mail@brendan.scot
* gnu/packages/kde-frameworks.scm (extra-cmake-modules, attica,
bluez-qt, breeze-icons, kapidox, karchive, kcalendarcore, kcodecs,
kconfig, kcoreaddons, kdbusaddons, kdnssd, kguiaddons, kholidays, ki18n,
kidletime, kirigami, kitemmodels, kitemviews, kplotting,
ksyntaxhighlighting, kwayland, kwidgetsaddons, kwindowsystem,
modemmanager-qt, networkmanager-qt, oxygen-icons, prison,
qqc2-desktop-style, solid, sonnet, threadweaver, kactivities, kauth,
kcompletion, kcontacts, kcrash, kdoctools, kfilemetadata, kimageformats,
kjobwidgets, knotifications, kpackage, kpty, kunitconversion,
syndication, baloo, kactivities-stats, kbookmarks, kcmutils,
kconfigwidgets, kdeclarative, kded, kdesignerplugin, kdesu, kdewebkit,
kemoticons, kglobalaccel, kiconthemes, kinit, kio, kdav, knewstuff,
knotifyconfig, kparts, kpeople, krunner, kservice, ktexteditor,
ktextwidgets, kwallet, kxmlgui, kxmlrpcclient, plasma-framework,
purpose, kde-frameworkintegration, kdelibs4support, khtml, kjs,
kjsembed, kmediaplayer, kross): Update to 5.87.0.

(extra-cmake-modules):[origin]: Add a patch to fix a reproducibility
issue in template .tar.bz files produced by some dependent packages,
such as kio, akonadi, plasma-framework, krunner, kparts, ktexteditor,
kirigami.
[native-inputs]: Add qtdeclarative to enable one more test.
[arguments]: Disable failing KDEFetchTranslations test. also we don't
need to run check after install anymore it seems.
Delete some comments that maybe aren't needed.

(bluez-qt): [arguments]: Enable tests with DBUS_FATAL_WARNINGS=0, since
they work now.
(breeze-icons): [native-inputs]: Add python, python-lxml. Remove libxml2.
[inputs]: Propagate qtsvg, since it's generally always needed by KDE
packages in order to make use of breeze.

(kapidox): [arguments]: make with DESTDIR=/ to fix installing to nowhere. Not sure
what is causing this...

(kcalendarcore): [arguments]: Remove test hacks that don't seem to be needed anymore. set
QT_QPA_PLATFORM=offscreen to make all tests work.

(kconfig): [native-inputs]: Remove extraneous dependencies.
[arguments]: Disable failing test. Respect #:tests?.

(kcoreaddons): [native-inputs]: Remove unused xorg-server-for-tests.
[arguments]: Remove upstreamed fix, Enable all tests but failing ones.

(kdbusaddons): [origin]: Remove kinit filename patch.
[arguments]: Since the patch went stale I found it easier to use a
substitute instead. Respect #:tests?.

(kguiaddons): [inputs]: Add wayland, qtwayland.

(kholidays): [arguments]: Reenable previously broken test.

(ki18n): [inputs]: Remove apparently uneeded input qtscript.

(ksyntaxhighlighting): [arguments]: Don't patch file that doesn't exist any more.

(kwayland): [inputs]: Add plasma-wayland-protocols.
[arguments]: Enable tests. Disable one failing test.

(kwindowsystem): [arguments]: Respect #:tests?.
(modemmanager-qt): [arguments]: Respect #:tests?.
(networkmanager-qt): [arguments]: Respect #:tests?.

(pulseaudio-qt): Update to 1.3.
[origin]: Use KDE mirror URI.

(solid): [arguments]: Respect #:tests?.
(kauth): [arguments]: Respect #:tests?.

(kfilemetadata): [native-inputs]: Remove python-2.
[arguments]: It's a different test that fails this time, disable that
instead.

(knotifications): [inputs]: Add libcanberra, qtdeclarative.
[phases]: Respect tests?.

(kpackage): [origin]: Remove uneeded macros patch. The patch was to fix
a build failure, but it no longer fails, so we don't need it.
[arguments]: Don't substitute packagejobthread.cpp since it no longer
contains the substituted text.

(kunitconversion): [arguments]: Disable tests since they require network.

(baloo): [arguments]: Reenable working tests. Simplfy test
phase. Respect #:tests?

(kcmutils): [arguments]: Set QT_QPA_PLATFORM=offscreen for tests.

(kconfigwidgets): [inputs]: Move qttools to native-inputs.

(kdeclarative): [inputs]: Add knotifications. Remove uneeded dependencies kbookmarks,
kcodecs, kcompletion ,kconfigwidgets, kitemviews, kxmlgui.

(kded): [inputs]: Remove uneeded dependency kinit.

(kdesignerplugin): [inputs]: Remove various unused inputs.

(kglobalaccel): [inputs]: Remove unused inputs kservice and libxcb.

(kio): [inputs]: Add kded, kguiaddons, qtdeclarative, ,util-linux:lib (for
libmount), and zlib.
[arguments]: Enable all tests that work. Respect #:tests?.

(knewstuff): [inputs]: Add kpackage.

(krunner): [phases]: Enable all tests that work. Respect #:tests?

(kservice): [arguments]: Enable all tests that work.
[naive-inputs]: Add shared-mime-info.

(ktexteditor): [arguments]: Enable all tests that work. Respect #:tests?

(kxmlgui): [inputs]: Add kguiaddons.

(plasma-framework): [origin]: Remove PlasaMacros patch.
[inputs]: Add libglvnd!!! Seems odd that this is needed here. We should
investigate.
[arguments]: Enable all tests that pass.

(purpose): [phases]: Remove substitution that no longer changes anything.

(kdelibs4support): [inputs]: Move qttools to to native-inputs.

* gnu/packages/patches/extra-cmake-modules-reproducible-tarballs.patch:
New file.
* gnu/packages/patches/kdbusaddons-kinit-file-name.patch: Delete file.
* gnu/packages/patches/kinit-kdeinit-extra_libs.patch: Fix patch
application. Remove unnecessary part of diff that breaks application of
patch.
* gnu/packages/patches/kinit-kdeinit-libpath.patch: Fix patch application.
* gnu/packages/patches/kio-search-smbd-on-PATH.patch: Use updated
simpler patch from Nix.
* gnu/packages/patches/kpackage-allow-external-paths.patch: Fix patch application.
* gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch: Delete file.
* gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch:
Delete file.

* gnu/local.mk:
Add reference to extra-cmake-modules-reproducible-tarballs.patch.
Remove references to:
- kpackage-fix-KF5PackageMacros.cmake.patch.
- kdbusaddons-kinit-file-name.patch
---
gnu/local.mk | 4 +-
gnu/packages/kde-frameworks.scm | 792 ++++++++----------
...-cmake-modules-reproducible-tarballs.patch | 19 +
.../patches/kdbusaddons-kinit-file-name.patch | 15 -
.../patches/kinit-kdeinit-extra_libs.patch | 21 -
.../patches/kinit-kdeinit-libpath.patch | 23 +-
.../patches/kio-search-smbd-on-PATH.patch | 46 +-
.../kpackage-allow-external-paths.patch | 17 +-
.../kpackage-fix-KF5PackageMacros.cmake.patch | 25 -
...-framework-fix-KF5PlasmaMacros.cmake.patch | 25 -
10 files changed, 427 insertions(+), 560 deletions(-)
create mode 100644 gnu/packages/patches/extra-cmake-modules-reproducible-tarballs.patch
delete mode 100644 gnu/packages/patches/kdbusaddons-kinit-file-name.patch
delete mode 100644 gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch
delete mode 100644 gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch

Toggle diff (2462 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index c1f2399a46..3c6b4cf4d6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1039,6 +1039,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/evolution-data-server-libical-compat.patch	\
   %D%/packages/patches/exercism-disable-self-update.patch	\
   %D%/packages/patches/extempore-unbundle-external-dependencies.patch	\
+  %D%/packages/patches/extra-cmake-modules-reproducible-tarballs.patch	\
   %D%/packages/patches/extundelete-e2fsprogs-1.44.patch		\
   %D%/packages/patches/farstream-make.patch                          \
   %D%/packages/patches/fastcap-mulGlobal.patch			\
@@ -1307,7 +1308,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/jfsutils-include-systypes.patch		\
   %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
   %D%/packages/patches/julia-tracker-16-compat.patch		\
-  %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
   %D%/packages/patches/libblockdev-glib-compat.patch		\
   %D%/packages/patches/libffi-3.3-powerpc-fixes.patch		\
   %D%/packages/patches/libffi-float128-powerpc64le.patch	\
@@ -1327,7 +1327,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/kmod-module-directory.patch		\
   %D%/packages/patches/kmscon-runtime-keymap-switch.patch	\
   %D%/packages/patches/kpackage-allow-external-paths.patch	\
-  %D%/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch \
   %D%/packages/patches/kmplayer-aarch64.patch			\
   %D%/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch	\
   %D%/packages/patches/kobodeluxe-paths.patch			\
@@ -1566,7 +1565,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/pango-skip-libthai-test.patch		\
   %D%/packages/patches/pciutils-hurd-configure.patch		\
   %D%/packages/patches/pciutils-hurd-fix.patch			\
-  %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
   %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
   %D%/packages/patches/pthreadpool-system-libraries.patch	\
   %D%/packages/patches/python-chai-drop-python2.patch		\
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 35818d579b..42a7eb6f47 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -60,7 +61,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kerberos)
-  #:use-module (gnu packages kde-plasma)
+  #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3)
@@ -86,7 +87,7 @@
 (define-public extra-cmake-modules
   (package
     (name "extra-cmake-modules")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -95,15 +96,18 @@
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "10c5xs5shk0dcshpdxg564ay5y8hgmvfvmlhmhjf0dy79kcah3c3"))))
+                "1axwz0p3ggjpcxpqqlyng3fa2pxmjxgybncgkp8i81i7iq6sf72l"))
+              (patches ;; https://bugs.kde.org/show_bug.cgi?id=443532
+               (search-patches "extra-cmake-modules-reproducible-tarballs.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     ;; Add test dependency, except on armhf where building it is too
+     ;; Add test dependencies, except on armhf where building it is too
      ;; expensive.
      (if (and (not (%current-target-system))
               (string=? (%current-system) "armhf-linux"))
          '()
-         `(("qtbase" ,qtbase-5))))                ;for tests (needs qmake)
+         `(("qtbase" ,qtbase-5)
+           ("qtdeclarative" ,qtdeclarative))))
     (arguments
      `(#:tests? ,(not (null? (package-native-inputs this-package)))
        #:phases
@@ -130,19 +134,11 @@
                (("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules")
                 "set(ECM_MKSPECS_INSTALL_DIR lib/qt5/mkspecs/modules"))
              #t))
-         ;; install and check phase are swapped to prevent install from failing
-         ;; after testsuire has run
-         (add-after 'install 'check-post-install
-           (assoc-ref %standard-phases 'check))
-         (delete 'check))))
-    ;; optional dependencies - to save space, we do not add these inputs.
-    ;; Sphinx > 1.2:
-    ;;   Required to build Extra CMake Modules documentation in Qt Help format.
-    ;; Qt5LinguistTools , Qt5 linguist tools. , <http://www.qt.io/>
-    ;;   Required to run tests for the ECMPoQmTools module.
-    ;; Qt5Core
-    ;;   Required to run tests for the ECMQtDeclareLoggingCategory module,
-    ;;   and for some tests of the KDEInstallDirs module.
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; This test fails
+               (invoke "ctest" "-E" "KDEFetchTranslations"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "CMake module files for common software used by KDE")
     (description "The Extra CMake Modules package, or ECM, adds to the
@@ -186,7 +182,7 @@ common build settings used in software produced by the KDE community.")
                  ((regex all dest)
                   (string-append dest (assoc-ref outputs "out")))))
            #t)))))
-    (home-page "https://phonon.kde.org")
+    (home-page "https://community.kde.org/Phonon")
     (synopsis "KDE's multimedia library")
     (description "KDE's multimedia library.")
     (license license:lgpl2.1+)))
@@ -220,7 +216,7 @@ common build settings used in software produced by the KDE community.")
     (arguments
      `(#:configure-flags
        '( "-DPHONON_BUILD_PHONON4QT5=ON")))
-    (home-page "https://phonon.kde.org")
+    (home-page "https://community.kde.org/Phonon")
     (synopsis "Phonon backend which uses GStreamer")
     (description "Phonon makes use of backend libraries to provide sound.
 Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
@@ -236,7 +232,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
 (define-public attica
   (package
     (name "attica")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -245,7 +241,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1njw1sifykyqldb5idaywdzi3xg7a6bvzkrvazwmyixd0npq12dx"))))
+                "0wjfrlmwg03js544xjlpznxxqv14cj40fpzbfnlj24kjgd1ai8dq"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -276,7 +272,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
 (define-public bluez-qt
   (package
     (name "bluez-qt")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -285,7 +281,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1kqhps4qyvqm0qmk7fb3w41bib898amipchf8csdzacw4bzpri9k"))))
+                "1shk3riddgdb0i6f0603hbhww13z1b566rdaplxsbgk8cyhl5acz"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -297,9 +293,13 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
      `(#:configure-flags
        (list (string-append
               "-DUDEV_RULES_INSTALL_DIR=" %output "/lib/udev/rules.d"))
-       ;; TODO: Make tests pass: DBUS_FATAL_WARNINGS=0 still yields 7/8 tests
-       ;; failing.  When running after install, tests hang.
-       #:tests? #f))
+       #: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 "QML wrapper for BlueZ")
     (description "bluez-qt is a Qt-style library for accessing the bluez
@@ -309,7 +309,7 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
 (define-public breeze-icons
   (package
     (name "breeze-icons")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -318,14 +318,18 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0lqglrjgjb4ralgmr7lb9k7acmn8q4jm18s4p3gbgd9iswyqgsbm"))))
+                "19f7n4r6b0b1l8hc79xbj8gc18xf488bk4i0wdbw22x9vwl4h58h"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("fdupes" ,fdupes)
-       ("libxml2" ,libxml2)))
+       ("python-lxml" ,python-lxml)
+       ("python" ,python)))
     (inputs
      `(("qtbase" ,qtbase-5)))
+    (propagated-inputs
+     ;; KDE apps will need qtsvg to make use of breeze which is SVG only.
+     `(("qtsvg" ,qtsvg)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Default KDE Plasma 5 icon theme")
     (description "Breeze provides a freedesktop.org compatible icon theme.
@@ -338,7 +342,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
 (define-public kapidox
   (package
     (name "kapidox")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -347,12 +351,11 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1irl25pf60frzrmm1ksgjq6y8kn3rd5snliq69l4c42yznl9qv1j"))))
+                "0iyla9i4ln6w9wkm4dand53ir6gzsm4180diwi9p2q5mfrk0rvja"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f)) ; has no test target
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     `(#:tests? #f  ; has no test target
+       #:make-flags (list "DESTDIR=/"))) ;; Otherwise it doesn't install anything.
     (propagated-inputs
      ;; kapidox is a python programm
      ;; TODO: check if doxygen has to be installed, the readme does not
@@ -380,7 +383,7 @@ documentation.")
 (define-public karchive
   (package
     (name "karchive")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -389,15 +392,19 @@ documentation.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0z8asn357pdbv4g9g0x18p72wskca1qanxljyix7wzc5rsi63wzm"))))
+                "0d8wqrynwmqazlf5v7qas9akrvcwr4lrqg3dcbnq61mmc252wgqh"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+        ; ("pkg-config" ,pkg-config) ;; for zstd
+       ))
     (inputs
      `(("bzip2" ,bzip2)
        ("qtbase" ,qtbase-5)
        ("xz" ,xz)
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ; ("zstd:lib" ,zstd "lib") ;; Tests fail with zstd
+       ))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt 5 addon providing access to numerous types of archives")
     (description "KArchive provides classes for easy reading, creation and
@@ -414,7 +421,7 @@ GZip format, via a subclass of QIODevice.")
 (define-public kcalendarcore
   (package
     (name "kcalendarcore")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -423,7 +430,7 @@ GZip format, via a subclass of QIODevice.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1y1f8gc1g9yn9kgmn53f1zvkizasfs667dfin3fyci657r5qwpw2"))))
+                "0ig2w0dxrf9ih9hqk5rvqqmyhg658m1hs4807zl66llplkr58q0n"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -435,26 +442,9 @@ GZip format, via a subclass of QIODevice.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'disable-failing-libical3-tests
-           (lambda _
-             ;; testicaltimezones fails with some time-zone issue
-             (substitute* "autotests/CMakeLists.txt"
-               (("macro_unit_tests\\(testicaltimezones\\)" line)
-                (string-append "## " line))
-               (("target_link_libraries\\(testicaltimezones " line)
-                (string-append "## " line)))
-             (for-each
-              delete-file
-              (list
-               ;; test cases are generated for each .ics file. These fail:
-               "autotests/data/Compat-libical3/AppleICal_1.5.ics"
-               "autotests/data/Compat-libical3/Evolution_2.8.2_timezone_test.ics"
-               "autotests/data/Compat-libical3/KOrganizer_3.1a.ics"
-               "autotests/data/Compat-libical3/MSExchange.ics"
-               "autotests/data/Compat-libical3/Mozilla_1.0.ics"))
-             #t))
-         (add-before 'check 'set-timezone
+         (add-before 'check 'check-setup
            (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "QT_QPA_PLATFORM" "offscreen")
              (setenv "TZ" "Europe/Prague")
              (setenv "TZDIR"
                      (search-input-directory inputs
@@ -474,7 +464,7 @@ and the older vCalendar.")
 (define-public kcodecs
   (package
     (name "kcodecs")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -483,7 +473,7 @@ and the older vCalendar.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y9n2a5n18pasdmrp0xb84hla9l27yj2x3k4p1c041sd9nkwixpk"))))
+                "1fb8agbkwxnxb0hlzz0ya460z3ihn9qz2zvjdxvk21rjhmp1alh7"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -510,7 +500,7 @@ Internet).")
 (define-public kconfig
   (package
     (name "kconfig")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -519,28 +509,23 @@ Internet).")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1s3h4hfpw7c0894cifj66bj1yhx8g94ckvl71jm7qqsb5x5h6y9n"))))
+                "1l8px5qpf5qfma24filim1swblgbdvnf25pc38qc6s79inkganrl"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("dbus" ,dbus)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("inetutils" ,inetutils)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server-for-tests)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
     (inputs
      `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd))
-             (setenv "TMPDIR" (getcwd))
-             #t))
          (replace 'check
-           (lambda _
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; kconfigcore-kconfigtest fails inconsistently!!
+               (setenv "HOME" (getcwd))
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               (invoke "ctest" "-E" "kconfigcore-kconfigtest"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Kconfiguration settings framework for Qt")
     (description "KConfig provides an advanced configuration system.
@@ -575,7 +560,7 @@ propagate their changes to their respective configuration files.")
 (define-public kcoreaddons
   (package
     (name "kcoreaddons")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -584,41 +569,25 @@ propagate their changes to their respective configuration files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "10a7zys3limsawl7lk9ggymk3msk2bp0y8hp0jmsvk3l405pd1ps"))))
+                "19pdpz7jjknccaqc2i6zfmclmrk60clzanvx72ryvh7yb0xyk7yj"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)
        ("shared-mime-info" ,shared-mime-info)
        ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
-       ("xorg-server" ,xorg-server-for-tests))) ; for the tests
+       ))
     (inputs
      `(("qtbase" ,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")
-                 ;; This fails with ENOSPC because of too many inotify watches.
-                 (display "[benchNotifyWatcher]\n*\n")))
-             #t))
-         ;; See upstream commit ee424e9b62368485bba4193053cabb553a1d268e
-         (add-after 'unpack 'fix-broken-test
-           (lambda _
-             (substitute* "autotests/kdirwatch_unittest.cpp"
-               (("QVERIFY\\(waitForRecreationSignal\\(watch, existingFile\\)\\);" m)
-                (string-append m "\nwaitUntilNewSecond();")))
-             #t))
-         (add-before 'check 'check-setup
-           (lambda _
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
              (setenv "HOME" (getcwd))
              (setenv "TMPDIR" (getcwd))
+             (when tests? ;; kdirwatch test fails inconsistently. kprocesstest fails.
+               (invoke "ctest" "-E" "(kdirwatch_qfswatch_unittest|kprocesstest)"))
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt addon library with a collection of non-GUI utilities")
@@ -632,7 +601,7 @@ many more.")
 (define-public kdbusaddons
   (package
     (name "kdbusaddons")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -641,8 +610,7 @@ many more.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1vz2hg5p8wvfk0pi8v25zqzcn8yj7ykakxjyipmadvi02c1h8gic"))
-              (patches (search-patches "kdbusaddons-kinit-file-name.patch"))))
+                "14xmrvak95aqc98a6k6ldg1w4g7syx2xng3vgvwj9wzpzr3shp6p"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -661,11 +629,14 @@ many more.")
             ;; look for the kdeinit5 executable in kinit's store directory,
             ;; instead of the current application's directory:
             (substitute* "src/kdeinitinterface.cpp"
-              (("@SUBSTITUTEME@") (assoc-ref inputs "kinit")))))
+              (("<< QCoreApplication::applicationDirPath..")
+               (string-append
+                "<< QString::fromUtf8(\"" (assoc-ref inputs "kinit") "/bin\")" )))))
          (replace 'check
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (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,
@@ -677,7 +648,7 @@ as well as an API to create KDED modules.")
 (define-public kdnssd
   (package
     (name "kdnssd")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -686,7 +657,7 @@ as well as an API to create KDED modules.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0wadknnf472rqg2xnqzs5v23qzqfr336wj6d96yg2ayqm0chbppy"))))
+                "1rs8i75qm1vazy8cnvcv3sha6faf27bav491z8brcs8fiab96dnw"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -726,7 +697,7 @@ infrastructure.")
      `(("pkg-config" ,pkg-config)
        ("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)))
-    (home-page "https://apps.kde.org/en/kgraphviewer")
+    (home-page "https://apps.kde.org/kgraphviewer/")
     (synopsis "Graphviz dot graph viewer for KDE")
     (description "KGraphViewer is a Graphviz DOT graph file viewer, aimed to
 replace the other outdated Graphviz tools.")
@@ -735,7 +706,7 @@ replace the other outdated Graphviz tools.")
 (define-public kguiaddons
   (package
     (name "kguiaddons")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -744,7 +715,7 @@ replace the other outdated Graphviz tools.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1yndjdhb9zzlhh74xccpys38balm5dma56sx6bwwfrga1phq0g5l"))))
+                "1k88x22f8db90x28fryg6cp239sfs0zrjk18l72v09bg3zc7y1lh"))))
     (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,
@@ -755,7 +726,9 @@ replace the other outdated Graphviz tools.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+       ("qtwayland" ,qtwayland)
+       ("qtx11extras" ,qtx11extras)
+       ("wayland" ,wayland)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Utilities for graphical user interfaces")
     (description "The KDE GUI addons provide utilities for graphical user
@@ -765,7 +738,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
 (define-public kholidays
   (package
     (name "kholidays")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -773,18 +746,8 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
                     (version-major+minor version) "/"
                     name "-" version ".tar.xz"))
        (sha256
-        (base32 "1rifx51yk24sk578h08s1bwpqb61rnyyks33zpl82lcdnl1ljp26"))))
+        (base32 "1ca51vkmwwrl1fvs2fw16nvpmag2licywwmwjiaapkk8hv6v1gzm"))))
     (build-system cmake-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; blacklist a failing test function TODO: make it pass
-             (with-output-to-file "autotests/BLACKLIST"
-               (lambda _
-                 (display "[testDefaultRegions]\n*\n")))
-             #t)))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
@@ -800,7 +763,7 @@ other special events for a geographical region.")
 (define-public ki18n
   (package
     (name "ki18n")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -809,7 +772,7 @@ other special events for a geographical region.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1f952488492sm904i1iwgjp2gc7z07312mlshw4ckh2801y0qclc"))))
+                "0395khchbhp7x4fgb2fwxlpx0mhdvbkgd0v7kwgmm0n4bkn7jphi"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("gettext" ,gettext-minimal)
@@ -818,8 +781,7 @@ other special events for a geographical region.")
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtscript" ,qtscript)))
+       ("qtdeclarative" ,qtdeclarative)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -843,7 +805,7 @@ translation scripting.")
 (define-public kidletime
   (package
     (name "kidletime")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -852,7 +814,7 @@ translation scripting.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0vbxs80a8kh2xbxclx8zwl7acynsasa7i0cs171fxr26d0dmmhm5"))))
+                "1m0p602i9c4dmkll3g8flmzq23ywv20rxnvzc1c8bf5kqn6321qp"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -874,7 +836,7 @@ or user activity.")
   ;; plasma-framework which is tier 3.
   (package
     (name "kirigami")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -883,7 +845,7 @@ or user activity.")
                     "kirigami2-" version ".tar.xz"))
               (sha256
                (base32
-                "0akkyif6n9l7hw4cj6nkf1zwgnd7vqi1gyiqmn588rspgl91zf1w"))))
+                "1wvj0nnb1dd1k12arlmlx99gjhk7v2jpw5sgyjka6kkps31nr1zi"))))
     (properties `((upstream-name . "kirigami2")))
     (build-system cmake-build-system)
     (native-inputs
@@ -910,7 +872,7 @@ of applications that follow the Kirigami Human Interface Guidelines.")
 (define-public kitemmodels
   (package
     (name "kitemmodels")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -919,7 +881,7 @@ of applications that follow the Kirigami Human Interface Guidelines.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0x7y5shg2pp490hvmkz81b8j01cha9j1001q34m7pnyf0n3zknzc"))))
+                "1qx78pfbnwsq8nn6fa8qjjc0zn4nwh4dqs0ifb9iaam33cl3kw92"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -961,7 +923,7 @@ model to observers
 (define-public kitemviews
   (package
     (name "kitemviews")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -970,7 +932,7 @@ model to observers
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "04vlmkvc3y5h7cpb6kdv9gha5axxkimhqh44mdg2ncyn4sas6j68"))))
+                "1nrg92nyc39fl1n7k38pa4k8dahwl76wadv0v0ixyh1zx0x4clbg"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -987,7 +949,7 @@ to flat and hierarchical lists.")
 (define-public kplotting
   (package
     (name "kplotting")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -996,7 +958,7 @@ to flat and hierarchical lists.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1wj4n2a8iz9ml1y0012xkpsx3dfp5gl2dn80sifrzvkxjxrhwach"))))
+                "1np6rqrxldnhz82ak291kr87zqccmp9a3v4gvxl0xsm2qnpzxlxz"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1015,7 +977,7 @@ pixel units.")
 (define-public ksyntaxhighlighting
   (package
     (name "ksyntaxhighlighting")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1024,7 +986,7 @@ pixel units.")
                     "syntax-highlighting-" version ".tar.xz"))
               (sha256
                (base32
-                "12jn7lqsp86329spai7n1n8i65nwhxh8gp33wkq543h7w3i2a3jb"))))
+                "148wm3qdjkwzvcm51x3cppsxl4rylbjyjp1pfh6545fhikm5nqi6"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1041,9 +1003,6 @@ pixel units.")
            (lambda _
              ;; revert the patch-shebang phase on scripts which are
              ;; in fact test data
-             (substitute* '("autotests/input/test.bash"
-                            "autotests/folding/test.bash.fold")
-               (((which "bash")) "/bin/bash"))
              (substitute* '("autotests/input/highlight.sh"
                             "autotests/folding/highlight.sh.fold")
                (((which "sh")) " /bin/sh")) ;; space in front!
@@ -1089,7 +1048,7 @@ protocols used in KDE Plasma.")
 (define-public kwayland
   (package
     (name "kwayland")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1098,24 +1057,27 @@ protocols used in KDE Plasma.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hrpbfzixjpnfy9q5x66q1fff0p7n80rrs127zzdv68pyi6456ry"))))
+                "03lrlprvc3bj43f0l0dirg93l7amzlcx4ajaqh9h54g030qanfmc"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("qtbase" ,qtbase-5)
+     `(("plasma-wayland-protocol" ,plasma-wayland-protocols)
+       ("qtbase" ,qtbase-5)
        ("qtwayland" ,qtwayland)
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)))
     (arguments
-     `(#:tests? #f ; FIXME tests require weston to run
-                   ; weston requires wayland flags in mesa
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "XDG_RUNTIME_DIR" "/tmp")
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             (when tests? ;; One test fails.
+               ;; kwayland-testXdgForeign
+               (invoke "ctest" "-E" "kwayland-testWaylandRegistry"))
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt-style API to interact with the wayland client and server")
@@ -1130,7 +1092,7 @@ represented by a QPoint or a QSize.")
 (define-public kwidgetsaddons
   (package
     (name "kwidgetsaddons")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1139,7 +1101,7 @@ represented by a QPoint or a QSize.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "03l37lh219np7pqfa56r2v7n5s5xg4rjq005qng4b5izd95ri56j"))))
+                "00gv9lxiah6yg8lxjd0md0zyvhi7zc9s6fg14jfh0cb1i0zrn49b"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1167,7 +1129,7 @@ configuration pages, message boxes, and password requests.")
 (define-public kwindowsystem
   (package
     (name "kwindowsystem")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1176,7 +1138,7 @@ configuration pages, message boxes, and password requests.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0a68cj0bsl5a9sxfd969khznycrn9p6grp2b08hqacxqdknzs0wh"))))
+                "0rxmpawp5g46xp5irk1gcdq6n2y9r9vlx1dm5gpqhcfh7gr64ja2"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1203,16 +1165,18 @@ configuration pages, message boxes, and password requests.")
                  (display "[testClientMachine]\n*\n"))) ;; requires network
              #t))
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              ;; The test suite requires a running window anager
-             (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" "."))))))
+             (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"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE access to the windowing system")
     (description "KWindowSystem provides information about and allows
@@ -1230,7 +1194,7 @@ lower level classes for interaction with the X Windowing System.")
 (define-public modemmanager-qt
   (package
     (name "modemmanager-qt")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1239,7 +1203,7 @@ lower level classes for interaction with the X Windowing System.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ydq1l823jgp0yrrpqi1zdk5dsg65ydk1x082qwsa9a0vzs0np3x"))))
+                "1ag98r2hhd93gki3dvlz48sgqc2805b0p0w4m0az0czvxnclg0rk"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1254,9 +1218,11 @@ lower level classes for interaction with the X Windowing System.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "DBUS_FATAL_WARNINGS" "0")
+               (invoke "dbus-launch" "ctest"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt wrapper for ModemManager DBus API")
     (description "ModemManagerQt provides access to all ModemManager features
@@ -1268,7 +1234,7 @@ messages.")
 (define-public networkmanager-qt
   (package
     (name "networkmanager-qt")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1277,7 +1243,7 @@ messages.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1h2kdw5vs7mn3n7bvqwm36a48ra9iap6384kanz14zjbankj04c1"))))
+                "0a4sxcm88mfry1sjc4r0qx5aqmbb61ghmd912wqk19nx18qgkm5y"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1293,9 +1259,11 @@ messages.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "DBUS_FATAL_WARNINGS" "0")
+               (invoke "dbus-launch" "ctest"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt wrapper for NetworkManager DBus API")
     (description "NetworkManagerQt provides access to all NetworkManager
@@ -1307,7 +1275,7 @@ which are used in DBus communication.")
 (define-public oxygen-icons
   (package
     (name "oxygen-icons")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1316,7 +1284,7 @@ which are used in DBus communication.")
                     name "5" "-" version ".tar.xz"))
               (sha256
                (base32
-                "1rjsnz0g7zyzgii26sk370adb6jcyvr2lm8qi23fvqimifngqm2c"))))
+                "0mpxv2m6nkl1cp3p0xgpm916k2ykvkyk0x0ka4azs8iyy0anc36m"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1332,7 +1300,7 @@ which are used in DBus communication.")
 (define-public prison
   (package
     (name "prison")
-    (version "5.70.0")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
@@ -1340,7 +1308,7 @@ which are used in DBus communication.")
                            (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "1qflivvb593d2npc218xkdn3w5zvl7x8v1b52ydnggsxzbgkqvb4"))))
+        (base32 "0vb8ny4za37v4nmcy9qw8zz5zcr46clci9lg22s84f26l4vlcs87"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1357,14 +1325,14 @@ provides uniform access to generation of barcodes with data.")
 (define-public pulseaudio-qt
   (package
     (name "pulseaudio-qt")
-    (version "1.2")
+    (version "1.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://download.kde.org/stable/pulseaudio-qt"
+              (uri (string-append "mirror://kde/stable/pulseaudio-qt"
                                   "/pulseaudio-qt-" version ".tar.xz"))
               (sha256
                (base32
-                "1i0ql68kxv9jxs24rsd3s7jhjid3f2fq56fj4wbp16zb4wd14099"))))
+                "1i4yb0v1mmhih8c2i61hybg6q60qys3pc5wbjb7a0vwl1mihgsxw"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1388,7 +1356,7 @@ libpulse.")
 (define-public qqc2-desktop-style
   (package
     (name "qqc2-desktop-style")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1397,7 +1365,7 @@ libpulse.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1n47cl082zqdw6ykil04rw6bws4fn1m8wfx4vxv1aqj9warbdks3"))))
+                "02i4rg5gf7i63lm4f0afm9n3lgzvklpbg43d0zcsdwzph386baq7"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1422,7 +1390,7 @@ feel.")
 (define-public solid
   (package
     (name "solid")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1431,15 +1399,16 @@ feel.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0alng7ciw6xji0s2zrk8dsx1p0p9shrrfzl8wnkwygc5chnhysz7"))))
+                "0zmcc4ryp4j93999f0fgwvchs4gycbynsz0wghrhdqkfhsjvhqra"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "DBUS_FATAL_WARNINGS" "0")
+               (invoke "dbus-launch" "ctest")))))))
     (native-inputs
      `(("bison" ,bison)
        ("dbus" ,dbus)
@@ -1461,7 +1430,7 @@ system.")
 (define-public sonnet
   (package
     (name "sonnet")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1470,7 +1439,7 @@ system.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0b88h5fw1n8zyrg0vq3lj2jbjjyh0mk64lj6ab3643kxzqxbn30w"))))
+                "1cc9j9ks33s6amr01a7ywnqiqvm498vlmqqva40ddvkfq1azxmhs"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1490,7 +1459,7 @@ ASpell and HUNSPELL.")
 (define-public threadweaver
   (package
     (name "threadweaver")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1499,7 +1468,7 @@ ASpell and HUNSPELL.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y1q0wy073lf11g4jrp4bdw4kpj4ibqfscsxj6zlh8ban9zlf389"))))
+                "1gqpzv2ijw66fpvaqv66xsglh19lv0k4j9i505xmmkzlyddbhkch"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1520,7 +1489,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
 (define-public kactivities
   (package
     (name "kactivities")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1529,7 +1498,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1whsp0f87lrcn61s9rfhy0aj68hm6zgfa38mq6frlkcjksi0z1vn"))))
+                "1ynngg9x70dwcnn4ncf7h63hj5p187d4mk1aqriax0iz21mfjmp9"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1565,7 +1534,7 @@ with other frameworks.")
 (define-public kauth
   (package
     (name "kauth")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1574,7 +1543,7 @@ with other frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0nmdz7ra3hpg0air4lfkzilv7cwx3zxs29k7sh8l3i1fs3qpjwxm"))))
+                "1gbq487v2nn0zyis6xdvsn0mz7yy131vafq76jdi7b6nyh5c1lgi"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -1599,9 +1568,10 @@ with other frameworks.")
                (("@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
                 "${KDE_INSTALL_LIBEXECDIR}"))))
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" "."))))))
+             (when tests? (invoke "dbus-launch" "ctest"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Execute actions as privileged user")
     (description "KAuth provides a convenient, system-integrated way to offload
@@ -1612,7 +1582,7 @@ utilities.")
 (define-public kcompletion
   (package
     (name "kcompletion")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1621,7 +1591,7 @@ utilities.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1pjgya8wi28jx63hcdi9v5f5487gzbkw2j1iganhd7bhcb8s7zpy"))))
+                "15c9sgdgw6cf5y2jjgjlsxn0p0pxvrmhzcyq05d9fqhy185ng03p"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1640,7 +1610,7 @@ integrated it into your application's other widgets.")
 (define-public kcontacts
   (package
     (name "kcontacts")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1649,7 +1619,7 @@ integrated it into your application's other widgets.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "182ma11z3kqxq3cwy7kwprfqkb9bcmn44w7k9vixbid4pv5wa0lb"))))
+                "02zyirvds572rxbdc47ncs71a66z5hql0vpj8lx1zpr0nnvpvlcv"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1685,7 +1655,7 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
 (define-public kcrash
   (package
     (name "kcrash")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1694,7 +1664,7 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "11sy9hrjpvybqi53qjrnncy9mzifrb3vqxi2d12ldjzqyqd8pirp"))))
+                "1l48dn5vqn4lns57v61p1a8r3pklx4xclsa3890pjf6iviqxf22r"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1712,7 +1682,7 @@ application crashes.")
 (define-public kdoctools
   (package
     (name "kdoctools")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1721,7 +1691,7 @@ application crashes.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0g0k83np2xaxk05spf14h5fvzy0n7kbcwx1sa9wjh570f6jx87am"))))
+                "0md5wiv5mv4q63g9ads8d0xg8qxlh91dqgyg66n8abcg56qq83ps"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1769,7 +1739,7 @@ from DocBook files.")
 (define-public kfilemetadata
   (package
     (name "kfilemetadata")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1778,25 +1748,22 @@ from DocBook files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "18n1a5857090a1c1rxzd07sxs652gl6wr3n99sp8rxmvkghn9zsj"))))
+                "1nh4gzprc588q8zfz94j76x3vvf77cnsc30xrs07316726mksw2i"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'disable-failing-test
-           (lambda _
-             ;; Blacklist a failing test-function. FIXME: Make it pass.
-             ;; UserMetaDataWriterTest fails with getxattr("…/writertest.txt")
-             ;; -> EOPNOTSUPP (Operation not supported)
-             (with-output-to-file "autotests/BLACKLIST"
-               (lambda _
-                 (display "[testMimetype]\n*\n")
-                 (display "[test]\n*\n")))
+         (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" "embeddedimagedatatest"))
              #t)))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)
-       ("python-2" ,python-2)))
+       ))
     (inputs
      `(("attr" ,attr)
        ;; TODO: EPub http://sourceforge.net/projects/ebook-tools
@@ -1823,7 +1790,7 @@ by applications to write metadata.")
 (define-public kimageformats
   (package
     (name "kimageformats")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1832,7 +1799,7 @@ by applications to write metadata.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0pk4b725wapzdxv1mm6ddqcl6z8ffcpr32i5vrhrin8awi5gx13s"))))
+                "0c4qq5j6hzz90kh7mmirafglr9l5wck3r67ij436gpmq69ignvmg"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1877,7 +1844,7 @@ formats.")
 (define-public kjobwidgets
   (package
     (name "kjobwidgets")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1886,7 +1853,7 @@ formats.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "13kdczzyyh17hf6vlhh4li5bn4yq5bab5xa8mm63r9rynxihgclf"))))
+                "0s0g4dygc6c9p5w7vdk7bninizsdhj5xan351x15b4k0ddgq8sz5"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1905,7 +1872,7 @@ asynchronous jobs.")
 (define-public knotifications
   (package
     (name "knotifications")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1914,7 +1881,7 @@ asynchronous jobs.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "01bn23xw2n53h9nl99lm3cjnqs8s66bmwkzf6fkpg9rzkykizbyc"))))
+                "03zraci1lnzz3d5i97i2m2h4z8xp4fmm28aizk3xipqkgy3q61c3"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1925,11 +1892,12 @@ asynchronous jobs.")
        ("kconfig" ,kconfig)
        ("kcoreaddons" ,kcoreaddons)
        ("kwindowsystem" ,kwindowsystem)
+       ("libcanberra" ,libcanberra)
+       ("libdbusmenu-qt" ,libdbusmenu-qt)
        ("phonon" ,phonon)
        ("qtbase" ,qtbase-5)
+       ("qtdeclarative" ,qtdeclarative)
        ("qtspeech" ,qtspeech)
-       ;; TODO: Think about adding dbusmenu-qt5 from
-       ;; https://launchpad.net/libdbusmenu-qt
        ("qtx11extras" ,qtx11extras)))
     (arguments
      `(#:phases
@@ -1939,9 +1907,11 @@ asynchronous jobs.")
              (setenv "HOME" (getcwd))
              #t))
          (replace 'check
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "DBUS_FATAL_WARNINGS" "0")
+               (invoke "dbus-launch" "ctest"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Desktop notifications")
     (description "KNotification is used to notify the user of an event.  It
@@ -1951,7 +1921,7 @@ covers feedback and persistent events.")
 (define-public kpackage
   (package
     (name "kpackage")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1960,11 +1930,10 @@ covers feedback and persistent events.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "03rp7p7i8ihz5wg58gjs638jk7xbszknfiy2j3r979snc57g95mv"))
+                "1dmhj1byxmk407mcz62ydrzzjab6c4da22blkm4f5das79blkdsy"))
               ;; Default to: external paths/symlinks can be followed by a
               ;; package
-              (patches (search-patches "kpackage-allow-external-paths.patch"
-                                       "kpackage-fix-KF5PackageMacros.cmake.patch"))))
+              (patches (search-patches "kpackage-allow-external-paths.patch"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1981,8 +1950,7 @@ covers feedback and persistent events.")
          (add-after 'unpack 'patch
            (lambda _
              ;; Make QDirIterator follow symlinks
-             (substitute* '("src/kpackage/packageloader.cpp"
-                            "src/kpackage/private/packagejobthread.cpp")
+             (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)
@@ -2013,7 +1981,7 @@ were traditional plugins.")
 (define-public kpty
   (package
     (name "kpty")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2022,7 +1990,7 @@ were traditional plugins.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1hp6iilr2asf2269linfazjv4yjg7rsi8wydxx53yyr99r0bgmah"))))
+                "1qd2lj53m0gbpmfilwrcz5v2m735daqlxj2qv1j5m28b3bjwz2li"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2050,7 +2018,7 @@ and communicating with them using a pty.")
 (define-public kunitconversion
   (package
     (name "kunitconversion")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2059,18 +2027,9 @@ and communicating with them using a pty.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0sp4gfzpf40cdi0xnff9sn7b75z88j0589svz4rv77q5m137cgnn"))))
+                "1b5yvs0inr0kj7i4j5yavlxz6n8h3d2wbgw39r2harzxd4xjzz4h"))))
     (build-system cmake-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-a-failing-test-case
-           (lambda _
-             ;; FIXME: Re-enable this test-case. It was committed with the
-             ;; message: "tsan says it's clean, apart from issues in Qt
-             ;; (reported upstream)"
-             (substitute* "autotests/convertertest.cpp"
-               (("const int numThreads = 2") "const int numThreads = 0")))))))
+    (arguments `(#:tests? #f)) ;; Requires network.
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
@@ -2087,7 +2046,7 @@ gallons).")
 (define-public syndication
   (package
     (name "syndication")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2096,7 +2055,7 @@ gallons).")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1n3x8s1z4kd30xirfr07hi87vwhk4rilb5kslcjcgp5n9c0imcpv"))))
+                "1xbs83smgqzk01r7nds6p74v9n1pa0zhlafbbxlj2m226p1zf8bs"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2120,7 +2079,7 @@ between feed formats.")
 (define-public baloo
   (package
     (name "baloo")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2129,7 +2088,7 @@ between feed formats.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1cf5pp9hn3pqypwyzh63ksasap3n7qz6n3y2xgb83ss3fra90pjf"))))
+                "0h55hn6klsq19l44qzc95l1r7hx2zr9hr4ysxd8kvcxc02imaswb"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kcoreaddons" ,kcoreaddons)
@@ -2158,17 +2117,6 @@ between feed formats.")
     (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")
-             (with-output-to-file "bin/BLACKLIST"
-               (lambda _
-                 ;; Blacklist some failing tests. FIXME: Make them pass.
-                 (display "[testRenameFile]\n*\n")
-                 (display "[testMoveFile]\n*\n")))
-             #t))
          (add-after 'unpack 'remove-failing-test
            (lambda _
              ;; FIXME: kinotifytest broke in 5.70.0 with commit 73183acf00 and
@@ -2181,9 +2129,12 @@ between feed formats.")
                 (string-append all " AND NOT TRUE")))
              #t))
          (replace 'check
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "DBUS_FATAL_WARNINGS" "0")
+               (setenv "HOME" (getcwd))
+               (invoke "dbus-launch" "ctest"))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "File searching and indexing")
     (description "Baloo provides file searching and indexing.  It does so by
@@ -2194,7 +2145,7 @@ maintaining an index of the contents of your files.")
 (define-public kactivities-stats
   (package
     (name "kactivities-stats")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2203,7 +2154,7 @@ maintaining an index of the contents of your files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1cnfdnxkw9hwbqdzdygp2vzwxqwqhxyipzwdcgar0clgnf7zi7wx"))))
+                "1n7jzbfwgwclnrnssxm180fis74qp3v9nximhc0l8fmb8ac1f106"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2224,7 +2175,7 @@ by which applications, and what documents have been linked to which activity.")
 (define-public kbookmarks
   (package
     (name "kbookmarks")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2233,7 +2184,7 @@ by which applications, and what documents have been linked to which activity.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1i5vcyvyc9whmflbcg2kc562ch93yscfic1c1n9z347g26jmgras"))))
+                "0klws0psdq9vx09p38ckki7aqbdkcns1smk8ckj79krpsjv8q9nx"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kwidgetsaddons" ,kwidgetsaddons)))
@@ -2267,7 +2218,7 @@ using the XBEL format.")
 (define-public kcmutils
   (package
     (name "kcmutils")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2276,7 +2227,7 @@ using the XBEL format.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "08f4yr546brl1dppp0khvsw9ihmh9a7rp505913pdhi0sklaiimz"))))
+                "09pcif2gmkbhwqb8cxfs89nw81wdpdsd4a2n7xdm1xz6lpwwmk1h"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfigwidgets" ,kconfigwidgets)
@@ -2296,6 +2247,10 @@ using the XBEL format.")
                ;; 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)))
+             #t))
+         (add-before 'check 'check-setup
+           (lambda _
+             (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (inputs
      `(("kauth" ,kauth)
@@ -2321,7 +2276,7 @@ KCModules can be created with the KConfigWidgets framework.")
 (define-public kconfigwidgets
   (package
     (name "kconfigwidgets")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2330,7 +2285,7 @@ KCModules can be created with the KConfigWidgets framework.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "195dw7nyr3fp78y3vfnyjh0hwgwk46f80wdcm8dck5rkscl3v9xz"))))
+                "18m3nqlp87am2w8my4y933ck9k3cs5q62nkhbp8ngaavw8cfbd84"))))
     (build-system qt-build-system)
     (propagated-inputs
      `(("kauth" ,kauth)
@@ -2339,14 +2294,14 @@ KCModules can be created with the KConfigWidgets framework.")
        ("kwidgetsaddons" ,kwidgetsaddons)))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)
        ("kdoctools" ,kdoctools)))
     (inputs
      `(("kcoreaddons" ,kcoreaddons)
        ("kguiaddons" ,kguiaddons)
        ("ki18n" ,ki18n)
        ;; todo: PythonModuleGeneration
-       ("qtbase" ,qtbase-5)
-       ("qttools" ,qttools)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2368,7 +2323,7 @@ their settings.")
 (define-public kdeclarative
   (package
     (name "kdeclarative")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2377,7 +2332,7 @@ their settings.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1vq9pkrb0zsphi2sfx7cyy1kb6pklzjkmqdf5202z8vydlkc4549"))))
+                "0zx4alsqk3vqfgyi6x7v2mcar92j3swmg0ms0b9mjl95bvpgi4k7"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfig" ,kconfig)
@@ -2388,22 +2343,17 @@ their settings.")
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
        ("kglobalaccel" ,kglobalaccel)
        ("kguiaddons" ,kguiaddons)
        ("kiconthemes" ,kiconthemes)
        ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
        ("ki18n" ,ki18n)
        ("kjobwidgets" ,kjobwidgets)
+       ("knotifications" ,knotifications)
        ("kservice" ,kservice)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
        ("libepoxy" ,libepoxy)
        ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
@@ -2430,7 +2380,7 @@ that offer bindings to some of the Frameworks.")
 (define-public kded
   (package
     (name "kded")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2439,7 +2389,7 @@ that offer bindings to some of the Frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0zqd33vy4ny7g9as3bhd75qi1chz1nlqq133pgw8kjanvghwwnk9"))))
+                "18dw1dd2lmwsh04yan1q72c5lzcgzm9kig1rqag3rg81h7pclsr5"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2449,7 +2399,6 @@ that offer bindings to some of the Frameworks.")
        ("kcrash" ,kcrash)
        ("kdbusaddons" ,kdbusaddons)
        ("kdoctools" ,kdoctools)
-       ("kinit" ,kinit)
        ("kservice" ,kservice)
        ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
@@ -2463,7 +2412,7 @@ started on demand.")
 (define-public kdesignerplugin
   (package
     (name "kdesignerplugin")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2472,7 +2421,7 @@ started on demand.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0dr6gcag2yzx8fvxis4x403jrcisywds95cywmiyz3pb5727cak2"))))
+                "12rckqvg6w5cycvmxbrkvxi7ysfk6bqk3yi1ik4ryqh4x5dz2am9"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -2481,20 +2430,7 @@ started on demand.")
      `(("kconfig" ,kconfig)
        ("kcoreaddons" ,kcoreaddons)
        ("kdoctools" ,kdoctools)
-       ("qtbase" ,qtbase-5)
-       ;; optional:
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemviews" ,kitemviews)
-       ("kio" ,kio)
-       ("kplotting" ,kplotting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kdewebkit" ,kdewebkit)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtwebkit" ,qtwebkit)
-       ("sonnet" ,sonnet)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Integrating KDE frameworks widgets with Qt Designer")
     (description "This framework provides plugins for Qt Designer that allow it
@@ -2506,7 +2442,7 @@ ini-style description files.")
 (define-public kdesu
   (package
     (name "kdesu")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2515,7 +2451,7 @@ ini-style description files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "17k29g7jwgqj5xdmr509438b9sq65zx8khdr4viybjf5xpi0cf5m"))))
+                "05bb3hcb00j1f047q6ngbb8arrp4s03da880sky0slvvicm4ynkr"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kpty" ,kpty)))
@@ -2537,7 +2473,7 @@ with su and ssh respectively.")
 (define-public kdewebkit
   (package
     (name "kdewebkit")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2546,7 +2482,7 @@ with su and ssh respectively.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y9ja3znkvzdbjfs91dwr4cmvl9fk97zpz2lkf0f9zhm2nw6q008"))))
+                "1a578sa6nfp2vycrrhc37idwg47nrrfhv6dp8rfb2gj4vf67bzcv"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -2570,7 +2506,7 @@ engine WebKit via QtWebKit.")
 (define-public kemoticons
   (package
     (name "kemoticons")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2579,7 +2515,7 @@ engine WebKit via QtWebKit.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "11v1srn3nii4j7cn4f19qvdw96pczwxhanzxlg4a9gf8kmnp5gxr"))))
+                "0iah6ws0x9xnm900rii2k82gf155cbwlnxbz2rxbybp1dmbjbz5y"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kservice" ,kservice)))
@@ -2610,7 +2546,7 @@ emoticons coming from different providers.")
 (define-public kglobalaccel
   (package
     (name "kglobalaccel")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2619,7 +2555,7 @@ emoticons coming from different providers.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hmqigc8myiwwh7m6y2cm4vn0d3kmrhia179hyb84vpvvn3lm93z"))))
+                "1wk6mxq6ylkvalcwbrkmc0whvkbllkfwnsf4hxz86cnixqb7ybjh"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -2630,9 +2566,7 @@ emoticons coming from different providers.")
        ("kcrash" ,kcrash)
        ("kcoreaddons" ,kcoreaddons)
        ("kdbusaddons" ,kdbusaddons)
-       ("kservice" ,kservice)
        ("kwindowsystem" ,kwindowsystem)
-       ("libxcb" ,libxcb)
        ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
@@ -2646,7 +2580,7 @@ window does not need focus for them to be activated.")
 (define-public kiconthemes
   (package
     (name "kiconthemes")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2655,7 +2589,7 @@ window does not need focus for them to be activated.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "09bqpf3drqyfc81vgab9bsh1wm5qbzdwqjlczhax38660nnvh0r9"))))
+                "04chb3y3d6hxwy9f1xdifvl2mbcd8xbh7fv6x5m5vnb1cviwc6j7"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -2694,7 +2628,7 @@ in applications using the KDE Frameworks.")
 (define-public kinit
   (package
     (name "kinit")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2703,7 +2637,7 @@ in applications using the KDE Frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1x4whs8p1daxjfp4ksf70rxrv7fx3w17s5wh6446039wzz9bv6ki"))
+                "0435syvhisagbq82qcbims5adq88ivv793gvb3kx03hxhyyx81xs"))
               ;; Use the store paths for other packages and dynamically loaded
               ;; libs
               (patches (search-patches "kinit-kdeinit-extra_libs.patch"
@@ -2764,7 +2698,7 @@ consumption.")
 (define-public kio
   (package
     (name "kio")
-    (version "5.70.1")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2773,7 +2707,7 @@ consumption.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1f33jdjjx6k1d5fab35x8xakc4ny9fyfrgkbib60xncc82lz2h5l"))
+                "0sxwrqvfkqm679v99lx50vd2p4bx10pdzrjhxg0njfwww2fxa7mr"))
               (patches (search-patches "kio-search-smbd-on-PATH.patch"))))
     (build-system cmake-build-system)
     (propagated-inputs
@@ -2799,8 +2733,10 @@ consumption.")
        ("kcodecs" ,kcodecs)
        ("kconfigwidgets" ,kconfigwidgets)
        ("kcrash" ,kcrash)
+       ("kded" ,kded)
        ("kdbusaddons" ,kdbusaddons)
        ("kdoctools" ,kdoctools)
+       ("kguiaddons" ,kguiaddons)
        ("kiconthemes" ,kiconthemes)
        ("ki18n" ,ki18n)
        ("knotifications" ,knotifications)
@@ -2810,12 +2746,14 @@ consumption.")
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("qtbase" ,qtbase-5)
+       ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)
        ("qtx11extras" ,qtx11extras)
-       ("sonnet" ,sonnet)))
+       ("sonnet" ,sonnet)
+       ("util-linux:lib" ,util-linux "lib") ; libMount
+       ("zlib" ,zlib)))
     (arguments
-     `(#:tests? #f ; FIXME: 41/50 tests fail.
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch
            (lambda _
@@ -2824,12 +2762,31 @@ consumption.")
                (("(^\\s*qCWarning(KIOD_CATEGORY) << \"Error loading plugin:\")( << loader.errorString();)" _ a b)
                 (string-append a "<< name" b)))
              #t))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd))
-             (setenv "XDG_RUNTIME_DIR" (getcwd))
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
+         (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: 16/67 tests fail.
+                       (string-append "(kiocore-jobtest"
+                                      "|fileitemtest"
+                                      "|kiocore-ktcpsockettest"
+                                      "|kiocore-mimetypefinderjobtest"
+                                      "|kiocore-http_jobtest"
+                                      "|kiogui-openurljobtest"
+                                      "|applicationlauncherjob_forkingtest"
+                                      "|applicationlauncherjob_scopetest"
+                                      "|applicationlauncherjob_servicetest"
+                                      "|commandlauncherjob_forkingtest"
+                                      "|commandlauncherjob_scopetest"
+                                      "|commandlauncherjob_servicetest"
+                                      "|kiowidgets-kfileitemactionstest"
+                                      "|kiowidgets-kurifiltertest-colon-separator"
+                                      "|kiowidgets-kurifiltertest-space-separator"
+                                      "|kiofilewidgets-knewfilemenutest)")))
              #t))
          (add-after 'install 'add-symlinks
            ;; Some package(s) (e.g. bluedevil) refer to these service types by
@@ -2839,11 +2796,8 @@ consumption.")
              (let ((kst5 (string-append (assoc-ref outputs "out")
                                         "/share/kservicetypes5/")))
                (symlink (string-append kst5 "kfileitemactionplugin.desktop")
-                        (string-append kst5 "kfileitemaction-plugin.desktop"))))))))
-    ;;(replace 'check
-    ;;  (lambda _
-    ;;    (setenv "DBUS_FATAL_WARNINGS" "0")
-    ;;    (zero? (system* "dbus-launch" "ctest" ".")))))))
+                        (string-append kst5 "kfileitemaction-plugin.desktop")))
+             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Network transparent access to files and data")
     (description "This framework implements a lot of file management functions.
@@ -2895,7 +2849,7 @@ supported using GroupDAV or CardDAV.")
 (define-public knewstuff
   (package
     (name "knewstuff")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2904,7 +2858,7 @@ supported using GroupDAV or CardDAV.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1hpxj4nawh57w8l64gjplb5mk5fpxiffm4x49kg75m637rxy19fq"))))
+                "0xnilr3r3l36g3j7a2nf2kqmill22ibrr6qfniqcywmcqpnq7x4q"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("attica" ,attica)
@@ -2926,6 +2880,7 @@ supported using GroupDAV or CardDAV.")
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
        ("kjobwidgets" ,kjobwidgets)
+       ("kpackage" ,kpackage)
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("qtbase" ,qtbase-5)
@@ -2951,7 +2906,7 @@ specification.")
 (define-public knotifyconfig
   (package
     (name "knotifyconfig")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2960,7 +2915,7 @@ specification.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1d483qrgyamwsqvcl70klv1g8744hn8z1h2j3qfydcvlwz8jy0gj"))))
+                "0jd5yzjg625ixm3fbmpafvg6wc69cvppqr0z0y0wzkbzbd930ggh"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2993,7 +2948,7 @@ notifications which can be embedded in your application.")
 (define-public kparts
   (package
     (name "kparts")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3002,7 +2957,7 @@ notifications which can be embedded in your application.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1gfaxr856zrsjxzdxw1sj12s6aib6r703jgf7yvsl8kilg8l2gsk"))))
+                "0jmjyvrskhvnp0w1d9l9k5azwf1ppda97qp2801179x77bgdfbgi"))))
     (build-system qt-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -3047,7 +3002,7 @@ widgets with a user-interface defined in terms of actions.")
 (define-public kpeople
   (package
     (name "kpeople")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3056,7 +3011,7 @@ widgets with a user-interface defined in terms of actions.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1dhvly19pj9lx78g7mc89scibzmra1vhv4zz33222zidkbrf9ryl"))))
+                "002qnfxyrzv9jr1z86ih7v7bprbpfx311s646rbmjc6c9wqa5a1a"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -3083,7 +3038,7 @@ to easily extend the contacts collection.")
 (define-public krunner
   (package
     (name "krunner")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3092,7 +3047,7 @@ to easily extend the contacts collection.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0fhb26vi9z1mky79kq12qq4g4ghz3530cx84n5l3sdgkd6nfsyqf"))))
+                "0ygqfaif9xp30ahrld85xzsgmfmy51560hl8ym8shggwar20kb1s"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("plasma-framework" ,plasma-framework)))
@@ -3134,20 +3089,13 @@ to easily extend the contacts collection.")
                (("//usr/bin\"") (string-append (getcwd) "\"")) ;; multiple path-parts
                (("/bin/ls" path)
                 (string-append (assoc-ref %build-inputs "coreutils") path)))))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd))
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             ;; Blacklist some failing test-functions. FIXME: Make them pass.
-             (with-output-to-file "bin/BLACKLIST"
-               (lambda _
-                 (display "[testMatch]\n*\n")
-                 (display "[testMulti]\n*\n")))
-             #t))
          (replace 'check
-           (lambda _
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" (getcwd))
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               (invoke "dbus-launch" "ctest" "-E"
+                       "(dbusrunnertest|runnermanagersinglerunnermodetest)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Framework for Plasma runners")
     (description "The Plasma workspace provides an application called KRunner
@@ -3159,7 +3107,7 @@ typed.")
 (define-public kservice
   (package
     (name "kservice")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3168,7 +3116,7 @@ typed.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0g49p5331f7dl46rvi43akmjm1jx70w9797j6d17jy7z9s9sqikw"))))
+                "0a3fcqhwbzqwy9wy1787p8hr1s1jfmz3y1dk2spiifwk9l668mxn"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfig" ,kconfig)
@@ -3176,7 +3124,8 @@ typed.")
     (native-inputs
      `(("bison" ,bison)
        ("extra-cmake-modules" ,extra-cmake-modules)
-       ("flex" ,flex)))
+       ("flex" ,flex)
+       ("shared-mime-info" ,shared-mime-info)))
     (inputs
      `(("kcrash" ,kcrash)
        ("kdbusaddons" ,kdbusaddons)
@@ -3184,8 +3133,7 @@ typed.")
        ("ki18n" ,ki18n)
        ("qtbase" ,qtbase-5)))
     (arguments
-     `(#:tests? #f ; FIXME: 6/10 tests fail.
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch
            ;; Adopted from NixOS' patches "qdiriterator-follow-symlinks" and
@@ -3201,12 +3149,13 @@ typed.")
                (("^\\s*QString resolved = QDir\\(dir\\)\\.canonicalPath\\(\\);")
                 "QString resolved = QDir::cleanPath(dir);"))
              #t))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd))
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" (getcwd))
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               ;; Disable failing tests.
+               (invoke "ctest" "-E" "(kautostarttest|ksycocatest)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Plugin framework for desktop services")
     (description "KService provides a plugin framework for handling desktop
@@ -3218,7 +3167,7 @@ types or handled by application specific code.")
 (define-public ktexteditor
   (package
     (name "ktexteditor")
-    (version "5.70.1")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3227,7 +3176,7 @@ types or handled by application specific code.")
                     "ktexteditor-" version ".tar.xz"))
               (sha256
                (base32
-                "0k10yj1ia1w1mznj4g5nvp65p226zcvgwxc85ycn2w8lbkknidf7"))))
+                "13dnwf2zvp3k6xb0ry5a11gaf2j7x2swhq8d689w4gf3awpma7rg"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kparts" ,kparts)))
@@ -3264,19 +3213,18 @@ types or handled by application specific code.")
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
     (arguments
-     `(#:tests? #f ; FIXME: 2/54 tests fail: Cannot find fontdirectory qtbase/lib/font
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'setup
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "XDG_DATA_DIRS" ; FIXME build phase doesn't find parts.desktop
                      (string-append (assoc-ref inputs "kparts") "/share"))
              #t))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "HOME" (getcwd))
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; Maybe locale issues with tests?
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               (invoke "ctest" "-E" "(kateview_test|movingrange_test)"))
              #t))
          (add-after 'install 'add-symlinks
            ;; Some package(s) (e.g. plasma-sdk) refer to these service types
@@ -3299,7 +3247,7 @@ library.")
 (define-public ktextwidgets
   (package
     (name "ktextwidgets")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3308,7 +3256,7 @@ library.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1609rlwba674kr9whawk93vb1b14b5ly7wvir7kjyjp4j715f47w"))))
+                "04gmqw8wjf6r8lpsjcsg0925a6b6hnckzy5i9ykvian1kq2d79fr"))))
     (build-system qt-build-system)
     (propagated-inputs
      `(("ki18n" ,ki18n)
@@ -3339,7 +3287,7 @@ It supports rich text as well as plain text.")
 (define-public kwallet
   (package
     (name "kwallet")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3348,7 +3296,7 @@ It supports rich text as well as plain text.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ps6ywcirv7xcisvwfcpvk53wm7m8y5lrz4nhkm36rizrdglw19r"))))
+                "1a2qiwhf6hwh6qs9x84hz1ryaaqqm8bpg9v29kjy6cq9krn3mwar"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -3381,7 +3329,7 @@ the passwords on KDE work spaces.")
 (define-public kxmlgui
   (package
     (name "kxmlgui")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3390,7 +3338,7 @@ the passwords on KDE work spaces.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0cvzcq2dcz89c0ffhvfb820hfmqa87mfdbjvrqjwdysc9lr8zx8f"))))
+                "1wnss0rjspgih3m2a3faflamf7n681k8sf8pzrcsrvvrzq95n65i"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfig" ,kconfig)
@@ -3402,6 +3350,7 @@ the passwords on KDE work spaces.")
      `(("attica" ,attica)
        ("kauth" ,kauth)
        ("kcodecs" ,kcodecs)
+       ("kguiaddons" ,kguiaddons)
        ("kcoreaddons" ,kcoreaddons)
        ("kglobalaccel" ,kglobalaccel)
        ("kiconthemes" ,kiconthemes)
@@ -3434,7 +3383,7 @@ descriptions for integrating actions from plugins.")
 (define-public kxmlrpcclient
   (package
     (name "kxmlrpcclient")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3443,7 +3392,7 @@ descriptions for integrating actions from plugins.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1cmfv2w9yfi8jhj5nawfz7kw8jbr1k5cr3n5xv3z59pg2vazsx8b"))))
+                "03l5zs4l52f3w01hsk00r8hmnccyy3iw2vhiclvpp6dksmb8yad7"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kio" ,kio)))
@@ -3477,7 +3426,7 @@ setUrl, setUserAgent and call.")
 (define-public plasma-framework
   (package
     (name "plasma-framework")
-    (version "5.70.1")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3486,8 +3435,7 @@ setUrl, setUserAgent and call.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "06cxajsxj62g3c37ssrrcaxb9a12zbyp2kvrjqym329k5vd89272"))
-              (patches (search-patches "plasma-framework-fix-KF5PlasmaMacros.cmake.patch"))))
+                "1y7w4b7jb8rnkfan97yln5w9w68skrmif4wqqba4f9mj6y2dcajb"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kpackage" ,kpackage)
@@ -3521,6 +3469,8 @@ setUrl, setUserAgent and call.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
+       ;; XXX: "undefined reference to `glGetString'" errors occur without libglvnd,
+       ("libglvnd" ,libglvnd)
        ("phonon" ,phonon)
        ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
@@ -3529,14 +3479,17 @@ setUrl, setUserAgent and call.")
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)))
     (arguments
-     `(#:tests? #f ; FIXME: 9/15 tests fail.
-       #:phases
+     `(#: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")
+         (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)")))
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Libraries, components and tools of Plasma workspaces")
@@ -3548,7 +3501,7 @@ script engines.")
 (define-public purpose
   (package
     (name "purpose")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3557,7 +3510,7 @@ script engines.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1pxlx2hgj42zsisws8f486n8sg0vn5a5mhb85prifwkaw0rqzgah"))))
+                "0ddpm2hm3x1p25hkjzff4vs906n5bkkk4j3myh0gvyqn8accdhsd"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -3573,13 +3526,6 @@ script engines.")
        ("qtdeclarative" ,qtdeclarative)))
     (arguments
      `(#:tests? #f  ;; seem to require network; don't find QTQuick components
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'dont-use-qt515-logic
-           (lambda _
-             (substitute* "src/externalprocess/purposeprocess_main.cpp"
-               ((" 15") " 16"))
-             #t)))
        #:configure-flags '("-DBUILD_TESTING=OFF"))) ; not run anyway
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Offers available actions for a specific purpose")
@@ -3621,7 +3567,7 @@ need.")
 (define-public kde-frameworkintegration
   (package
     (name "kde-frameworkintegration")
-    (version "5.70.0")
+    (version "5.87.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3630,7 +3576,7 @@ need.")
                     "frameworkintegration-" version ".tar.xz"))
               (sha256
                (base32
-                "1lvccvhhkzdv1hw627kw3ds18gfq4bxdhlvh959piqxq5gh9d2n0"))))
+                "1bbgxqgy28abrk2cgzj7k2m18xmkl9kw58dal03pzlmh77br00lb"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3678,7 +3624,7 @@ workspace.")
 (define-public kdelibs4support
   (package
     (name "kdelibs4support")
-    (version "5.70.0")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
@@ -3687,7 +3633,7 @@ workspace.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0imkibjlfc0jshdzr05fz5dy2xmfhvgsfan9b1r35spwsn5qkawx"))))
+        (base32 "17kw76fd97rhdyna3dc7hsajvd8bv9l71qx0xaqn65pvzbndf2jf"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -3699,7 +3645,8 @@ workspace.")
        ("shared-mime-info" ,shared-mime-info)
        ("kjobwidgets" ,kjobwidgets) ;; required for running the tests
        ("strace" ,strace)
-       ("tzdata" ,tzdata-for-tests)))
+       ("tzdata" ,tzdata-for-tests)
+       ("qttools" ,qttools)))
     (propagated-inputs
      ;; These are required to be installed along with this package, see
      ;; lib64/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake
@@ -3736,7 +3683,6 @@ workspace.")
        ("networkmanager-qt" ,networkmanager-qt)
        ("openssl" ,openssl)
        ("qtsvg" ,qtsvg)
-       ("qttools" ,qttools)
        ("qtx11extras" ,qtx11extras)))
     ;; FIXME: Use Guix ca-bundle.crt in etc/xdg/ksslcalist and
     ;; share/kf5/kssl/ca-bundle.crt
@@ -3772,7 +3718,7 @@ workspace.")
                (lambda _
                  (display "[testSmb]\n*\n")))
              ;; kuniqueapptest hangs. FIXME: Make this test pass.
-             (invoke "dbus-launch" "ctest" "."
+             (invoke "dbus-launch" "ctest"
                      "-E" "kstandarddirstest|kuniqueapptest"))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 porting aid from KDELibs4")
@@ -3794,7 +3740,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
 (define-public khtml
   (package
     (name "khtml")
-    (version "5.70.0")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
@@ -3803,7 +3749,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "1jh0g6xv57hyclnh54x0f72lby1gvlisan23y7mzlqf67aky52s5"))))
+        (base32 "1jxpznzw4r8ikx0g5n1fg0qrkllph5cwih4lcvwjn6cqx2ypgn6f"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3845,7 +3791,7 @@ technology and using KJS for JavaScript support.")
 (define-public kjs
   (package
     (name "kjs")
-    (version "5.70.0")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
@@ -3854,7 +3800,7 @@ technology and using KJS for JavaScript support.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0s3n0pdz59p5v967zrxcas3lb94k5bv9vi8058fi0l20nwwlcgh5"))))
+        (base32 "1ihwhjgk3k2nmyfg2brdjriymm2qi5dgmh47phmb9b2gvzqx6yg8"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3878,7 +3824,7 @@ support.")
 (define-public kjsembed
   (package
     (name "kjsembed")
-    (version "5.70.0")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
@@ -3887,7 +3833,7 @@ support.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0976faazhxhhi1wpvpcs8hwb2knz0z7j44v3ay3hw73rq4p3bipm"))))
+        (base32 "0j8b637k8vx2qhl3zf6744ywykv6hnfcs2xgsq0i8w5ji0a2jigv"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3907,7 +3853,7 @@ QObjects, so you can script your applications.")
 (define-public kmediaplayer
   (package
     (name "kmediaplayer")
-    (version "5.70.0")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
@@ -3916,7 +3862,7 @@ QObjects, so you can script your applications.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0lrm4y727nhwaivl37zpmnrwx048gfhyjw19m6q5z9p37lk43jja"))))
+        (base32 "0mrmb7q4wmj8v9ipb9vh4c8scl1mr0frz3yvpc96dyimvb87pp08"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3945,7 +3891,7 @@ KParts instead.")
 (define-public kross
   (package
     (name "kross")
-    (version "5.70.0")
+    (version "5.87.0")
     (source
      (origin
        (method url-fetch)
@@ -3954,7 +3900,7 @@ KParts instead.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "12b527l12rcf421p613ydbacilp9v9iy90ma35w21sdf9a15k675"))))
+        (base32 "1nnyl67b43064y5gvj7ccvzz5481vbaycjhxxzgf4iaj0qm2vpfh"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
diff --git a/gnu/packages/patches/extra-cmake-modules-reproducible-tarballs.patch b/gnu/packages/patches/extra-cmake-modules-reproducible-tarballs.patch
new file mode 100644
index 0000000000..3c3977b683
--- /dev/null
+++ b/gnu/packages/patches/extra-cmake-modules-reproducible-tarballs.patch
@@ -0,0 +1,19 @@
+Fixes 2 non-reproducibility bugs:
+1: root GID in guix can changed, and is embedded in the tarball. this sets it to 0
+2: mtime of some directories set to current time. This sets it to 0 SOURCE_DATE_EPOCH
+
+--- a/kde-modules/KDEPackageAppTemplates.cmake
++++ b/kde-modules/KDEPackageAppTemplates.cmake
+@@ -117,8 +117,8 @@ function(kde_package_app_templates)
+             # Make tar archive reproducible, the arguments are only available with GNU tar
+             add_custom_command(OUTPUT ${_template}
+                 COMMAND ${_tar_executable} ARGS -c
+-                   --exclude .kdev_ignore --exclude .svn --sort=name --mode=go=rX,u+rw,a-s --owner=root
+-                   --pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0,ctime:=0
+-                   --group=root --numeric-owner -j -v -f ${_template} .
++                   --exclude .kdev_ignore --exclude .svn --sort=name --mode=go=rX,u+rw,a-s
++                   --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime
++                   --mtime="@${SOURCE_DATE_EPOCH}" --owner=0 --group=0 --numeric-owner -j -v -f ${_template} .
+                 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_templateName}
+                 DEPENDS ${_subdirs_entries}
+             )
diff --git a/gnu/packages/patches/kdbusaddons-kinit-file-name.patch b/gnu/packages/patches/kdbusaddons-kinit-file-name.patch
deleted file mode 100644
index ffed88e043..0000000000
--- a/gnu/packages/patches/kdbusaddons-kinit-file-name.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Add placeholder for kinit's store file name.
-
-diff --git a/src/kdeinitinterface.cpp b/src/kdeinitinterface.cpp
-index 22fa5e5..3d40937 100644
---- a/src/kdeinitinterface.cpp
-+++ b/src/kdeinitinterface.cpp
-@@ -52,7 +52,7 @@ void KDEInitInterface::ensureKdeinitRunning()
-     // If not found in system paths, search other paths
-     if (srv.isEmpty()) {
-         const QStringList searchPaths = QStringList()
--            << QCoreApplication::applicationDirPath() // then look where our application binary is located
-+            << QString::fromUtf8("@SUBSTITUTEME@/bin") // using QStringLiteral would be more efficient, but breaks guix store reference detection.
-             << QLibraryInfo::location(QLibraryInfo::BinariesPath); // look where exec path is (can be set in qt.conf)
-         srv = QStandardPaths::findExecutable(QStringLiteral("kdeinit5"), searchPaths);
-         if (srv.isEmpty()) {
diff --git a/gnu/packages/patches/kinit-kdeinit-extra_libs.patch b/gnu/packages/patches/kinit-kdeinit-extra_libs.patch
index 1271f3df7d..b27c6ed535 100644
--- a/gnu/packages/patches/kinit-kdeinit-extra_libs.patch
+++ b/gnu/packages/patches/kinit-kdeinit-extra_libs.patch
@@ -21,27 +21,6 @@ pkgs/development/libraries/kde-frameworks/kinit/kdeinit-extra_libs.patch
  #endif
  };
  #endif
-@@ -1533,20 +1531,6 @@ static int initXconnection()
- }
- #endif
- 
--#ifndef Q_OS_OSX
--// Find a shared lib in the lib dir, e.g. libkio.so.
--// Completely unrelated to plugins.
--static QString findSharedLib(const QString &lib)
--{
--    QString path = QFile::decodeName(CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/") + lib;
--    if (QFile::exists(path)) {
--        return path;
--    }
--    // We could also look in LD_LIBRARY_PATH, but really, who installs the main libs in different prefixes?
--    return QString();
--}
--#endif
--
- extern "C" {
-
- static void secondary_child_handler(int)
@@ -1673,7 +1673,7 @@
#if defined(Q_OS_UNIX) && !defined(Q_OS_OSX)
if (!d.suicide && qEnvironmentVariableIsEmpty("KDE_IS_PRELINKED")) {
Toggle diff (101 lines)
diff --git a/gnu/packages/patches/kinit-kdeinit-libpath.patch b/gnu/packages/patches/kinit-kdeinit-libpath.patch
index 6382e8804b..bf87f5011e 100644
--- a/gnu/packages/patches/kinit-kdeinit-libpath.patch
+++ b/gnu/packages/patches/kinit-kdeinit-libpath.patch
@@ -1,19 +1,18 @@
-Search libraries in GUIX_KF5INIT_LIB_PATH.
+Search libraries in KDEINIT5_LIBRARY_PATH.
 
 Based on an idea by NixOs
 pkgs/development/libraries/kde-frameworks/kinit/kinit-libpath.patch
 
 ===================================================================
---- kinit-5.32.0/src/kdeinit/kinit.cpp.orig	2017-10-22 21:02:20.908765455 +0200
-+++ kinit-5.32.0/src/kdeinit/kinit.cpp	2017-10-22 21:03:25.312818248 +0200
-@@ -623,20 +623,18 @@
-             if (libpath_relative) {
-                 // NB: Because Qt makes the actual dlopen() call, the
+diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp
+--- a/src/kdeinit/kinit.cpp
++++ b/src/kdeinit/kinit.cpp
+@@ -614,15 +614,12 @@ static pid_t launch(int argc, const char *_name, const char *args,
                  //     RUNPATH of kdeinit is *not* respected - see
                  //     https://sourceware.org/bugzilla/show_bug.cgi?id=13945
                  //     - so we try hacking it in ourselves
 -                QString install_lib_dir = QFile::decodeName(
--                        CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/");
+-                        CMAKE_INSTALL_PREFIX "/" KDE_INSTALL_LIBDIR "/");
 -                QString orig_libpath = libpath;
 -                libpath = install_lib_dir + libpath;
 -                l.setFileName(libpath);
@@ -21,17 +20,15 @@ pkgs/development/libraries/kde-frameworks/kinit/kinit-libpath.patch
 -                    libpath = orig_libpath;
 -                    l.setFileName(libpath);
 -                    l.load();
--                }
-+                // Try to load the library relative to the active profiles.
 +                QByteArrayList profiles = qgetenv("KDEINIT5_LIBRARY_PATH").split(':');
 +                for (const QByteArray &profile: profiles) {
 +                    if (!profile.isEmpty()) {
 +                        l.setFileName(QFile::decodeName(profile) + QStringLiteral("/") + libpath);
 +                        if (l.load()) break;
 +                    }
-+		}
+                 }
              } else {
                  l.load();
-             }
-             if (!l.isLoaded()) {
-                 QString ltdlError(l.errorString());
+-- 
+2.33.0
+
diff --git a/gnu/packages/patches/kio-search-smbd-on-PATH.patch b/gnu/packages/patches/kio-search-smbd-on-PATH.patch
index 55535ffa11..5118c9a361 100644
--- a/gnu/packages/patches/kio-search-smbd-on-PATH.patch
+++ b/gnu/packages/patches/kio-search-smbd-on-PATH.patch
@@ -1,30 +1,24 @@
-Adopted from NixOS
-pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
+From af54a2a37655df26a33bc6783cb472c38f65322f Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 28 Mar 2021 10:31:12 -0500
+Subject: [PATCH 1/2] Remove impure smbd search path
 
-===================================================================
---- kio-5.17.0.orig/src/core/ksambashare.cpp
-+++ kio-5.17.0/src/core/ksambashare.cpp
-@@ -67,13 +67,18 @@ KSambaSharePrivate::~KSambaSharePrivate(
- 
+---
+ src/core/ksambashare.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/ksambashare.cpp b/src/core/ksambashare.cpp
+index e810ce4..7cfb4e6 100644
+--- a/src/core/ksambashare.cpp
++++ b/src/core/ksambashare.cpp
+@@ -61,7 +61,7 @@ KSambaSharePrivate::~KSambaSharePrivate()
  bool KSambaSharePrivate::isSambaInstalled()
  {
--    if (QFile::exists(QStringLiteral("/usr/sbin/smbd"))
--            || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))) {
--        return true;
-+    const QByteArray pathEnv = qgetenv("PATH");
-+    if (!pathEnv.isEmpty()) {
-+        QLatin1Char pathSep(':');
-+        QStringList paths = QFile::decodeName(pathEnv).split(pathSep, QString::SkipEmptyParts);
-+        for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
-+            it->append(QStringLiteral("/smbd"));
-+            if (QFile::exists(*it)) {
-+                return true;
-+            }
-+        }
+     const bool daemonExists =
+-        !QStandardPaths::findExecutable(QStringLiteral("smbd"), {QStringLiteral("/usr/sbin/"), QStringLiteral("/usr/local/sbin/")}).isEmpty();
++        !QStandardPaths::findExecutable(QStringLiteral("smbd")).isEmpty();
+     if (!daemonExists) {
+         qCDebug(KIO_CORE_SAMBASHARE) << "KSambaShare: Could not find smbd";
      }
- 
--    //qDebug() << "Samba is not installed!";
--
- return false;
- }
-
+--
+2.30.1
Toggle diff (90 lines)
diff --git a/gnu/packages/patches/kpackage-allow-external-paths.patch b/gnu/packages/patches/kpackage-allow-external-paths.patch
index c1c9efde7f..fc5f5bbc02 100644
--- a/gnu/packages/patches/kpackage-allow-external-paths.patch
+++ b/gnu/packages/patches/kpackage-allow-external-paths.patch
@@ -1,13 +1,12 @@
 diff --git a/src/kpackage/package.cpp b/src/kpackage/package.cpp
-index 5aec9fd..b15c933 100644
 --- a/src/kpackage/package.cpp
 +++ b/src/kpackage/package.cpp
-@@ -820,7 +820,7 @@ PackagePrivate::PackagePrivate()
-     : QSharedData(),
-       fallbackPackage(nullptr),
-       metadata(nullptr),
--      externalPaths(false),
-+      externalPaths(true),
-       valid(false),
-       checkedValid(false)
+@@ -858,6 +858,6 @@ PackagePrivate::PackagePrivate()
+     : QSharedData()
+     , fallbackPackage(nullptr)
+     , metadata(nullptr)
+-    , externalPaths(false)
++    , externalPaths(true)
+     , valid(false)
+     , checkedValid(false)
  {
diff --git a/gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch b/gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch
deleted file mode 100644
index d677f19a70..0000000000
--- a/gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 668010ebc9fd84d9dc60f90b9a4ebf3c7054977f Mon Sep 17 00:00:00 2001
-From: Hartmut Goebel <h.goebel@crazy-compilers.com>
-Date: Sun, 25 Oct 2020 20:11:13 +0000
-Subject: [PATCH] Fix build errors if PREFIX is different from ECM's PREFIX.
-
-See <https://bugs.kde.org/424483> for details.
----
- KF5PackageMacros.cmake | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/KF5PackageMacros.cmake b/KF5PackageMacros.cmake
-index f4c1d1d..acd3798 100644
---- a/KF5PackageMacros.cmake
-+++ b/KF5PackageMacros.cmake
-@@ -1,6 +1,5 @@
- 
--find_package(ECM 1.6.0 CONFIG REQUIRED)
--include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake)
-+include(KDEInstallDirs)
- 
- set(KPACKAGE_RELATIVE_DATA_INSTALL_DIR "kpackage")
- 
--- 
-GitLab
-
diff --git a/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch b/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch
deleted file mode 100644
index bd55d512cf..0000000000
--- a/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ff5ed26f21d304e867ab57781878069567deb23d Mon Sep 17 00:00:00 2001
-From: Hartmut Goebel <h.goebel@crazy-compilers.com>
-Date: Mon, 3 Aug 2020 19:49:58 +0000
-Subject: [PATCH] Fix build errors if PREFIX is different from ECM's PREFIX.
-
-See <https://bugs.kde.org/424483> for details
----
- KF5PlasmaMacros.cmake | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/KF5PlasmaMacros.cmake b/KF5PlasmaMacros.cmake
-index 494b42d56..80b3fd8dd 100644
---- a/KF5PlasmaMacros.cmake
-+++ b/KF5PlasmaMacros.cmake
-@@ -1,6 +1,5 @@
- 
--find_package(ECM 1.6.0 CONFIG REQUIRED)
--include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake)
-+include(KDEInstallDirs)
- 
- set(PLASMA_RELATIVE_DATA_INSTALL_DIR "plasma")
- set(PLASMA_DATA_INSTALL_DIR "${KDE_INSTALL_DATADIR}/${PLASMA_RELATIVE_DATA_INSTALL_DIR}")
--- 
-GitLab
-
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 07/19] gnu: Add layer-shell-qt.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-8-mail@brendan.scot
* gnu/packages/kde-plasma.scm (layer-shell-qt): New variable.
---
gnu/packages/kde-plasma.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 96e7ec6907..eb463a498a 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -5,6 +5,7 @@
 ;;; 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 © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -136,6 +137,33 @@ directly, you need to tell @code{ssh-add} about it.  @code{ssh-add} will then
 call it if it is not associated to a terminal.")
     (license license:gpl2+)))
 
+(define-public layer-shell-qt
+  (package
+    (name "layer-shell-qt")
+    (version "5.22.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/layer-shell-qt-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0i9gsckqk9608drxvym6ghcwxqilcf6ilcxq48sbrnpswid71k7z"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libxkbcommon" ,libxkbcommon)
+       ("qtbase" ,qtbase-5)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtwayland" ,qtwayland)
+       ("wayland" ,wayland)
+       ("wayland-protocols" ,wayland-protocols)))
+    (home-page "https://invent.kde.org/plasma/layer-shell-qt")
+    (synopsis "Qt component for the Wayland ql-layer-shell protocol")
+    (description "Qt component for the Wayland ql-layer-shell protocol.")
+    (license license:gpl2+)))
+
 (define-public kscreenlocker
   (package
     (name "kscreenlocker")
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 08/19] gnu: KDE Plasma: Update to 5.22.5.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-9-mail@brendan.scot
(breeze, kdecoration, libkscreen, ksshaskpass, kscreenlocker,
libksysguard): Update to 5.22.5.

(kscreenlocker):[inputs]: Add layer-shell-qt.

(libksysguard):[origin]: Fix typo in URI that affecs refresh script.
[native-inputs]: Add qttools.
[inputs]: Add libnl, libcap, libpcap, qtwebengine, qtwebchannel.
[arguments]: Remove uneeeded configure flags hack.
Remove Uneeded CMakeLists.txt substitution.
Respect #:tests?.
---
gnu/packages/kde-plasma.scm | 56 +++++++++++++++++++------------------
1 file changed, 29 insertions(+), 27 deletions(-)

Toggle diff (186 lines)
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index eb463a498a..be25fb6afb 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -28,6 +28,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system qt)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
@@ -35,19 +36,20 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public breeze
   (package
     (name "breeze")
-    (version "5.19.5")
+    (version "5.22.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0dpk1w7zcafrzf46j060i1qb0fwqpsflkfzr6gcar81llmjnc4b1"))))
+                "09ll0bddsbbhz7ihqcn0wbd2llbjrblgk90gp556kpy09jh4rz73"))))
     (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:
@@ -87,14 +89,14 @@ the Plasma Desktop.  Breeze is the default theme for the KDE Plasma desktop.")
 (define-public kdecoration
   (package
     (name "kdecoration")
-    (version "5.19.5")
+    (version "5.22.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kdecoration-" version ".tar.xz"))
               (sha256
                (base32
-                "0pn8n7zyb0adzjnn92vmbcf7pmpss60k9k1rk5llamj016xzfgnf"))))
+                "1vqv44ls79x2d71ldkkkzpk4mzpv110y270wf1gbkmxaxwp20xxm"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -111,14 +113,14 @@ manager which re-parents a Client window to a window decoration frame.")
 (define-public ksshaskpass
   (package
     (name "ksshaskpass")
-    (version "5.19.5")
+    (version "5.22.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/ksshaskpass-" version ".tar.xz"))
               (sha256
                (base32
-                "1k2va2v9051f71w78dn3gihk642iyy5yzrkcfnp97fag8g6dpisi"))))
+                "0ig2cx80ba57k9mq7bcnmriymjln7kvr81mgm5rsdi4asal2zpgp"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -167,14 +169,14 @@ call it if it is not associated to a terminal.")
 (define-public kscreenlocker
   (package
     (name "kscreenlocker")
-    (version "5.19.5")
+    (version "5.22.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kscreenlocker-" version ".tar.xz"))
               (sha256
                (base32
-                "1fd5sqaqx9kj3kr0bgxpllhcm5arf8bc9pkpd9yk9c8xjy0j0fxi"))))
+                "107icbr0cdcpbzi5npgx3fw2m2wp1z91k1iw26n595dp3n2czv98"))))
     (build-system qt-build-system)
     (arguments
      `(#:tests? #f ;; TODO: make tests pass
@@ -192,7 +194,7 @@ call it if it is not associated to a terminal.")
              (if tests?
                  (begin
                    (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-                   (invoke "dbus-launch" "ctest" ".")))
+                   (invoke "dbus-launch" "ctest")))
              #t)))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -212,6 +214,7 @@ call it if it is not associated to a terminal.")
        ("kwayland" ,kwayland)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
+       ("layer-shell-qt" ,layer-shell-qt)
        ("libseccomp" ,libseccomp) ;for sandboxing the look'n'feel package
        ("libxcursor" ,libxcursor) ;missing in CMakeList.txt
        ("libxi" ,libxi)           ;XInput, required for grabbing XInput2 devices
@@ -232,14 +235,14 @@ call it if it is not associated to a terminal.")
 (define-public libkscreen
   (package
     (name "libkscreen")
-    (version "5.19.5")
+    (version "5.22.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/plasma/" version "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
+        (base32 "1qqnra28r698kbps6ywk22ncac4sm3f9d9wrwmicp963mkmwlksv"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -262,17 +265,18 @@ basic needs and easy to configure for those who want special setups.")
 (define-public libksysguard
   (package
     (name "libksysguard")
-    (version "5.19.5")
+    (version "5.22.5")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde//stable/plasma/" version
+       (uri (string-append "mirror://kde/stable/plasma/" version
                            "/libksysguard-" version ".tar.xz"))
        (sha256
-        (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
+        (base32 "1hkjsjfl4hsxbk998hpq4f38rahqfx6nmznbh0dqrymadfbsn8m5"))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
     (inputs
      `(("kconfigwidgets" ,kconfigwidgets)
        ("kiconthemes" ,kiconthemes)
@@ -288,30 +292,28 @@ basic needs and easy to configure for those who want special setups.")
        ("knewstuff" ,knewstuff)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kservice" ,kservice)
+       ("libnl" ,libnl)
+       ("libcap" ,libcap)
+       ("libpcap" ,libpcap)
        ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)
+       ("qtwebengine" ,qtwebengine)
+       ("qtwebchannel" ,qtwebchannel)
        ("qtwebkit" ,qtwebkit)
        ("qtx11extras" ,qtx11extras)
        ("plasma" ,plasma-framework)
        ("zlib" ,zlib)))
     (build-system qt-build-system)
     (arguments
-     `(#:configure-flags
-       `(,(string-append "-DKDE_INSTALL_DATADIR="
-                         (assoc-ref %outputs "out") "/share"))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'patch-cmakelists
-           (lambda _
-             ;; TODO: Verify: This should no longer be necessary, since
-             ;; KF5AuthConfig.cmake.in contains this already.
-             (substitute* "processcore/CMakeLists.txt"
-               (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              ;; TODO: Fix this failing test-case
-             (invoke "ctest" "-E" "processtest"))))))
+             (when tests?
+               (invoke "ctest" "-E" "processtest"))
+             #t)))))
     (home-page "https://userbase.kde.org/KSysGuard")
     (synopsis "Network enabled task and system monitoring")
     (description "KSysGuard can obtain information on system load and
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 09/19] gnu: libgravatar: Move to (gnu packages kde-pim).
(address . 50862@debbugs.gnu.org)
20211015093015.5834-10-mail@brendan.scot
Remove uneeded (gnu packages kde-internet) import.
* gnu/packages/kde-internet.scm: Move libgravatar ...
* gnu/packages/kde-pim.scm ...here
---
gnu/packages/kde-internet.scm | 32 --------------------------------
gnu/packages/kde-pim.scm | 34 +++++++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 33 deletions(-)

Toggle diff (104 lines)
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index 223e1aab7a..af0aba5b9a 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -426,38 +426,6 @@ multiple torrents at the same time and comes with extended features to make it
 a full-featured client for BitTorrent.")
     (license license:gpl2+)))
 
-(define-public libgravatar
-  (package
-    (name "libgravatar")
-    (version "20.04.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://kde/stable/release-service/" version
-                           "/src/libgravatar-" version ".tar.xz"))
-       (sha256
-        (base32 "0981ci2kr20v4fk11h57rqya0brgslfazpgq1yk5yqiwyqqm49r2"))))
-    (build-system qt-build-system)
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("kconfig" ,kconfig)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kpimcommon" ,kpimcommon)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)))
-    (arguments
-     `(#:tests? #f)) ;; 2/7 tests fail (due to network issues?)
-    (home-page "https://invent.kde.org/pim/libgravatar")
-    (synopsis "Online avatar lookup library")
-    (description "This library retrieves avatar images based on a
-hash from a person's email address, as well as local caching to avoid
-unnecessary network operations.")
-    (license ;; GPL for programs, LGPL for libraries
-     (list license:gpl2+ license:lgpl2.0+))))
-
 (define-public libktorrent
   (package
     (name "libktorrent")
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index 9930f20bb1..671286022d 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,7 +35,6 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
-  #:use-module (gnu packages kde-internet)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages search)
@@ -1682,6 +1682,38 @@ Virtual Contact File}) files to the KPeople contact management library.")
     (license ;; GPL for programs, LGPL for libraries
      (list license:gpl2+ license:lgpl2.0+))))
 
+(define-public libgravatar
+  (package
+    (name "libgravatar")
+    (version "20.04.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/libgravatar-" version ".tar.xz"))
+       (sha256
+        (base32 "0981ci2kr20v4fk11h57rqya0brgslfazpgq1yk5yqiwyqqm49r2"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kconfig" ,kconfig)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("kpimcommon" ,kpimcommon)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("qtbase" ,qtbase-5)))
+    (arguments
+     `(#:tests? #f)) ;; 2/7 tests fail (due to network issues?)
+    (home-page "https://invent.kde.org/pim/libgravatar")
+    (synopsis "Online avatar lookup library")
+    (description "This library retrieves avatar images based on a
+hash from a person's email address, as well as local caching to avoid
+unnecessary network operations.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
 (define-public kpimtextedit
   (package
     (name "kpimtextedit")
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 10/19] gnu: KDE PIM: Update to 21.08.2.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-11-mail@brendan.scot
* gnu/packages/kde-pim.scm

(akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
akonadi-search kincidenceeditor kaddressbook kalarmcal
kcalendarsupport kcalutils kdepim-runtime keventviews kgpg
kidentitymanagement kimap kldap kleopatra kmail kmailcommon
kmailimporter kmailtransport kmbox kmessagelib kmime knotes
kontactinterface korganizer libgravatar kpimcommon kpimtextedit ksmtp
ktnef libkdepim libkgapi libkleo libksieve): Update to 21.08.2

(akonadi): [arguments]: Don't use %outputs and %build-inputs.
(akonadi-calendar): [inputs]: Add grantleetheme.
[home-page]: Lint URL.

(akonadi-contacts): [inputs]: Add grantlee, grantleetheme, kcmutils, libkleo

(kincidenceeditor): [native-inputs]: Add dbus for tests.
[inputs]: Add grantleetheme, kimap. Replace obsolete kdepim-apps-libs
with kpimcommon.
[arguments]: launch dbus, and disable failing tests.

(kalarmcal): [home-page]: Lint URL.
(kblog): [home-page]: Lint URL.
(kcalendarsupport): [inputs]: Remove kdepim-apps-libs.
[home-page]: Lint URL.

(kcalcutils): [home-page]: Lint URL.
[inputs]: Replace oxygen-icons with breeze-icons as default.
(kdepim-apps-libs): Delete variable.

(kdepim-runtime): [inputs]: Add grantleetheme, kcmutils, kldap,
libkdepim, qtkeychain
[arguments]: Enable all tests that pass. Use dbus-launch. Revert to old
include path hack since it doesn't work with search-input-directory. Not
sure why.

(kgpg): [inputs]: Add grantleetheme.
[arguments]: Disable failing tests.
[inputs]: Replace oxygen-icons with breeze-icons as default.
[home-page]: Lint URL.

(kimap): [home-page]: Lint URL.

(kldap): [inputs]: Add qtkeychain.
[home-page]: Lint URL.
[description]: Lint.

(kleopatra): [inputs]: Replace oxygen-icons with breeze-icons as default.
[home-page]: Lint URL.

(kmail): [origin]: Remove patch. Doesn't appear to be needed anymore?
[inputs]: Add grantleetheme, kuserfeedback, qtchain. Remove
kdepim-apps-lib, duplicate kmime entry. Replace oxygen-icons with
breeze-icons as default.
[arguments]: Unfortunately a few tests fail. Disable them for now.

(kmailcommon)[arguments]: Enable all tests that pass. Use dbus-launch.

(kmailimporter): [inputs]: Add adonadi-contacts, grantleetheme,
kcontacts, kimap, kpimcommon.

(kmailtransport): [home-page]: Lint URL.
[inputs]: Add qtkeychain.

(kmbox): [home-page]: Lint URL.

(kmessagelib)[inputs]: Remove kdepim-apps-lib. Add kguiaddons

[arguments]: Now QPrinter fails to be found instead. Revert to old
CPLUS_INCLUDE_PATH fix since it doesn't work otherwise for some unknown
reason.

(kmime): [home-page]: Lint URL.

(knotes) [inputs]: Remove kmime. Replace oxygen-icons with breeze-icons
as default.

(kontactinterface): [home-page]: Lint URL.

(korganizer): [inputs]: Add grantleetheme. Remove obsolete
kdepim-apps-libs. Replace oxygen-icons with breeze-icons as default.
[synopsis]: Lint.

(kpimcommon): [inputs]: Add akonadi-search, grantleetheme, kcalendarcore,
kcmutils, kldap. Remove grantlee.

(kpimtextedit): [home-page]: Lint URL.
(ktnef): [home-page]: Lint URL.

(libkleo): [inputs]: Remove gpgme.
[arguments]: Disable failing tests for now.

(libksieve): [phases]: Enable a tests that works now.
[phases]: Enable a tests that works now.

* gnu/packages/patches/kmail-Fix-missing-link-libraries.patch: Delete file.
* gnu/packages/patches/libksieve-Fix-missing-link-libraries.patch: Fix
patch using Upstream suggestion in https://phabricator.kde.org/D26818
* gnu/packages/patches/akonadi-not-relocatable.patch: Import updated
patch from Nix.
* gnu/packages/patches/akonadi-paths.patch: Fix.
* gnu/packages/patches/akonadi-timestamps.patch: Fix.
* gnu/local.mk: Remove reference to kmail patch.
---
gnu/local.mk | 1 -
gnu/packages/kde-pim.scm | 414 ++++++++++--------
.../patches/akonadi-not-relocatable.patch | 51 +--
gnu/packages/patches/akonadi-paths.patch | 30 +-
gnu/packages/patches/akonadi-timestamps.patch | 6 +-
.../kmail-Fix-missing-link-libraries.patch | 41 --
...libksieve-Fix-missing-link-libraries.patch | 76 +---
7 files changed, 284 insertions(+), 335 deletions(-)
delete mode 100644 gnu/packages/patches/kmail-Fix-missing-link-libraries.patch

Toggle diff (1600 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 3c6b4cf4d6..10b97c8bc3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1323,7 +1323,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/kinit-kdeinit-extra_libs.patch		\
   %D%/packages/patches/kinit-kdeinit-libpath.patch		\
   %D%/packages/patches/kio-search-smbd-on-PATH.patch		\
-  %D%/packages/patches/kmail-Fix-missing-link-libraries.patch \
   %D%/packages/patches/kmod-module-directory.patch		\
   %D%/packages/patches/kmscon-runtime-keymap-switch.patch	\
   %D%/packages/patches/kpackage-allow-external-paths.patch	\
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index 671286022d..c65dcf714f 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -44,14 +44,14 @@
 (define-public akonadi
   (package
     (name "akonadi")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-" version ".tar.xz"))
        (sha256
-        (base32 "0kkn7lh3akkk9cdi8qdk9kqzs1cgv916mkl440x4ykqd1v8brzqb"))
+        (base32 "0jwhjdqha82hbyg2wmzjl5qi2rgmyd2sghdw85s77y63bxm9f0s2"))
        (patches (search-patches
                  "akonadi-paths.patch"
                  "akonadi-timestamps.patch"
@@ -90,10 +90,10 @@
        #:phases
        (modify-phases (@ (guix build qt-build-system) %standard-phases)
          (add-before 'configure 'add-definitions
-           (lambda _
-             (let ((out (assoc-ref %outputs "out"))
-                   (mysql (assoc-ref %build-inputs "mysql"))
-                   (pgsql (assoc-ref %build-inputs "postgresql")))
+           (lambda* (#:key outputs build-inputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (mysql (assoc-ref build-inputs "mysql"))
+                   (pgsql (assoc-ref build-inputs "postgresql")))
                (with-output-to-file "CMakeLists.txt.new"
                  (lambda _
                    (display
@@ -121,14 +121,14 @@ programs.")
 (define-public akonadi-calendar
   (package
     (name "akonadi-calendar")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-calendar-" version ".tar.xz"))
        (sha256
-        (base32 "1mq76qyd3jcngb2yfanpn7qvklzllza399fxwii0mqppp1vmnb2b"))))
+        (base32 "0k4cbcr6cw9rcrzidlbjbpshmsfh0p2m8bd9inkgzxi08drwizsa"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -137,6 +137,7 @@ programs.")
        ("akonadi-contacts" ,akonadi-contacts)
        ("akonadi-mime" ,akonadi-mime)
        ("boost" ,boost)
+       ("grantleetheme" ,grantleetheme)
        ("kcalendarcore" ,kcalendarcore)
        ("kcalutils" ,kcalutils)
        ("kcodecs" ,kcodecs)
@@ -155,7 +156,7 @@ programs.")
        ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f))  ;; TODO: 1/1 test fails
-    (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
+    (home-page "https://api.kde.org/kdepim/akonadi/html/")
     (synopsis "Library providing calendar helpers for Akonadi items")
     (description "This library manages calendar specific actions for
 collection and item views.")
@@ -164,21 +165,24 @@ collection and item views.")
 (define-public akonadi-contacts
   (package
     (name "akonadi-contacts")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-contacts-" version ".tar.xz"))
        (sha256
-        (base32 "0igggarnl99s5pl73dgrpha4lf7vnr000iy69vcwmqs5lxb7cyli"))))
+        (base32 "1ap2c16c0z4m7f3zsp5w5wqwcdr3fn1n2kvb6d647c3knszgibvg"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("akonadi" ,akonadi)
        ("boost" ,boost)
+       ("grantlee" ,grantlee)
+       ("grantleetheme" ,grantleetheme)
        ("kauth" ,kauth)
+       ("kcmutils" ,kcmutils)
        ("kcodecs" ,kcodecs)
        ("kcompletion" ,kcompletion)
        ("kconfigwidgets" ,kconfigwidgets)
@@ -195,6 +199,7 @@ collection and item views.")
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
+       ("libkleo" ,libkleo)
        ("prison" ,prison)
        ("kio" ,kio)
        ("qtbase" ,qtbase-5)
@@ -215,14 +220,14 @@ to list and filter contacts.")
 (define-public akonadi-mime
   (package
     (name "akonadi-mime")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-mime-" version ".tar.xz"))
        (sha256
-        (base32 "1wd776ia3z22a79biq04y4m83n8xpvfmyg8bcsslr7lmc3avdg8w"))))
+        (base32 "0fkv26zl92xijkibpxvbqcmip24qrq58lan3w9s642gqh972a6x3"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -268,14 +273,14 @@ with emails through Akonadi easier.")
 (define-public akonadi-notes
   (package
     (name "akonadi-notes")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-notes-" version ".tar.xz"))
        (sha256
-        (base32 "04y293kjrmjjcbb7fkjl7hl4vrks4cjjxnvc6ibzyv81rn6cdhh2"))))
+        (base32 "0r19g9a0asqlw1qsh9vidbwpgbslfwqc8g577hdkhahfvg7hplmq"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -297,14 +302,14 @@ wrapping notes into KMime::Message objects.")
 (define-public akonadi-search
   (package
     (name "akonadi-search")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akonadi-search-" version ".tar.xz"))
        (sha256
-        (base32 "1h5p44y244gzf7ndzw7afrvq9c76ybp8ddvg82p3lzjh02rrvd50"))))
+        (base32 "1a1pf9q93z0cv7v2fxksiw3vn5dylg0lgniv98z9p6zv0wijxhn5"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -353,46 +358,58 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
 (define-public kincidenceeditor
   (package
     (name "kincidenceeditor")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/incidenceeditor-" version ".tar.xz"))
        (sha256
-        (base32 "1xpp5lw60mvpjsjsxmicfa5y2d68wnb9vm4yb1krwkihm852ziny"))))
+        (base32 "0xrz3kzf4mc37zgfbjgc23l7wxry9m6d5igvyf1qm33yxwr4w78q"))))
     (properties `((upstream-name . "incidenceeditor")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("dbus" ,dbus)))
     (inputs
      `(("akonadi" ,akonadi)
        ("akonadi-calendar" ,akonadi-calendar)
        ("akonadi-contacts" ,akonadi-contacts)
        ("akonadi-mime" ,akonadi-mime)
        ("boost" ,boost)
+       ("grantleetheme" ,grantleetheme)
        ("kcalendarcore" ,kcalendarcore)
        ("kcalendarsupport" ,kcalendarsupport)
        ("kcalutils" ,kcalutils)
        ("kcodecs" ,kcodecs)
        ("kcontacts" ,kcontacts)
        ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
        ("kdiagram" ,kdiagram)
        ("keventviews" ,keventviews)
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
        ("kidentitymanagement" ,kidentitymanagement)
+       ("kimap" ,kimap)
        ("kio" ,kio)
        ("kitemmodels" ,kitemmodels)
        ("kldap" ,kldap)
        ("kmailtransport" ,kmailtransport)
        ("kmime" ,kmime)
+       ("kpimcommon" ,kpimcommon)
        ("kpimtextedit" ,kpimtextedit)
        ("ktextwidgets" ,ktextwidgets)
        ("kwallat" ,kwallet)
        ("libkdepim" ,libkdepim)
        ("qtbase" ,qtbase-5)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "dbus-launch" "ctest" ;; FIXME: test fails.
+                       "-E" "akonadi-sqlite-incidencedatetimetest"))
+             #t)))))
     (home-page "https://invent.kde.org/pim/incidenceeditor")
     (synopsis "KDE PIM library for editing incidences")
     (description "This library provides an incidence editor for KDE PIM.")
@@ -402,14 +419,14 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
 (define-public kaddressbook
   (package
     (name "kaddressbook")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kaddressbook-" version ".tar.xz"))
        (sha256
-        (base32 "1vpdhdj87ai2sxjn2jk3mh6bzfr1n3yzydnkgv7nc8v1m2fdawap"))))
+        (base32 "1pvd31zpam13jv0mhxzaagdlvnav60znd68l24y1dw5i98wk7n72"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -428,7 +445,6 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
        ("kcontacts" ,kcontacts)
        ("kcrash" ,kcrash)
        ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
        ("kdoctools" ,kdoctools)
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
@@ -444,7 +460,7 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
        ("libkleo" ,libkleo)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
+       ("breeze-icons" ,breeze-icons) ; default icon set, required for tests
        ("prison" ,prison)
        ("qgpgme" ,qgpgme)
        ("qtbase" ,qtbase-5)))
@@ -459,14 +475,14 @@ CalDAV server.")
 (define-public kalarmcal
   (package
     (name "kalarmcal")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kalarmcal-" version ".tar.xz"))
        (sha256
-        (base32 "0g0bm4zzzcpl2pqqf609349zagwrgj6a4ibxpgg4zf21aacdq8bi"))))
+        (base32 "0xdcazbbkm2z0r2g1avwh9bvdkvv0fy6qhhddlmfzj4cwh4c9vih"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -491,7 +507,7 @@ CalDAV server.")
        ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f)) ;; TODO: TZ setup
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://github.com/KDE/kalarmcal")
     (synopsis "Library for handling kalarm calendar data")
     (description "This library provides access to and handling of kalarm
 calendar data.")
@@ -520,7 +536,7 @@ calendar data.")
        ("qtbase" ,qtbase-5)
        ("syndication" ,syndication)))
     ;; Note: Some tests take up to 90 sec.
-    (home-page "https://invent.kde.org/pim/kblog")
+    (home-page "https://apps.kde.org/kblog/")
     (synopsis "Client-side support library for web application remote blogging
 APIs")
     (description "KBlog is a library for calling functions on Blogger 1.0,
@@ -534,14 +550,14 @@ one of the APIs mentioned above.")
 (define-public kcalendarsupport
   (package
     (name "kcalendarsupport")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/calendarsupport-" version ".tar.xz"))
        (sha256
-        (base32 "1yv3hs7qw481cxw4kzbx5l8vv18bgzm1b0vj3zrlqqxwl5ac6xvy"))))
+        (base32 "01plq4qzp94lxcc2gp04afnlvmni8993c8mf6kl256158z0y24ik"))))
     (properties `((upstream-name . "calendarsupport")))
     (build-system qt-build-system)
     (native-inputs
@@ -551,12 +567,12 @@ one of the APIs mentioned above.")
      `(("akonadi" ,akonadi)
        ("akonadi-calendar" ,akonadi-calendar)
        ("akonadi-mime" ,akonadi-mime)
+       ("akonadi-notes" ,akonadi-notes)
        ("boost" ,boost)
        ("kcalendarcore" ,kcalendarcore)
        ("kcalutils" ,kcalutils)
        ("kcompletion" ,kcompletion)
        ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
        ("kguiaddons" ,kguiaddons)
        ("kholidays" ,kholidays)
        ("ki18n" ,ki18n)
@@ -570,7 +586,7 @@ one of the APIs mentioned above.")
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://api.kde.org/stable/calendarsupport/")
+    (home-page "https://github.com/KDE/calendarsupport")
     (synopsis "Calendar Support library for KDE PIM")
     (description "The Calendar Support library provides helper utilities for
 calendaring applications.")
@@ -580,14 +596,14 @@ calendaring applications.")
 (define-public kcalutils
   (package
     (name "kcalutils")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kcalutils-" version ".tar.xz"))
        (sha256
-        (base32 "0v268w8vhgqxq1nwv9b9cy4h7zqgjrv19r44g3zc9w5j76ivix86"))))
+        (base32 "0kvfpsz6zxdbgl4qvk3q55fjgjql1chx844cys26anhza0ld9afz"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -605,72 +621,28 @@ calendaring applications.")
        ("kpimtextedit" ,kpimtextedit)
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
+       ("breeze-icons" ,breeze-icons) ; default icon set, required for tests
        ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f)) ;; TODO: seem to pull in some wrong theme
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://github.com/KDE/kcalutils")
     (synopsis "Library with utility functions for the handling of calendar
 data")
     (description "This library provides a utility and user interface
 functions for accessing calendar data using the kcalcore API.")
     (license  license:lgpl2.0+)))
 
-(define-public kdepim-apps-libs
-  (package
-    (name "kdepim-apps-libs")
-    (version "20.04.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://kde/stable/release-service/" version
-                           "/src/kdepim-apps-libs-" version ".tar.xz"))
-       (sha256
-        (base32 "0m9qrfjs97anh9h6ibggx23ddlm1zkxjap2iyf3gf672ip01fvci"))))
-    (build-system qt-build-system)
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("grantlee" ,grantlee)
-       ("grantleetheme" ,grantleetheme)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("kpimcommon" ,kpimcommon)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("libkleo" ,libkleo)
-       ("prison" ,prison)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)))
-    (home-page "https://invent.kde.org/pim/kdepim-apps-libs")
-    (synopsis "KDE PIM mail related libraries and data files")
-    (description "This package provides mail related libraries and data files
-for KDE PIM.")
-    (license ;; GPL for programs, LGPL for libraries
-     (list license:gpl2+ license:lgpl2.0+))))
-
 (define-public kdepim-runtime
   (package
     (name "kdepim-runtime")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kdepim-runtime-" version ".tar.xz"))
        (sha256
-        (base32 "1in4x4wvgclkni72cfkw9jx35d0qd0jmfwybm3ksx5qx5sbki9gg"))))
+        (base32 "0vzly768f2g0zhprl1970k16kza128izhrby2mm1wdskrmdrvflq"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -686,9 +658,11 @@ for KDE PIM.")
        ("akonadi-notes" ,akonadi-notes)
        ("boost" ,boost)
        ("cyrus-sasl" ,cyrus-sasl)
+       ("grantleetheme" ,grantleetheme)
        ("kalarmcal" ,kalarmcal)
        ("kcalendarcore" ,kcalendarcore)
        ("kcalutils" ,kcalutils)
+       ("kcmutils" ,kcmutils)
        ("kcodecs" ,kcodecs)
        ("kconfig" ,kconfig)
        ("kconfigwidgets" ,kconfigwidgets)
@@ -700,6 +674,7 @@ for KDE PIM.")
        ("kio" ,kio)
        ("kitemmodels" ,kitemmodels)
        ("kmailtransport" ,kmailtransport)
+       ("kldap" ,kldap)
        ("kmbox" ,kmbox)
        ("kmime" ,kmime)
        ("knotifications" ,knotifications)
@@ -711,29 +686,45 @@ for KDE PIM.")
        ("kwallet" ,kwallet)
        ("kwindowsystem" ,kwindowsystem)
        ("libkgapi" ,libkgapi)
-       ;; TODO: libkolab
+       ("libkdepim" ,libkdepim)
+       ;; TODO: libkolab, etebase
        ("qca" ,qca)
        ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
+       ("qtkeychain" ,qtkeychain)
        ("qtnetworkauth" ,qtnetworkauth)
        ("qtspeech" ,qtspeech)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)
        ("qtxmlpatterns" ,qtxmlpatterns)))
     (arguments
-      ;; TODO: 5/45 tests fail for quite different reasons, even with
-      ;; "offscreen" and dbus
-     `(#:tests? #f
-       #:phases (modify-phases %standard-phases
-                  (add-after 'set-paths 'extend-CPLUS_INCLUDE_PATH
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      ;; FIXME: <Akonadi/KMime/SpecialMailCollections> is not
-                      ;; found during one of the compilation steps without
-                      ;; this hack.
-                      (setenv "CPLUS_INCLUDE_PATH"
-                              (string-append
-                               (search-input-directory inputs "include/KF5")
-                               ":" (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'set-paths 'extend-CPLUS_INCLUDE_PATH
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; FIXME: <Akonadi/KMime/SpecialMailCollections> is not
+             ;; found during one of the compilation steps without
+             ;; this hack.
+             (setenv "CPLUS_INCLUDE_PATH"
+                     (string-append (assoc-ref inputs "akonadi-mime")
+                                    "/include/KF5:"
+                                    (or (getenv "CPLUS_INCLUDE_PATH") "")))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; FIXME: Atleast some appear to require network.
+               (invoke "dbus-launch" "ctest" "-E"
+                       "(akonadi-sqlite-synctest|\
+akonadi-sqlite-pop3test|\
+storecompacttest|\
+akonadi-sqlite-ewstest|\
+ewsmoveitemrequest_ut|\
+ewsdeleteitemrequest_ut|\
+ewsgetitemrequest_ut|\
+ewsunsubscriberequest_ut|\
+ewssettings_ut)"))
+             #t)))))
     (home-page "https://invent.kde.org/pim/kdepim-runtime")
     (synopsis "Runtime components for Akonadi KDE")
     (description "This package contains Akonadi agents written using KDE
@@ -748,14 +739,14 @@ package.")
 (define-public keventviews
   (package
     (name "keventviews")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/eventviews-" version ".tar.xz"))
        (sha256
-        (base32 "0si9p95rgp7mgkzhzwyy10zrwzy1kipbhm1y96yjlc9rxi3jrc73"))))
+        (base32 "0d1ahknazkjav9641i1wggj9f67cr3s3y176v1j6ljhr4dl3m3xj"))))
     (properties `((upstream-name . "eventviews")))
     (build-system qt-build-system)
     (native-inputs
@@ -798,14 +789,14 @@ package.")
 (define-public kgpg
   (package
     (name "kgpg")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kgpg-" version ".tar.xz"))
        (sha256
-        (base32 "03d3gsbara7ga2cyrhafkw11qq9cj804h9vpvxl4wd2a9c90snkh"))))
+        (base32 "051z9h12zqmhgvr8pk17vsfzld25mpklk1z6nknlf3hydjnq6ns1"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -816,6 +807,7 @@ package.")
        ("akonadi-contacts" ,akonadi-contacts)
        ("boost" ,boost)
        ("gpgme" ,gpgme)
+       ("grantleetheme" ,grantleetheme)
        ("karchive" ,karchive)
        ("kcodecs" ,kcodecs)
        ("kcontacts" ,kcontacts)
@@ -833,9 +825,18 @@ package.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("breeze-icons" ,breeze-icons) ;; default icon set
        ("qtbase" ,qtbase-5)))
-    (home-page "https://kde.org/applications/utilities/org.kde.kgpg")
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; Test fails inconsistently
+               ;; https://bugs.kde.org/show_bug.cgi?id=442886
+               (invoke "ctest" "-E" "(kgpg-import|kgpg-encrypt)"))
+             #t)))))
+    (home-page "https://apps.kde.org/kgpg/")
     (synopsis "Graphical front end for GNU Privacy Guard")
     (description "Kgpg manages cryptographic keys for the GNU Privacy Guard,
 and can encrypt, decrypt, sign, and verify files.  It features a simple editor
@@ -846,14 +847,14 @@ cryptography to the contents of the clipboard.")
 (define-public kidentitymanagement
   (package
     (name "kidentitymanagement")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kidentitymanagement-" version ".tar.xz"))
        (sha256
-        (base32 "0flp9p9hlr1zfgvsy5i1nq55p7bvnhqxkxbif1lyw0cq6iblxhgr"))))
+        (base32 "0kaws0w21sm0mb0fd5av7gid8gvyz0zxxjrbx0kf3c52dwkrmw5c"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -885,14 +886,14 @@ cryptography to the contents of the clipboard.")
 (define-public kimap
   (package
     (name "kimap")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kimap-" version ".tar.xz"))
        (sha256
-        (base32 "1x22wfzqp92mn1fy2xl89k9yjfk2vgcva0fd30i9rrqj4aw2rsma"))))
+        (base32 "0qdl94zqk0qvy5mcnbhskh7dskcx8g1bkv4qv8zjjj9rz1r2rm2x"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -903,7 +904,7 @@ cryptography to the contents of the clipboard.")
        ("kio" ,kio)
        ("kmime" ,kmime)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://api.kde.org/kdepim/kimap/html/index.html")
     (synopsis "Library for handling IMAP")
     (description "This library provides a job-based API for interacting with
 an IMAP4rev1 server.  It manages connections, encryption and parameter quoting
@@ -916,14 +917,14 @@ easier to do so.")
 (define-public kldap
   (package
     (name "kldap")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kldap-" version ".tar.xz"))
        (sha256
-        (base32 "0whlp586ycsx0qf0nr81avwscpq62w5js46z7vayy0dxkhrhfayr"))))
+        (base32 "1vc94n9wq1422bp9ky2sapy8wra0gi5gfl6dz0h8wxnxflb28zvw"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -932,28 +933,29 @@ easier to do so.")
      `(("ki18n" ,ki18n)
        ("kio" ,kio)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)))
+       ("qtbase" ,qtbase-5)
+       ("qtkeychain" ,qtkeychain)))
     (propagated-inputs
      `(("cyrus-sasl" ,cyrus-sasl)
        ("openldap" ,openldap)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://api.kde.org/kdepim/kldap/html/")
     (synopsis "Library for accessing LDAP")
-    (description " This is a library for accessing LDAP with a convenient Qt
+    (description "This is a library for accessing LDAP with a convenient Qt
 style C++ API.  LDAP (Lightweight Directory Access Protocol) is an application
-protocol for querying and modifying directory services running over TCP/IP. ")
+protocol for querying and modifying directory services running over TCP/IP.")
     (license license:lgpl2.0+)))
 
 (define-public kleopatra
   (package
     (name "kleopatra")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kleopatra-" version ".tar.xz"))
        (sha256
-        (base32 "1m50nzb2m27fkb8z3k34cv4zi2akr0fx8zn7lk5swhg49sgrip6n"))))
+        (base32 "1ym40xxwl9qqz8sbsck606vzxys5qhkca8g23gqn3sxx3kk8zpn9"))))
     (build-system qt-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -981,7 +983,7 @@ protocol for querying and modifying directory services running over TCP/IP. ")
        ("kxmlgui" ,kxmlgui)
        ("libassuan" ,libassuan)
        ("libkleo" ,libkleo)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("breeze-icons" ,breeze-icons) ;; default icon set
        ("qgpgme" ,qgpgme)
        ("qtbase" ,qtbase-5)))
     (arguments
@@ -990,9 +992,9 @@ protocol for querying and modifying directory services running over TCP/IP. ")
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "dbus-launch" "ctest" "."))
+               (invoke "dbus-launch" "ctest"))
              #t)))))
-    (home-page "https://kde.org/applications/utilities/org.kde.kleopatra")
+    (home-page "https://apps.kde.org/kleopatra/")
     (synopsis "Certificate Manager and Unified Crypto GUI")
     (description "Kleopatra is a certificate manager and a universal crypto
 GUI.  It supports managing X.509 and OpenPGP certificates in the GpgSM keybox
@@ -1003,15 +1005,14 @@ and retrieving certificates from LDAP servers.")
 (define-public kmail
   (package
     (name "kmail")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmail-" version ".tar.xz"))
        (sha256
-        (base32 "06qfxzi5pasm6p5ck44sjca96dz8xzd1nndq5lqcyvcxmmnvvz3p"))
-       (patches (search-patches "kmail-Fix-missing-link-libraries.patch"))))
+        (base32 "0way147xqjhapswdfqnnvav8dk41lf2050jzmd6jz7qj0dina977"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1025,6 +1026,7 @@ and retrieving certificates from LDAP servers.")
        ("boost" ,boost)
        ("gpgme" ,gpgme)
        ("kbookmarks" ,kbookmarks)
+       ("grantleetheme" ,grantleetheme)
        ("kcalendarcore" ,kcalendarcore)
        ("kcalutils" ,kcalutils)
        ("kcmutils" ,kcmutils)
@@ -1034,7 +1036,6 @@ and retrieving certificates from LDAP servers.")
        ("kcontacts" ,kcontacts)
        ("kcrash" ,kcrash)
        ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
        ("kguiaddons" ,kguiaddons)
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
@@ -1049,7 +1050,6 @@ and retrieving certificates from LDAP servers.")
        ("kmailtransport" ,kmailtransport)
        ("kmessagelib" ,kmessagelib)
        ("kmime" ,kmime)
-       ("kmime" ,kmime)
        ("knotifications" ,knotifications)
        ("knotifyconfig" ,knotifyconfig)
        ("kontactinterface" ,kontactinterface)
@@ -1059,6 +1059,7 @@ and retrieving certificates from LDAP servers.")
        ("kservice" ,kservice)
        ("ksyntaxhighlighting" ,ksyntaxhighlighting)
        ("ktextwidgets" ,ktextwidgets)
+       ("kuserfeedback" ,kuserfeedback)
        ("ktnef" ,ktnef)
        ("kwallet" ,kwallet)
        ("kwidgetsaddons" ,kwidgetsaddons)
@@ -1068,10 +1069,11 @@ and retrieving certificates from LDAP servers.")
        ("libkdepim" ,libkdepim)
        ("libkleo" ,libkleo)
        ("libksieve" ,libksieve)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
+       ("breeze-icons" ,breeze-icons) ; default icon set, required for tests
        ("qgpgme" ,qgpgme)
        ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
+       ("qtkeychain" ,qtkeychain)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)
        ("sonnet" ,sonnet)))
@@ -1081,7 +1083,13 @@ and retrieving certificates from LDAP servers.")
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "dbus-launch" "ctest" "."))
+               (invoke "dbus-launch" "ctest" "-E" ;; FIXME: Many failing tests.
+                       "(akonadi-sqlite-kmcomposerwintest|\
+akonadi-sqlite-tagselectdialogtest|\
+akonadi-sqlite-kmcommandstest|\
+sendlateragent-sendlaterutiltest|\
+sendlateragent-sendlaterconfigtest|\
+followupreminder-followupreminderconfigtest)"))
              #t)))))
     (home-page "https://kontact.kde.org/components/kmail.html")
     (synopsis "Full featured graphical email client")
@@ -1098,14 +1106,14 @@ manager from KDE.")
 (define-public kmailcommon
   (package
     (name "kmailcommon")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/mailcommon-" version ".tar.xz"))
        (sha256
-        (base32 "0q1k57zx1l7bnzrk1hadjxjn6r4yzz833mgsvaai9sd8qg022x2l"))))
+        (base32 "0d0czxrf3i796pyrlifv4psq3hl4z2abhsqj1ns30xng45pzyrvz"))))
     (properties `((upstream-name . "mailcommon")))
     (build-system qt-build-system)
     (native-inputs
@@ -1119,6 +1127,7 @@ manager from KDE.")
        ("akonadi-mime" ,akonadi-mime)
        ("boost" ,boost)
        ("gpgme" ,gpgme)
+       ("grantleetheme" ,grantleetheme)
        ("karchive" ,karchive)
        ("kcodecs" ,kcodecs)
        ("kcompletion" ,kcompletion)
@@ -1127,6 +1136,7 @@ manager from KDE.")
        ("kcontacts" ,kcontacts)
        ("kdbusaddons" ,kdbusaddons)
        ("kdesignerplugin" ,kdesignerplugin)
+       ("kguiaddons" ,kguiaddons)
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
        ("kidentitymanagement" ,kidentitymanagement)
@@ -1154,7 +1164,15 @@ manager from KDE.")
        ("qgpgme" ,qgpgme)
        ("qtbase" ,qtbase-5)))
     (arguments
-     `(#:tests? #f))  ;; TODO: 4/56 tests fail, even with "offscreen" and dbus
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; FIXME: 2 Tests fail.
+               (invoke "dbus-launch" "ctest" "-E"
+                       "\(mailcommon-filter-filteractionencrypttest|\
+mailcommon-filter-filteractionpipethroughtest)"))
+             #t)))))
     (home-page "https://invent.kde.org/pim/mailcommon")
     (synopsis "KDE email utility library")
     (description "The mail common library provides utility functions for
@@ -1165,32 +1183,37 @@ dealing with email.")
 (define-public kmailimporter
   (package
     (name "kmailimporter")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/mailimporter-" version ".tar.xz"))
        (sha256
-        (base32 "1929pw0shdzi0yvjnqhak680hjjibg8f8hqy3svyxxhiqbhfjm26"))))
+        (base32 "0vd0bghszwr1wh4x2ygd7flg0kypb8m92gvh0q800gdgnqj87lw7"))))
     (properties `((upstream-name . "mailimporter")))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("akonadi" ,akonadi)
+       ("akonadi-contacts" ,akonadi-contacts)
        ("akonadi-mime" ,akonadi-mime)
+       ("grantleetheme" ,grantleetheme)
        ("boost" ,boost)
        ("karchive" ,karchive)
        ("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
        ("kconfigwidgets" ,kconfigwidgets)
+       ("kcontacts" ,kcontacts)
        ("kcoreaddons" ,kcoreaddons)
        ("kdbusaddons" ,kdbusaddons)
        ("ki18n" ,ki18n)
+       ("kimap" ,kimap)
        ("kio" ,kio)
        ("kitemmodels" ,kitemmodels)
        ("kmime" ,kmime)
+       ("kpimcommon" ,kpimcommon)
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
        ("qtbase" ,qtbase-5)))
@@ -1204,14 +1227,14 @@ e-mail client programs into KMail and KDE PIM.")
 (define-public kmailtransport
   (package
     (name "kmailtransport")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmailtransport-" version ".tar.xz"))
        (sha256
-        (base32 "1swqlgzxzlqffm119sbhszy9lr93m8lzwygr0q4raa660b6yiavm"))))
+        (base32 "0q76wanhby9gb9c07z8gpkmdqn6rv82bh6fz182m7bdzkqh4rbxx"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1234,10 +1257,11 @@ e-mail client programs into KMail and KDE PIM.")
        ("ktextwidgets" ,ktextwidgets)
        ("kwallet" ,kwallet)
        ("libkgapi" ,libkgapi)
-       ("qtbase" ,qtbase-5)))
+       ("qtbase" ,qtbase-5)
+       ("qtkeychain" ,qtkeychain)))
     (arguments
      `(#:tests? #f)) ;; TODO - 3/3 tests fail, require drkonqi
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://api.kde.org/kdepim/kmailtransport/html/index.html")
     (synopsis "Mail transport service library")
     (description "This library provides an API and support code for managing
 mail transport.")
@@ -1246,14 +1270,14 @@ mail transport.")
 (define-public kmbox
   (package
     (name "kmbox")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmbox-" version ".tar.xz"))
        (sha256
-        (base32 "03cny38v4y1lmcrs6d34hbj9assqgf51rqryf5rdzkiaq79c1krc"))))
+        (base32 "055vx2cr9zqab887grjans5cassh2g86r1lcn64jb61sh1cvzj7y"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1261,7 +1285,7 @@ mail transport.")
      `(("kcodecs" ,kcodecs)
        ("kmime" ,kmime)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://api.kde.org/kdepim/kmbox/html/index.html")
     (synopsis "Library for handling mbox mailboxes")
     (description "This is a library for handling mailboxes in mbox format,
 using a Qt/KMime C++ API.")
@@ -1270,14 +1294,14 @@ using a Qt/KMime C++ API.")
 (define-public kmessagelib
   (package
     (name "kmessagelib")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/messagelib-" version ".tar.xz"))
        (sha256
-        (base32 "03vq4962bhps2j9c9i52majlbkmvg2gmr197igv8xamja1vs8hk1"))))
+        (base32 "0gsxik4ib72xhw948h257m17w4k49sa3ymbg87n0q8nd6gykxyhr"))))
     (properties `((upstream-name . "messagelib")))
     (build-system qt-build-system)
     (native-inputs
@@ -1302,7 +1326,7 @@ using a Qt/KMime C++ API.")
        ("kconfigwidgets" ,kconfigwidgets)
        ("kcontacts" ,kcontacts)
        ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
+       ("kguiaddons" ,kguiaddons)
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
        ("kidentitymanagement" ,kidentitymanagement)
@@ -1342,11 +1366,11 @@ using a Qt/KMime C++ API.")
                   (add-after 'set-paths 'extend-CPLUS_INCLUDE_PATH
                     (lambda* (#:key inputs #:allow-other-keys)
                       ;; FIXME: One of the compilation steps fail to find
-                      ;; <Libkdepim/MultiplyingLine> without this hack.
+                      ;; <QPrinter> without this hack.
                       (setenv "CPLUS_INCLUDE_PATH"
-                              (string-append
-                               (search-input-directory inputs "include/KF5")
-                               ":" (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
+                              (string-append (assoc-ref inputs "qtbase")
+                                             "/include/qt5/QtPrintSupport:"
+                                             (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
     (home-page "https://invent.kde.org/pim/messagelib")
     (synopsis "KDE PIM messaging libraries")
     (description "This package provides several libraries for messages,
@@ -1358,14 +1382,14 @@ kwebengineviewer.")
 (define-public kmime
   (package
     (name "kmime")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kmime-" version ".tar.xz"))
        (sha256
-        (base32 "1dkdxfr1ry10qyql5sp1ai4li11f0ncf9hipg27j59y70mlyrl2r"))))
+        (base32 "1dg0vm576gqvj7ia80zcdyf9cyg3fzvj7j3fkxx79mw17binlzg4"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1384,7 +1408,7 @@ kwebengineviewer.")
                (("(Today|Yesterday) 12:34:56" line day)
                 (string-append day " 12:34 PM")))
              #t)))))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://api.kde.org/kdepim/kmime/html/")
     (synopsis "Library for handling MIME data")
     (description "This library provides an API for handling MIME
 data.  MIME (Multipurpose Internet Mail Extensions) is an Internet Standard
@@ -1396,14 +1420,14 @@ information in non-ASCII character sets.")
 (define-public knotes
   (package
     (name "knotes")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/knotes-" version ".tar.xz"))
        (sha256
-        (base32 "13h4n7fb5p6g1f5kmw6pblpd76j904psm30s3a5d3kykni57dijx"))))
+        (base32 "1g3rmkpwbicga09qwhxn47rhiv9rfaacpzapsrhddh63831bl999"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1434,7 +1458,6 @@ information in non-ASCII character sets.")
        ("kitemmodels" ,kitemmodels)
        ("kitemviews" ,kitemviews)
        ("kmime" ,kmime)
-       ("kmime" ,kmime)
        ("knewstuff" ,knewstuff)
        ("knotifications" ,knotifications)
        ("knotifyconfig" ,knotifyconfig)
@@ -1448,7 +1471,7 @@ information in non-ASCII character sets.")
        ("kxmlgui" ,kxmlgui)
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
+       ("breeze-icons" ,breeze-icons) ; default icon set, required for tests
        ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://kontact.kde.org/components/knotes.html")
@@ -1469,14 +1492,14 @@ Features:
 (define-public kontactinterface
   (package
     (name "kontactinterface")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kontactinterface-" version ".tar.xz"))
        (sha256
-        (base32 "0s1qm1wjkvbb1film94r7g88d8vgh26bm0hm6gpyqv5bazw5qx3j"))))
+        (base32 "0wavclk0z55z8xmqiq6wjhlf2byiggmj9fr5kwdk8wsjfj30npwg"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1488,23 +1511,23 @@ Features:
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://api.kde.org/kdepim/kontactinterface/html/")
     (synopsis "Kontact interface library")
-    (description " This library provides the glue necessary for
+    (description "This library provides the glue necessary for
 application \"Parts\" to be embedded as a Kontact component (or plugin).")
     (license license:lgpl2.0+)))
 
 (define-public korganizer
   (package
     (name "korganizer")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/korganizer-" version ".tar.xz"))
        (sha256
-        (base32 "04lz3ldrr0lpy9zpsg9ja1i9gxzlcjpqcwn3g7l4jjdky4frcr2r"))))
+        (base32 "0izrzg5xxqgz0wq0vkv1i1xcf0xnzgfwixy8f4gcvihpqxyvixb7"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1519,6 +1542,7 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
        ("akonadi-notes" ,akonadi-notes)
        ("akonadi-search" ,akonadi-search)
        ("boost" ,boost)
+       ("grantleetheme" ,grantleetheme)
        ("kcalendarcore" ,kcalendarcore)
        ("kcalendarsupport" ,kcalendarsupport)
        ("kcalutils" ,kcalutils)
@@ -1531,7 +1555,6 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
        ("kcoreaddons" ,kcoreaddons)
        ("kcrash" ,kcrash)
        ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
        ("keventviews" ,keventviews)
        ("kholidays" ,kholidays)
        ("kiconthemes" ,kiconthemes)
@@ -1556,7 +1579,7 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
+       ("breeze-icons" ,breeze-icons) ; default icon set, required for tests
        ("phonon" ,phonon)
        ("qtbase" ,qtbase-5)))
     (arguments
@@ -1574,11 +1597,11 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "dbus-launch" "ctest" "."))
+               (invoke "dbus-launch" "ctest"))
              #t)))))
     (home-page "https://kontact.kde.org/components/korganizer.html")
     (synopsis "Organizational assistant, providing calendars and other similar
-functionality to help you organize your life.")
+functionality to help you organize your life")
     (description "KOrganizer is the calendar and scheduling component of
 Kontact.  It provides management of events and tasks, alarm notification, web
 export, network transparent handling of data, group scheduling, import and
@@ -1625,14 +1648,14 @@ Virtual Contact File}) files to the KPeople contact management library.")
 (define-public kpimcommon
   (package
     (name "kpimcommon")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/pimcommon-" version ".tar.xz"))
        (sha256
-        (base32 "15lfqv5w4iwyjlvf4idykpkjgppl0ic59r4dw95qkbbjkps0nr7j"))))
+        (base32 "074pbxprzx8hd6fikjvx8hn9g9135swzhj1f5zvfvhyvlpyj90wg"))))
     (properties `((upstream-name . "pimcommon")))
     (build-system qt-build-system)
     (native-inputs
@@ -1643,9 +1666,12 @@ Virtual Contact File}) files to the KPeople contact management library.")
        ("akonadi" ,akonadi)
        ("akonadi-contacts" ,akonadi-contacts)
        ("akonadi-mime" ,akonadi-mime)
+       ("akonadi-search" ,akonadi-search)
        ("boost" ,boost)
-       ("grantlee" ,grantlee)
+       ("grantleetheme" ,grantleetheme)
        ;; TODO: ("kaccounts" ,kaccounts)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kcmutils" ,kcmutils)
        ("kcodecs" ,kcodecs)
        ("kconfig" ,kconfig)
        ("kconfigwidgets" ,kconfigwidgets)
@@ -1660,6 +1686,7 @@ Virtual Contact File}) files to the KPeople contact management library.")
        ("kitemmodels" ,kitemmodels)
        ("kitemviews" ,kitemviews)
        ("kjobwidgets" ,kjobwidgets)
+       ("kldap" ,kldap)
        ("kmime" ,kmime)
        ("knewstuff" ,knewstuff)
        ("kpimtextedit" ,kpimtextedit)
@@ -1685,14 +1712,14 @@ Virtual Contact File}) files to the KPeople contact management library.")
 (define-public libgravatar
   (package
     (name "libgravatar")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libgravatar-" version ".tar.xz"))
        (sha256
-        (base32 "0981ci2kr20v4fk11h57rqya0brgslfazpgq1yk5yqiwyqqm49r2"))))
+        (base32 "047fbdj02rnb7bn2vn9lava2mh4ypzlyd8iiri4mbpd686lmi0s1"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1717,14 +1744,14 @@ unnecessary network operations.")
 (define-public kpimtextedit
   (package
     (name "kpimtextedit")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kpimtextedit-" version ".tar.xz"))
        (sha256
-        (base32 "0j6d4sv405c3x0ww75qsww94apidsb8aaqf59akhv96zmv0vx5wy"))))
+        (base32 "0v479g998amh822lxr0l2d9xhlrwbij9prlrn1z9y9al056cic7h"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1748,7 +1775,7 @@ unnecessary network operations.")
        ("sonnet" ,sonnet)))
     (arguments
      `(#:tests? #f)) ;; TODO - test suite hangs
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (home-page "https://api.kde.org/kdepim/kpimtextedit/html/")
     (synopsis "Library providing a textedit with PIM-specific features")
     (description "This package provides a textedit with PIM-specific features.
 It also provides so-called rich text builders which can convert the formatted
@@ -1759,14 +1786,14 @@ text in the text edit to all kinds of markup, like HTML or BBCODE.")
 (define-public ksmtp
   (package
     (name "ksmtp")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/ksmtp-" version ".tar.xz"))
        (sha256
-        (base32 "1xyaahibm0dc3qdwiak5yqa66szxaxnylvqxi6k21ayvzn2vxbhx"))))
+        (base32 "08bdi23qwvayl9w1nsfgpxpxmxrw820qcmvw03ivdk1h7m6sl3yh"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1799,14 +1826,14 @@ standard protocols for e-mail transmission.")
 (define-public ktnef
   (package
     (name "ktnef")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/ktnef-" version ".tar.xz"))
        (sha256
-        (base32 "0cn5p32w2kas56yyc15c22kll4hd02lvvxz2n6cz1wda8alspj19"))))
+        (base32 "05l4g38f2m3qjl6q45j12zarpazsizjl2pyqh87vhaxgnf4fbqqp"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1819,7 +1846,7 @@ standard protocols for e-mail transmission.")
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/ktnef/html/")
+    (home-page "https://api.kde.org/frameworks-api/frameworks-apidocs/kdepim/ktnef/html/index.html")
     (synopsis "Library for handling mail attachments using TNEF format")
     (description "Ktnef is a library for handling data in the TNEF
 format (Transport Neutral Encapsulation Format, a proprietary format of e-mail
@@ -1831,14 +1858,14 @@ and allows one to view/extract message formatted text in Rich Text Format.")
 (define-public libkdepim
   (package
     (name "libkdepim")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkdepim-" version ".tar.xz"))
        (sha256
-        (base32 "0bask561laxgkgm3rxfpyxqs6jx1l9xjk058lhycq0pik6vwhdha"))))
+        (base32 "1j8nkfgzixpchz34p338mcm87f112ddy1linhaczg5fal1brangh"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1879,14 +1906,14 @@ and allows one to view/extract message formatted text in Rich Text Format.")
 (define-public libkgapi
   (package
     (name "libkgapi")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkgapi-" version ".tar.xz"))
        (sha256
-        (base32 "0nvd5fqrvyb7c3g7rf1lxbbv38q9sqnhd6irgx7awwgw92inxky4"))))
+        (base32 "13dna8iv3qzkc1jagjgji928g88wrgds47lcfj3dqkn8swamisa0"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1915,14 +1942,14 @@ various Google services.")
 (define-public libkleo
   (package
     (name "libkleo")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libkleo-" version ".tar.xz"))
        (sha256
-        (base32 "0rijpmqyx4mrr7csik3vkfcra7kfywk6yz548fmq3ha8wa9ax8fv"))))
+        (base32 "14p3x2jq9sa5gkhcd7q3g5ras2sl62shrjm9kx4426mbnj10n0q2"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1930,7 +1957,6 @@ various Google services.")
        ("qttools" ,qttools)))
     (inputs
      `(("boost" ,boost)
-       ("gpgme" ,gpgme)
        ("kcodecs" ,kcodecs)
        ("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
@@ -1941,8 +1967,19 @@ various Google services.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kpimtextedit" ,kpimtextedit)
-       ("qgpgme" ,qgpgme)
        ("qtbase" ,qtbase-5)))
+    (propagated-inputs
+     `(("gpgme" ,gpgme)
+       ("qgpgme" ,qgpgme)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; FIXME: These tests fail.
+               (invoke "ctest" "-E"
+                       "(keyresolvercoretest|newkeyapprovaldialogtest)"))
+             #t)))))
     (home-page "https://invent.kde.org/pim/libkleo")
     (synopsis "KDE PIM cryptographic library")
     (description "@code{libkleo} is a library for Kleopatra and other parts of
@@ -1953,14 +1990,14 @@ KDE using certificate-based crypto.")
 (define-public libksieve
   (package
     (name "libksieve")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/libksieve-" version ".tar.xz"))
        (sha256
-        (base32 "04k2nkwg5vlgbr5wpvsq02wi54ljsy4ka7y3ns5x3d2gb06wp03c"))
+        (base32 "1jxb0a18mf8yqxbi90jbgjh90x17qr6z7ga6zxdb8gk1hjsyb10y"))
        (patches (search-patches "libksieve-Fix-missing-link-libraries.patch"))))
     (build-system qt-build-system)
     (native-inputs
@@ -1994,17 +2031,12 @@ KDE using certificate-based crypto.")
        (modify-phases %standard-phases
          (add-after 'unpack 'substitute
            (lambda _
-             ;; Disable a failing test
+             ;; FIXME: Disable a failing test
              ;; sieveeditorhelphtmlwidgettest fails with `sigtrap`
              (substitute*
                  "src/ksieveui/editor/webengine/autotests/CMakeLists.txt"
                (("^\\s*(add_test|ecm_mark_as_test)\\W" line)
                 (string-append "# " line)))
-             ;; FIXME: This test fails due to time zone problems.
-             (substitute*
-                 "src/ksieveui/autocreatescripts/autotests/CMakeLists.txt"
-               ((".*sieveeditorgraphicalmodewidgettest\\.cpp.*")
-                ""))
              #t)))))
     (home-page "https://invent.kde.org/pim/libksieve")
     (synopsis "KDE Sieve library")
diff --git a/gnu/packages/patches/akonadi-not-relocatable.patch b/gnu/packages/patches/akonadi-not-relocatable.patch
index c3964c5c05..bd4cbee79f 100644
--- a/gnu/packages/patches/akonadi-not-relocatable.patch
+++ b/gnu/packages/patches/akonadi-not-relocatable.patch
@@ -1,19 +1,18 @@
-From bc018b4bc816a3b51deb9739bedbf8a2268d0684 Mon Sep 17 00:00:00 2001
-From: gnidorah <gnidorah@users.noreply.github.com>
-Date: Fri, 22 Dec 2017 17:36:03 +0300
-Subject: [PATCH] Revert "Make Akonadi installation properly relocatable"
+From 4b90a0bd4411a66bbe6ecf85ce89a60a58bee969 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 25 Apr 2021 08:01:21 -0500
+Subject: [PATCH 3/3] akonadi revert make relocatable
 
-This reverts commit b2bb55f13f2ac783f89cc414de8c39f62fa2096a.
 ---
  CMakeLists.txt            | 3 ---
  KF5AkonadiConfig.cmake.in | 6 +++---
  2 files changed, 3 insertions(+), 6 deletions(-)
 
-Index: akonadi-19.08.0/CMakeLists.txt
-===================================================================
---- akonadi-19.08.0.orig/CMakeLists.txt
-+++ akonadi-19.08.0/CMakeLists.txt
-@@ -306,9 +306,6 @@ configure_package_config_file(
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4e8cc81..63161b7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -368,9 +368,6 @@ configure_package_config_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
      INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
@@ -21,29 +20,25 @@ Index: akonadi-19.08.0/CMakeLists.txt
 -              AKONADI_INCLUDE_DIR
 -              KF5Akonadi_DATA_DIR
  )
- 
+
  install(FILES
-Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in
-===================================================================
---- akonadi-19.08.0.orig/KF5AkonadiConfig.cmake.in
-+++ akonadi-19.08.0/KF5AkonadiConfig.cmake.in
-@@ -26,8 +26,8 @@ if(BUILD_TESTING)
-     find_dependency(Qt5Test "@QT_REQUIRED_VERSION@")
- endif()
- 
+diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
+index bcf7320..1574319 100644
+--- a/KF5AkonadiConfig.cmake.in
++++ b/KF5AkonadiConfig.cmake.in
+@@ -1,10 +1,10 @@
+ @PACKAGE_INIT@
+
 -set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 -set_and_check(AKONADI_INCLUDE_DIR          "@PACKAGE_AKONADI_INCLUDE_DIR@")
 +set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 +set_and_check(AKONADI_INCLUDE_DIR          "@AKONADI_INCLUDE_DIR@")
- 
- find_dependency(Boost "@Boost_MINIMUM_VERSION@")
- 
-@@ -35,7 +35,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5Ako
- include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake)
- 
+
  # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
 -set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@")
 +set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@")
- 
- ####################################################################################
- # CMAKE_AUTOMOC
+
+ # set the directories
+ if(NOT AKONADI_INSTALL_DIR)
+--
+2.31.1
diff --git a/gnu/packages/patches/akonadi-paths.patch b/gnu/packages/patches/akonadi-paths.patch
index ac08ec5448..3e79748d47 100644
--- a/gnu/packages/patches/akonadi-paths.patch
+++ b/gnu/packages/patches/akonadi-paths.patch
@@ -4,23 +4,23 @@ mysql and postgresql executables removed. The our package definition on why.
 diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
 --- a/src/akonadicontrol/agentmanager.cpp
 +++ b/src/akonadicontrol/agentmanager.cpp
-@@ -61,7 +61,7 @@ public:
-                 []() {
-                     QCoreApplication::instance()->exit(255);
-                 });
+@@ -47,7 +47,7 @@ public:
+         connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
+             QCoreApplication::instance()->exit(255);
+         });
 -        start(QStringLiteral("akonadiserver"), args, RestartOnCrash);
-+        start(QLatin1String(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
++        start(QStringLiteral(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
      }
- 
+
      ~StorageProcessControl() override
-@@ -84,7 +84,7 @@ public:
-                 []() {
-                     qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
-                 });
+@@ -69,7 +69,7 @@ public:
+         connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
+             qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
+         });
 -        start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash);
-+        start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
++        start(QStringLiteral(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
      }
- 
+
      ~AgentServerProcessControl() override
 diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
 --- a/src/akonadicontrol/agentprocessinstance.cpp
@@ -37,12 +37,12 @@ diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/ag
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -209,7 +209,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -215,7 +215,7 @@ bool DbConfigMysql::startInternalServer()
  #endif
- 
+
      // generate config file
 -    const QString globalConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-global.conf"));
 +    const QString globalConfig = QLatin1String(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf");
-     const QString localConfig  = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
+     const QString localConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
      const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
      if (globalConfig.isEmpty()) {
diff --git a/gnu/packages/patches/akonadi-timestamps.patch b/gnu/packages/patches/akonadi-timestamps.patch
index e299a6991f..df81fdb2dc 100644
--- a/gnu/packages/patches/akonadi-timestamps.patch
+++ b/gnu/packages/patches/akonadi-timestamps.patch
@@ -2,12 +2,12 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
 ===================================================================
 --- akonadi-19.08.0.orig/src/server/storage/dbconfigmysql.cpp
 +++ akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer(
+@@ -260,8 +260,7 @@ bool DbConfigMysql::startInternalServer(
      bool confUpdate = false;
      QFile actualFile(actualConfig);
      // update conf only if either global (or local) is newer than actual
--    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
--            (QFileInfo(localConfig).lastModified()  > QFileInfo(actualFile).lastModified())) {
+-    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified())
+-        || (QFileInfo(localConfig).lastModified() > QFileInfo(actualFile).lastModified())) {
 +    if (true) {
          QFile globalFile(globalConfig);
          QFile localFile(localConfig);
diff --git a/gnu/packages/patches/kmail-Fix-missing-link-libraries.patch b/gnu/packages/patches/kmail-Fix-missing-link-libraries.patch
deleted file mode 100644
index fc784d63dd..0000000000
--- a/gnu/packages/patches/kmail-Fix-missing-link-libraries.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 6b0a3a60870499b20ce9ae2ea07cbc5ee53cbdd2 Mon Sep 17 00:00:00 2001
-From: Hartmut Goebel <h.goebel@crazy-compilers.com>
-Date: Tue, 21 Jan 2020 23:23:38 +0100
-Subject: [PATCH] Fix missing link libraries.
-
-See <https://phabricator.kde.org/D26821>
-
-These are only actually missing if the libraries reside in different
-prefixes, as it is the case in Guix or Nix.
----
- agents/archivemailagent/CMakeLists.txt      | 1 +
- agents/followupreminderagent/CMakeLists.txt | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/agents/archivemailagent/CMakeLists.txt b/agents/archivemailagent/CMakeLists.txt
-index 95c6249de..d0ddcd475 100644
---- a/agents/archivemailagent/CMakeLists.txt
-+++ b/agents/archivemailagent/CMakeLists.txt
-@@ -22,6 +22,7 @@ ki18n_wrap_ui(libarchivemailagent_SRCS ui/archivemailwidget.ui )
- add_library(archivemailagent STATIC ${libarchivemailagent_SRCS})
- target_link_libraries(archivemailagent
-     KF5::MailCommon
-+    KF5::Libkdepim
-     KF5::I18n
-     KF5::Notifications
-     KF5::KIOWidgets
-diff --git a/agents/followupreminderagent/CMakeLists.txt b/agents/followupreminderagent/CMakeLists.txt
-index 9ae7eaa29..527044807 100644
---- a/agents/followupreminderagent/CMakeLists.txt
-+++ b/agents/followupreminderagent/CMakeLists.txt
-@@ -27,6 +27,7 @@ target_link_libraries(followupreminderagent
-     KF5::AkonadiMime
-     KF5::AkonadiAgentBase
-     KF5::DBusAddons
-+    KF5::FollowupReminder
-     KF5::XmlGui
-     KF5::KIOWidgets
-     KF5::Notifications
--- 
-2.21.1
-
diff --git a/gnu/packages/patches/libksieve-Fix-missing-link-libraries.patch b/gnu/packages/patches/libksieve-Fix-missing-link-libraries.patch
index 238c4ec46c..3835c2e313 100644
--- a/gnu/packages/patches/libksieve-Fix-missing-link-libraries.patch
+++ b/gnu/packages/patches/libksieve-Fix-missing-link-libraries.patch
@@ -1,59 +1,23 @@
-From 732861dda9c466841a09329a0b2c992f2b78c40a Mon Sep 17 00:00:00 2001
-From: Hartmut Goebel <h.goebel@crazy-compilers.com>
-Date: Tue, 21 Jan 2020 23:15:23 +0100
-Subject: [PATCH] Fix missing link libraries.
-
 See <https://phabricator.kde.org/D26818>
 
-These are only actually missing if the libraries reside in different
-prefixes, as it is the case in Guix or Nix.
----
- src/ksieveui/autocreatescripts/tests/CMakeLists.txt  | 2 ++
- src/ksieveui/scriptsparsing/autotests/CMakeLists.txt | 2 +-
- src/ksieveui/scriptsparsing/tests/CMakeLists.txt     | 8 ++++++--
- 3 files changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/src/ksieveui/autocreatescripts/tests/CMakeLists.txt b/src/ksieveui/autocreatescripts/tests/CMakeLists.txt
-index 8a482b4..c43216c 100644
---- a/src/ksieveui/autocreatescripts/tests/CMakeLists.txt
-+++ b/src/ksieveui/autocreatescripts/tests/CMakeLists.txt
-@@ -15,6 +16,7 @@ set(parsingscript_gui_SRCS parsingscript_gui.cpp ../../tests/capability.cpp)
- add_executable(parsingscript_gui ${parsingscript_gui_SRCS})
- target_link_libraries(parsingscript_gui
-   KF5::KIOCore
-+  KF5::SyntaxHighlighting
-   KF5::KSieveUi
-   KF5::KSieve
-   KF5::PimCommon
-diff --git a/src/ksieveui/scriptsparsing/autotests/CMakeLists.txt b/src/ksieveui/scriptsparsing/autotests/CMakeLists.txt
-index e41a74e..31703ef 100644
---- a/src/ksieveui/scriptsparsing/autotests/CMakeLists.txt
-+++ b/src/ksieveui/scriptsparsing/autotests/CMakeLists.txt
-@@ -5,7 +5,7 @@ macro(add_sieveeditor_xmlprintingscriptbuilding _source _extrasource)
-     ecm_add_test(${_test}
-         TEST_NAME ${_name}
-         NAME_PREFIX "sieveeditor-xmlprintingscriptbuilding-"
--        LINK_LIBRARIES Qt5::Test KF5::I18n KF5::KSieveUi
-+        LINK_LIBRARIES Qt5::Test KF5::I18n KF5::KSieveUi KF5::SyntaxHighlighting
-         )
- endmacro()
- add_sieveeditor_xmlprintingscriptbuilding(xmlprintingscriptbuildertest.cpp "" "")
-diff --git a/src/ksieveui/scriptsparsing/tests/CMakeLists.txt b/src/ksieveui/scriptsparsing/tests/CMakeLists.txt
-index a252039..99a1aaa 100644
---- a/src/ksieveui/scriptsparsing/tests/CMakeLists.txt
-+++ b/src/ksieveui/scriptsparsing/tests/CMakeLists.txt
-@@ -9,5 +9,9 @@ set(xmlsieveparsing_SRCS
- )
- 
- add_executable(xmlsieveparsing ${xmlsieveparsing_SRCS} )
--target_link_libraries(xmlsieveparsing   KF5::KSieveUi KF5::KSieve KF5::I18n)
--
-+target_link_libraries(xmlsieveparsing
-+ KF5::KSieveUi
-+ KF5::SyntaxHighlighting
-+ KF5::KSieve
-+ KF5::I18n
-+)
---
-2.21.1
+diff --git a/src/ksieveui/CMakeLists.txt b/src/ksieveui/CMakeLists.txt
+--- a/src/ksieveui/CMakeLists.txt
++++ b/src/ksieveui/CMakeLists.txt
+@@ -255,6 +255,7 @@ target_link_libraries(KF5KSieveUi
+ KF5::KManageSieve
+ KF5::KSieve
+ KF5::PimCommon
++ KF5::SyntaxHighlighting
+ PRIVATE
+ KF5::Libkdepim
+ KF5::Archive
+@@ -269,7 +270,6 @@ target_link_libraries(KF5KSieveUi
+ KF5::I18n
+ KF5::SonnetUi
+ Qt::PrintSupport
+- KF5::SyntaxHighlighting
+ )
+ set_target_properties(KF5KSieveUi PROPERTIES
+--
+2.33.0
--
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 12/19] gnu: Remove libraw-0.18.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-13-mail@brendan.scot
* gnu/packages/photo.scm (libraw-0.18): Delete variable.
This package is unused by krita now.
---
gnu/packages/photo.scm | 12 ------------
1 file changed, 12 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index e85af9305a..9331b83298 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -203,18 +203,6 @@ cameras (CRW/CR2, NEF, RAF, DNG, and others).")
     ;; both two licensing modes for your changes/additions."
     (license (list license:lgpl2.1 license:cddl1.0))))
 
-(define-public libraw-0.18
-  (package (inherit libraw)
-    (name "libraw")
-    (version "0.18.12")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.libraw.org/data/LibRaw-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1m2khr2cij8z6lawgbmdksjn14fpnjsy8ad4qahnpqapm1slsxap"))))))
-
 (define-public libexif
   (package
     (name "libexif")
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 11/19] gnu: KDE: Update to 21.08.2.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-12-mail@brendan.scot
(baloo-widgets grantleetheme akregator kdevelop-pg-qt
kdiagram massif-visualizer libkomparediff2 qca kpmcore snorenotify
kdeconnect labplot kqtquickcharts kdf kcachegrind libkdegames okular
poxml kdegraphics-mobipocket libkexiv2 zeroconf-ioslave kuserfeedback):
Update to 21.08.2.

(kdevelop): Update to 5.6.2.
[inputs]: Add ksyntaxhighlighting.
Replace oxygen-icons with breeze-icons as default.
[home-page]: Lint URL.

(kdenlive): Specify version the usual way, without let form.

(grantleetheme): [origin]: Remove merge-theme-dirs patch. The code
appears to be integrated upstream so the patch doesn't apply. Not 100%
sure if any of it is still needed.

(akregator): [home-page]: Lint URL.

(krita): [inputs]: Use latest libraw. Add libheif.
[build-system]: Use qt-build-system. Simplify.
[configure-flags]: Use gexp instead of %build-inputs.
[phases]: Don't wrap QT_PLUGIN_PATH, since it should be done by
qt-build-system.
[home-page]: Lint URL.

(kpmcore): [inputs]: Add polkit-qt.
[arguments]: Don't install to polkits store path.

(kdeconnect): [inputs]: Add qqc2-desktop-style, qtwayland, wayland.

(kdf): [home-page]: Lint URL.
(okular): [home-page]: Lint URL.
(poxml): [home-page]: Lint URL.
(kdegraphics-mobipocket): [home-page]: Lint URL.
(zeroconf-ioslave): [home-page]: Lint URL.

* gnu/packages/patches/grantlee-merge-theme-dirs.patch: Delete file.
* gnu/local.mk: Remove reference to patch.
---
gnu/local.mk | 1 -
gnu/packages/kde.scm | 298 +++++++++---------
.../patches/grantlee-merge-theme-dirs.patch | 163 ----------
3 files changed, 149 insertions(+), 313 deletions(-)
delete mode 100644 gnu/packages/patches/grantlee-merge-theme-dirs.patch

Toggle diff (866 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 10b97c8bc3..7433e1e7ea 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1193,7 +1193,6 @@ 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-merge-theme-dirs.patch		\
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
   %D%/packages/patches/grocsvs-dont-use-admiral.patch		\
   %D%/packages/patches/gromacs-tinyxml2.patch			\
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index dcb91fdb0b..e6146f0f85 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +37,7 @@
   #:use-module (guix build-system qt)
   #:use-module (guix deprecation)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -57,6 +59,8 @@
   #:use-module (gnu packages ebook)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -74,6 +78,7 @@
   #: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)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
@@ -87,14 +92,14 @@
 (define-public baloo-widgets
   (package
     (name "baloo-widgets")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/baloo-widgets-" version ".tar.xz"))
        (sha256
-        (base32 "1x4v79vhvc5ixkbsf3jyjz5ig1lf78rfw3r7g3llpb4j1kcp3wh0"))))
+        (base32 "1fk8qvqh1xx6139wvyfk607vkb7w3d79gc3v3c8s96pkp5b228ax"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -120,17 +125,15 @@ This package contains GUI widgets for baloo.")
 (define-public grantleetheme
   (package
     (name "grantleetheme")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/grantleetheme-" version ".tar.xz"))
        (sha256
-        (base32 "0gabc5cb0sf00s7m5v2jnq55qsrdbrq6nqd15y1i15p788zifsjx"))
-       (patches (search-patches "grantlee-merge-theme-dirs.patch"))))
-    (build-system qt-build-system)
-    (arguments `(#:tests? #f))  ; unexpected error in the test suite.
+        (base32 "0xm19a21y8b4cqiqg6mhxip1xxk7hrz88z1sijhhgc8d14i7mkdk"))))
+    (build-system qt-build-system) ; unexpected error in the test suite.
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("libxml2" ,libxml2))) ;; xmllint required for tests
@@ -150,14 +153,14 @@ This package contains GUI widgets for baloo.")
 (define-public akregator
   (package
     (name "akregator")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akregator-" version ".tar.xz"))
        (sha256
-        (base32 "1711yhwsdq9iyc3wm3a4xmz81p73hvvc0h58sasc89ifpry50k2p"))))
+        (base32 "15qkkfrxiwcd1gz5skqj8sb8fkr1mkc51wc2chqr4jv6aa0lbf5r"))))
     (build-system qt-build-system)
     (arguments
      `(#:phases
@@ -207,7 +210,7 @@ This package contains GUI widgets for baloo.")
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)
        ("syndication" ,syndication)))
-    (home-page "https://apps.kde.org/en/akregator")
+    (home-page "https://apps.kde.org/akregator/")
     (synopsis "KDE Feed Reader")
     (description
      "Akregator is a news feed reader.  It enables you to follow news
@@ -219,91 +222,90 @@ browser for easy news reading.")
     (license license:gpl2+)))
 
 (define-public kdenlive
-  (let ((version "21.08.2"))
-    (package
-      (name "kdenlive")
-      (version version)
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://invent.kde.org/multimedia/kdenlive")
-               (commit (string-append "v" version))))
-         (file-name (string-append name "-" version "-checkout"))
-         (sha256
-          (base32 "1l78xjdf1bmj3s8kysaqqgh67mb3vrc96rsdnp0i4awlyfsh89d7"))))
-      (build-system qt-build-system)
-      (native-inputs
-       `(("extra-cmake-modules" ,extra-cmake-modules)
-         ("pkg-config" ,pkg-config)
-         ("qttools" ,qttools)))
-      (inputs
-       `(("breeze" ,breeze) ; make dark them available easily
-         ("breeze-icons" ,breeze-icons) ; recommended icon set
-         ("ffmpeg" ,ffmpeg)
-         ("frei0r-plugins" ,frei0r-plugins)
-         ("karchive" ,karchive)
-         ("kcrash" ,kcrash)
-         ("kdbusaddons" ,kdbusaddons)
-         ("kdeclarative" ,kdeclarative)
-         ("kdoctools" ,kdoctools)
-         ("kfilemetadata" ,kfilemetadata)
-         ("kguiaddons" ,kguiaddons)
-         ("kiconthemes" ,kiconthemes)
-         ("knewstuff" ,knewstuff)
-         ("knotifications" ,knotifications)
-         ("knotifyconfig" ,knotifyconfig)
-         ("kparts" ,kparts)
-         ("kplotting" ,kplotting)
-         ("mlt" ,mlt)
-         ("purpose" ,purpose)
-         ("qtbase" ,qtbase-5)
-         ("qtdeclarative" ,qtdeclarative)
-         ("qtgraphicaleffects" ,qtgraphicaleffects)
-         ("qtmultimedia" ,qtmultimedia)
-         ("qtnetworkauth" ,qtnetworkauth)
-         ("qtquickcontrols" ,qtquickcontrols)
-         ("qtquickcontrols2" ,qtquickcontrols2)
-         ("qtscript" ,qtscript)
-         ("qtsvg" ,qtsvg)
-         ("qtwebkit" ,qtwebkit)
-         ("shared-mime-info" ,shared-mime-info)))
-      (arguments
-       ;; XXX: there is a single test that spawns other tests and
-       ;; 1/3 tests failed and 1/327 assertions failed.  It seems
-       ;; that individual tests can't be skipped.
-       `(#:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'wrap-executable
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (qtbase (assoc-ref inputs "qtbase"))
-                      (frei0r (assoc-ref inputs "frei0r-plugins"))
-                      (ffmpeg (assoc-ref inputs "ffmpeg")))
-                 (wrap-program (string-append out "/bin/kdenlive")
-                   `("PATH" ":" prefix
-                     ,(list (string-append ffmpeg "/bin")))
-                   `("FREI0R_PATH" ":" =
-                     (,(string-append frei0r "/lib/frei0r-1/")))
-                   `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
-                     (,(string-append qtbase "/lib/qt5/plugins/platforms")))
-                   `("MLT_PREFIX" ":" =
-                     (,(assoc-ref inputs "mlt"))))))))))
-      (home-page "https://kdenlive.org")
-      (synopsis "Non-linear video editor")
-      (description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
+  (package
+    (name "kdenlive")
+    (version "21.08.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://invent.kde.org/multimedia/kdenlive")
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32 "1l78xjdf1bmj3s8kysaqqgh67mb3vrc96rsdnp0i4awlyfsh89d7"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("breeze" ,breeze) ; make dark theme available easily
+       ("breeze-icons" ,breeze-icons) ; recommended icon set
+       ("ffmpeg" ,ffmpeg)
+       ("frei0r-plugins" ,frei0r-plugins)
+       ("karchive" ,karchive)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdeclarative" ,kdeclarative)
+       ("kdoctools" ,kdoctools)
+       ("kfilemetadata" ,kfilemetadata)
+       ("kguiaddons" ,kguiaddons)
+       ("kiconthemes" ,kiconthemes)
+       ("knewstuff" ,knewstuff)
+       ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kparts" ,kparts)
+       ("kplotting" ,kplotting)
+       ("mlt" ,mlt)
+       ("purpose" ,purpose)
+       ("qtbase" ,qtbase-5)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtnetworkauth" ,qtnetworkauth)
+       ("qtquickcontrols" ,qtquickcontrols)
+       ("qtquickcontrols2" ,qtquickcontrols2)
+       ("qtscript" ,qtscript)
+       ("qtsvg" ,qtsvg)
+       ("qtwebkit" ,qtwebkit)
+       ("shared-mime-info" ,shared-mime-info)))
+    (arguments
+     ;; XXX: there is a single test that spawns other tests and
+     ;; 1/3 tests failed and 1/327 assertions failed.  It seems
+     ;; that individual tests can't be skipped.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (qtbase (assoc-ref inputs "qtbase"))
+                    (frei0r (assoc-ref inputs "frei0r-plugins"))
+                    (ffmpeg (assoc-ref inputs "ffmpeg")))
+               (wrap-program (string-append out "/bin/kdenlive")
+                 `("PATH" ":" prefix
+                   ,(list (string-append ffmpeg "/bin")))
+                 `("FREI0R_PATH" ":" =
+                   (,(string-append frei0r "/lib/frei0r-1/")))
+                 `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
+                   (,(string-append qtbase "/lib/qt5/plugins/platforms")))
+                 `("MLT_PREFIX" ":" =
+                   (,(assoc-ref inputs "mlt"))))))))))
+    (home-page "https://kdenlive.org")
+    (synopsis "Non-linear video editor")
+    (description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
 
 Non-linear video editing is much more powerful than beginner's (linear)
 editors, hence it requires a bit more organization before starting.  However,
 it is not reserved to specialists and can be used for small personal
 projects.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
 
 (define-public kdevelop
   (package
     (name "kdevelop")
-    (version "5.6.1")
+    (version "5.6.2")
     (source
       (origin
         (method url-fetch)
@@ -311,7 +313,7 @@ projects.")
                             "/" version "/src/kdevelop-"
                             version ".tar.xz"))
         (sha256
-         (base32 "02ip5r67hjfpywkm3mz86n6wbqcr7996ifzfd2fyzsvm4998hi4y"))))
+         (base32 "1xiv6vs7d7vj5v7i1wxzx0xl6h8cg9bl8x9z7qg1qxizwlzvr1hg"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -338,11 +340,12 @@ projects.")
        ("knotifyconfig" ,knotifyconfig)
        ("kparts" ,kparts)
        ("kservice" ,kservice)
+       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
        ("ktexteditor" ,ktexteditor)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("libkomparediff2" ,libkomparediff2)
-       ("oxygen-icons" ,oxygen-icons)
+       ("breeze-icons" ,breeze-icons)
        ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtquickcontrols" ,qtquickcontrols)  ;; not checked as requirement
@@ -384,7 +387,7 @@ projects.")
                (("^\\s*PATHS \"\\$\\{CLANG_LIBRARY_DIRS\\}\"" line)
                 (string-append line " " (assoc-ref inputs "clang") "/lib")))
              #t)))))
-    (home-page "https://kdevelop.org")
+    (home-page "https://www.kdevelop.org/")
     (synopsis "IDE for C, C++, Python, Javascript and PHP")
     (description "The KDevelop IDE provides semantic syntax highlighting, as
 well as code navigation and completion for C, C++ (using Clang/LLVM), QML,
@@ -423,14 +426,14 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
 (define-public kdiagram
   (package
     (name "kdiagram")
-    (version "2.7.0")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/kdiagram/" version
                            "/kdiagram-" version ".tar.xz"))
        (sha256
-        (base32 "1pgvf2q8b59hw0jg5ajmj5nrn4q8cgnifpvdd0fynk2ml6zym8k3"))
+        (base32 "07s3kwv0mqvb64x8nz4w1yb3hbk28yzkw4qg1jibai7as4xsv7ap"))
        (patches (search-patches
                  "kdiagram-Fix-missing-link-libraries.patch"))))
     (build-system qt-build-system)
@@ -463,29 +466,13 @@ illustrate project schedules.")
               (sha256
                (base32
                 "1y0d8gnxfdg5nfwk8dgx8fc2bwskvnys049napb1a9fr25bqmimw"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (arguments
      `(#:tests? #f
        #:configure-flags
-       (list "-DBUILD_TESTING=OFF"
-             (string-append "-DCMAKE_CXX_FLAGS=-I"
-                            (assoc-ref %build-inputs "openexr")
-                            "/include/OpenEXR"))
-       #:phases
-       (modify-phases %standard-phases
-         ;; Ensure that icons are found at runtime.
-         ;; This works around <https://bugs.gnu.org/22138>.
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (qt '("qtbase" "qtsvg")))
-               (wrap-program (string-append out "/bin/krita")
-                 `("QT_PLUGIN_PATH" ":" prefix
-                   ,(map (lambda (label)
-                           (string-append (assoc-ref inputs label)
-                                          "/lib/qt5/plugins/"))
-                         qt)))
-               #t))))))
+       ,#~(list "-DBUILD_TESTING=OFF"
+                (string-append "-DCMAKE_CXX_FLAGS=-I" #$openexr
+                               "/include/OpenEXR"))))
     (native-inputs
      `(("curl" ,curl)
        ("eigen" ,eigen)
@@ -515,9 +502,10 @@ illustrate project schedules.")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("lcms" ,lcms)
+       ("libheif" ,libheif)
        ("libjpeg-turbo" ,libjpeg-turbo)
        ("libpng" ,libpng)
-       ("libraw" ,libraw-0.18)
+       ("libraw" ,libraw)
        ("libtiff" ,libtiff)
        ("libx11" ,libx11)
        ("libxcb" ,libxcb)
@@ -568,7 +556,7 @@ features include brush stabilizers, brush engines and wrap-around mode.")
        ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtxmlpatterns" ,qtxmlpatterns)))
-    (home-page "https://apps.kde.org/en/massif-visualizer")
+    (home-page "https://apps.kde.org/massif-visualizer/")
     (synopsis "Visualize massif data generated by Valgrind")
     (description
      "Massif Visualizer is a tool that visualizes massif data.
@@ -580,14 +568,14 @@ compressed massif files can also be opened transparently.")
 (define-public libkomparediff2
   (package
     (name "libkomparediff2")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://kde/stable/release-service/" version
                             "/src/libkomparediff2-" version ".tar.xz"))
         (sha256
-         (base32 "0m8m7sgpf2f4nxpaaymyvihlk0pcyblyd99mcbibrnyr5kzkzzdc"))))
+         (base32 "08y9p3il0i5sayq42v9p1v9f6yynp7ljb5d4ls1hf5ww4xxvx10x"))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
@@ -612,14 +600,14 @@ used in KDE development tools Kompare and KDevelop.")
 (define-public qca
   (package
     (name "qca")
-    (version "2.3.3")
+    (version "2.3.4")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://kde/stable/qca/" version
                             "/qca-" version ".tar.xz"))
         (sha256
-         (base32 "0rvvf97la95lah67jcj0p06n4br0pc2mri0q1hn4x522hndqybjn"))))
+         (base32 "1i7m5y3dfwij9cyjp72ya5zd2skgp7mfmrmf7bvrbzg3ly0mhsbb"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -637,16 +625,16 @@ cards.")
 (define-public kpmcore
   (package
     (name "kpmcore")
-    (version "4.1.0")
+    (version "21.08.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "mirror://kde/stable/kpmcore"
-                    "/" version "/src/"
-                    name "-" version ".tar.xz"))
+              (uri (string-append "mirror://kde/stable/release-service/"
+                                  version "/src/kpmcore-"
+                                  version ".tar.xz"))
+
               (sha256
                (base32
-                "0jsig7algmab9h0fb09my0axjqzw83zgscamhzl8931lribs6idm"))))
+                "0rn8x0add1qflsbgppmhz1zbnjvy39d5wckxga0vmhdix2m3d60g"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -656,9 +644,18 @@ cards.")
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("kwidgetsaddons" ,kwidgetsaddons)
+       ("polkit-qt" ,polkit-qt)
        ("qtbase" ,qtbase-5)
        ("qca" ,qca)
        ("util-linux" ,util-linux "lib")))
+    (arguments
+     `(#: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.")
@@ -694,7 +691,7 @@ different notification systems.")
 (define-public kdeconnect
   (package
     (name "kdeconnect")
-    (version "20.04.2")
+    (version "21.08.2")
     (source
       (origin
         (method url-fetch)
@@ -703,7 +700,7 @@ different notification systems.")
                             version ".tar.xz"))
         (sha256
          (base32
-          "0yq3afbbcc9gmlcachvh3xz3gdj57092fpagp36l5knw8gr0d9ip"))))
+          "09dv3l5g0wjilpga11mkxbyy3d8xk46pb2i35yvjbgi9yzp0xzfv"))))
     (build-system qt-build-system)
     (arguments
      `(#:configure-flags '("-DBUILD_TESTING=ON"
@@ -737,13 +734,16 @@ different notification systems.")
        ("libfakekey" ,libfakekey)
        ("pulseaudio-qt" ,pulseaudio-qt)
        ("qca" ,qca)
+       ("qqc2-desktop-style" ,qqc2-desktop-style)
        ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtmultimedia" ,qtmultimedia)
        ("qtquickcontrols" ,qtquickcontrols)
        ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtx11extras" ,qtx11extras)))
+       ("qtx11extras" ,qtx11extras)
+       ("qtwayland" ,qtwayland)
+       ("wayland" ,wayland)))
     (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
@@ -843,7 +843,7 @@ to perform data analysis.")
 (define-public kqtquickcharts
   (package
     (name "kqtquickcharts")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
       (origin
         (method url-fetch)
@@ -851,7 +851,7 @@ to perform data analysis.")
                             version "/src/kqtquickcharts-" version ".tar.xz"))
         (sha256
          (base32
-          "1wxp35mf9zlpgzi4msdl86b2krdq2ipqw371gyx23r7j84vdyxi3"))))
+          "04cxw88lv7mj74znzfl3m9jzks11z837y3bch40qdn8ysk9wqjhn"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -868,14 +868,14 @@ charts.")
 (define-public kdf
   (package
     (name "kdf")
-    (version "20.12.1")
+    (version "21.08.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/"
                                   version "/src/kdf-" version ".tar.xz"))
               (sha256
                (base32
-                "0ba67hs4vlb3qyvdzhnpmf8p62df12s8aqw4hzf9vnxff3qix5k1"))))
+                "1z2m9a4rzjsjxv9pkassn3j7pxkqrpq04hw0j6q913q69a999rwg"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -891,7 +891,7 @@ charts.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://kde.org/applications/system/kdk")
+    (home-page "https://apps.kde.org/kdf/")
     (synopsis "View Disk Usage")
     (description "KDiskFree displays the available file devices (hard drive
 partitions, floppy and CD drives, etc.) along with information on their
@@ -902,14 +902,14 @@ unmount drives and view them in a file manager.")
 (define-public kcachegrind
   (package
     (name "kcachegrind")
-    (version "20.04.1")
+    (version "21.08.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/" version
                                   "/src/kcachegrind-" version ".tar.xz"))
               (sha256
                (base32
-                "0fx17s6fj1pxl1mgfrqhchk8sihkbji1x8y3nhb1r0971wzd1nsc"))))
+                "126qa061bwz2d4s721vbv2099mz07vw3i1yw7vm0b3ih43h95149"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -944,14 +944,14 @@ Python, PHP, and Perl.")
 (define-public libkdegames
   (package
     (name "libkdegames")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/libkdegames-" version ".tar.xz"))
       (sha256
-       (base32 "1xsrrvhwjwi5aajcaxydmzc69i4yx6shs8ly8vr85njc188ycg13"))))
+       (base32 "0jbb4h515c9h08r7dqaslqgrpmb6f08ai46phwgipd67jzgh6wh7"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -990,14 +990,14 @@ Python, PHP, and Perl.")
 (define-public okular
   (package
     (name "okular")
-    (version "20.12.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "0gpm7n47yijsjg4yba561j5pbvd98hgvr93w1kvzk851nb87m89c"))))
+        (base32 "0y3n340fbhsgmmrq4vz2p9682xzs7hsvvna8ffh4r15wgl1qdb9q"))))
     (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"'."
@@ -1047,7 +1047,7 @@ Python, PHP, and Perl.")
        ("threadweaver" ,threadweaver)
        ("kcrash" ,kcrash)
        ("kjs" ,kjs)))
-    (home-page "https://kde.org/applications/graphics/okular/")
+    (home-page "https://apps.kde.org/okular/")
     (synopsis "Document viewer")
     (description
      "Okular is a document viewer developed for KDE.  It can display files in
@@ -1057,7 +1057,7 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
 (define-public poxml
   (package
     (name "poxml")
-    (version "20.12.1")
+    (version "21.08.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -1065,7 +1065,7 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
                               "/src/poxml-" version ".tar.xz"))
               (sha256
                (base32
-                "1smjvblx0jcv3afs2sr4qcmvhqd44iw24hvr9fppa3nxhrmjwmlk"))))
+                "1h7y4y1n3xcpgrkabik21ilck5dmq6p3qxs3xm9vzq1jxpb9izyf"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1073,7 +1073,7 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
     (inputs
      `(("gettext" ,gettext-minimal)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://kde.org/applications/development")
+    (home-page "https://github.com/KDE/poxml/")
     (synopsis "Tools for translating DocBook XML files with Gettext")
     (description "This is a collection of tools that facilitate translating
 DocBook XML files using Gettext message files (PO files).  Also included are
@@ -1084,21 +1084,21 @@ PO template files.")
 (define-public kdegraphics-mobipocket
   (package
     (name "kdegraphics-mobipocket")
-    (version "20.12.0")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "0fm880lp9g60zgrkjyh4jxws6x0s77l9ia4f8pza3w8sxcbbswk5"))))
+        (base32 "15wd7sfwfz3n1a0m0l2ymyhsdxjajw3kkl4piv9956amcg1bxlcp"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("kio" ,kio)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://apps.kde.org/en/kdegraphics_mobipocket")
+    (home-page "https://apps.kde.org/kdegraphics_mobipocket/")
     (synopsis "KDE thumbnailer for Mobipocket files")
     (description "This package provides a KDE plugin that shows thumbnails of
 Mobipocket e-books in Dolphin and other KDE apps.")
@@ -1107,14 +1107,14 @@ Mobipocket e-books in Dolphin and other KDE apps.")
 (define-public libkexiv2
   (package
     (name "libkexiv2")
-    (version "20.12.0")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "0k0iinf7s8qlk3fwvq7iic1b4zn2gm65rfd58q7d3wb1i1j2hjjk"))))
+        (base32 "0spa6pbr6rpnznvm2z0c410k5wssw4rw15rdc3f5ds9mbzbyxpva"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1130,14 +1130,14 @@ picture metadata as EXIF/IPTC and XMP.")
 (define-public zeroconf-ioslave
   (package
     (name "zeroconf-ioslave")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/zeroconf-ioslave-" version ".tar.xz"))
        (sha256
-        (base32 "1qck5jyc4psslpibhki8sz8aj0hsnx8z791vzyn10lmdzn71vx8c"))))
+        (base32 "0xgm4y29iklal5kd5z76jdw6wgw0mg9xn0f0d07zyshv5hjgllv6"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1147,7 +1147,7 @@ picture metadata as EXIF/IPTC and XMP.")
        ("ki18n" ,ki18n)
        ("kio" ,kio)
        ("qtbase" ,qtbase-5)))
-    (home-page "https://kde.org/applications/internet/org.kde.zeroconf_ioslave")
+    (home-page "https://apps.kde.org/zeroconf_ioslave/")
     (synopsis "DNS-SD Service Discovery Monitor")
     (description "Adds an entry to Dolphin's Network page to show local
 services such as printers which advertise themselves with DNSSD (called Avahi
diff --git a/gnu/packages/patches/grantlee-merge-theme-dirs.patch b/gnu/packages/patches/grantlee-merge-theme-dirs.patch
deleted file mode 100644
index 96a15a387b..0000000000
--- a/gnu/packages/patches/grantlee-merge-theme-dirs.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-Taken from nixpkgs, see
-grantleetheme: merge themes across multiple prefixes
-<https://github.com/NixOS/nixpkgs/commits/master/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch>
-
-
-diff --git a/src/grantleetheme.cpp b/src/grantleetheme.cpp
-index 27d5bc8..8d43140 100644
---- a/src/grantleetheme.cpp
-+++ b/src/grantleetheme.cpp
-@@ -46,7 +46,7 @@ ThemePrivate::ThemePrivate(const ThemePrivate &other)
-     , description(other.description)
-     , name(other.name)
-     , dirName(other.dirName)
--    , absolutePath(other.absolutePath)
-+    , absolutePaths(other.absolutePaths)
-     , author(other.author)
-     , email(other.email)
-     , loader(other.loader)
-@@ -64,12 +64,15 @@ void ThemePrivate::setupEngine()
- 
- void ThemePrivate::setupLoader()
- {
--    // Get the parent dir with themes, we set the theme directory separately
--    QDir dir(absolutePath);
--    dir.cdUp();
-+    QStringList templateDirs;
-+    for (const QString& path : absolutePaths) {
-+        QDir dir(path);
-+        dir.cdUp();
-+        templateDirs << dir.absolutePath();
-+    }
- 
-     loader = QSharedPointer<GrantleeTheme::QtResourceTemplateLoader>::create();
--    loader->setTemplateDirs({ dir.absolutePath() });
-+    loader->setTemplateDirs(templateDirs);
-     loader->setTheme(dirName);
- 
-     if (!sEngine) {
-@@ -121,7 +124,7 @@ Theme::Theme(const QString &themePath, const QString &dirName, const QString &de
-     KConfigGroup group(&config, QStringLiteral("Desktop Entry"));
-     if (group.isValid()) {
-         d->dirName = dirName;
--        d->absolutePath = themePath;
-+        d->absolutePaths = QStringList(themePath);
-         d->name = group.readEntry("Name", QString());
-         d->description = group.readEntry("Description", QString());
-         d->themeFileName = group.readEntry("FileName", QString());
-@@ -140,7 +143,7 @@ Theme::~Theme()
- 
- bool Theme::operator==(const Theme &other) const
- {
--    return isValid() && other.isValid() && d->absolutePath == other.absolutePath();
-+    return isValid() && other.isValid() && d->absolutePaths == other.absolutePaths();
- }
- 
- Theme &Theme::operator=(const Theme &other)
-@@ -184,7 +187,15 @@ QString Theme::dirName() const
- 
- QString Theme::absolutePath() const
- {
--    return d->absolutePath;
-+    if (! d->absolutePaths.isEmpty()) {
-+      return d->absolutePaths.first();
-+    };
-+    return QString();
-+}
-+
-+QStringList Theme::absolutePaths() const
-+{
-+    return d->absolutePaths;
- }
- 
- QString Theme::author() const
-@@ -223,6 +231,13 @@ QString Theme::render(const QString &templateName, const QVariantHash &data, con
-     return result;
- }
- 
-+void Theme::addThemeDir(const QString& path)
-+{
-+    QDir dir(path);
-+    dir.cdUp();
-+    d->absolutePaths << dir.absolutePath();
-+}
-+
- void Theme::addPluginPath(const QString &path)
- {
-     if (!ThemePrivate::sEngine) {
-diff --git a/src/grantleetheme.h b/src/grantleetheme.h
-index a25c27b..be38299 100644
---- a/src/grantleetheme.h
-+++ b/src/grantleetheme.h
-@@ -48,11 +48,14 @@ public:
-     Q_REQUIRED_RESULT QStringList displayExtraVariables() const;
-     Q_REQUIRED_RESULT QString dirName() const;
-     Q_REQUIRED_RESULT QString absolutePath() const;
-+    Q_REQUIRED_RESULT QStringList absolutePaths() const;
-     Q_REQUIRED_RESULT QString author() const;
-     Q_REQUIRED_RESULT QString authorEmail() const;
- 
-     Q_REQUIRED_RESULT QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray());
- 
-+    void addThemeDir(const QString&);
-+
-     static void addPluginPath(const QString &path);
- 
- private:
-diff --git a/src/grantleetheme_p.h b/src/grantleetheme_p.h
-index eb73dcb..00510e9 100644
---- a/src/grantleetheme_p.h
-+++ b/src/grantleetheme_p.h
-@@ -43,7 +43,7 @@ public:
-     QString description;
-     QString name;
-     QString dirName;
--    QString absolutePath;
-+    QStringList absolutePaths;
-     QString author;
-     QString email;
- 
-diff --git a/src/grantleethememanager.cpp b/src/grantleethememanager.cpp
-index 606d717..dc99041 100644
---- a/src/grantleethememanager.cpp
-+++ b/src/grantleethememanager.cpp
-@@ -125,25 +125,18 @@ public:
- 
-         for (const QString &directory : qAsConst(themesDirectories)) {
-             QDirIterator dirIt(directory, QStringList(), QDir::AllDirs | QDir::NoDotAndDotDot);
--            QStringList alreadyLoadedThemeName;
-             while (dirIt.hasNext()) {
-                 dirIt.next();
-                 const QString dirName = dirIt.fileName();
-                 GrantleeTheme::Theme theme = q->loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
-                 if (theme.isValid()) {
-                     QString themeName = theme.name();
--                    if (alreadyLoadedThemeName.contains(themeName)) {
--                        int i = 2;
--                        const QString originalName(theme.name());
--                        while (alreadyLoadedThemeName.contains(themeName)) {
--                            themeName = originalName + QStringLiteral(" (%1)").arg(i);
--                            ++i;
--                        }
--                        theme.d->name = themeName;
-+                    QMap<QString, GrantleeTheme::Theme>::iterator i = themes.find(dirName);
-+                    if (i != themes.end()) {
-+                        i.value().addThemeDir(dirIt.filePath());
-+                    } else {
-+                        themes.insert(dirName, theme);
-                     }
--                    alreadyLoadedThemeName << themeName;
--                    themes.insert(dirName, theme);
--                    //qDebug()<<" theme.name()"<<theme.name();
-                 }
-             }
-             watch->addDir(directory);
-@@ -366,7 +359,7 @@ QString ThemeManager::pathFromThemes(const QString &themesRelativePath, const QS
-                 GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
-                 if (theme.isValid()) {
-                     if (dirName == themeName) {
--                        return theme.absolutePath();
-+                        return theme.absolutePaths().first();
-                     }
-                 }
-             }
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 13/19] gnu: KDE Internet: Update to 21.08.2.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-14-mail@brendan.scot
(kget konversation kopete krdc ktorrent libktorrent): Update to 21.08.2.

(choqok): [inputs]: Use breeze-icons instead of oxygen-icons as default.
[home-page]: Lint URL.

(kget): [inputs]: Use breeze-icons instead of oxygen-icons as default.
[native-inputs]: Move kdoctools here.
[arguments]: Disable one failing test.
[description]: Lint.

(konversation): [inputs]: Add karchive, knewstuff. Use breeze-icons
instead of oxygen-icons as default.
[home-page]: Lint URL.

(kopete): [inputs]: Add ksyntaxhighlighting, mediastreamer2.
[home-page]: Lint URL.

(krdc): [inputs]: Add kbookmarks. Use breeze-icons instead of
oxygen-icons as default.
[home-page]: Lint URL.

(ktorrent): [inputs]: Add qtwebengine. Use breeze-icons instead of
oxygen-icons as default.
[native-inputs]: Add pkg-config.
[home-page]: Lint URL.

(libktorrent): [arguments]: Disable failing test.
---
gnu/packages/kde-internet.scm | 92 +++++++++++++++++++++--------------
1 file changed, 56 insertions(+), 36 deletions(-)

Toggle diff (316 lines)
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index af0aba5b9a..146f33f695 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages kde-pim)
   #:use-module (gnu packages libidn)
+  #:use-module (gnu packages linphone)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages messaging)
   #:use-module (gnu packages mp3)
@@ -69,6 +71,7 @@
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("attica" ,attica)
+       ("breeze-icons" ,breeze-icons) ; default icon set
        ("kcmutils" ,kcmutils)
        ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
@@ -86,7 +89,6 @@
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ;; TODO: telepathy
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("purpose" ,purpose)
        ("qca" ,qca)
        ("qoauth" ,qoauth)
@@ -94,7 +96,7 @@
        ("qtnetworkauth" ,qtnetworkauth)
        ("qtwebkit" ,qtwebkit)
        ("sonnet" ,sonnet)))
-    (home-page "https://kde.org/applications/internet/org.kde.choqok")
+    (home-page "https://apps.kde.org/choqok/")
     (synopsis "Micro-Blogging Client")
     (description "Choqok is a fast, efficient and simple to use micro-blogging
 client for KDE.  It currently supports the twitter.com and identi.ca
@@ -117,20 +119,22 @@ Other notable features include:
 (define-public kget
   (package
     (name "kget")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kget-" version ".tar.xz"))
        (sha256
-        (base32 "1swx58wcig8zq8ibhczhcw7l8mqjm7pq8zca9gmny9kda5q04f5m"))))
+        (base32 "11h073nkk5axr263wz5wjq8pdad2wk3nmhixx12ilkqqinb0pi6h"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("boost" ,boost)
+       ("breeze-icons" ,breeze-icons) ; default icon set
        ("gmp" ,gmp)
        ("gpgme" ,gpgme)
        ("kcmutils" ,kcmutils)
@@ -141,7 +145,6 @@ Other notable features include:
        ("kcrash" ,kcrash)
        ("kdbusaddons" ,kdbusaddons)
        ("kdelibs4support" ,kdelibs4support) ;; KLocale
-       ("kdoctools" ,kdoctools)
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
        ("kio" ,kio)
@@ -159,16 +162,22 @@ Other notable features include:
        ("libktorrent" ,libktorrent)
        ;; TODO: libmms
        ;; TODO: LibKWorkspace - plasma-workspace?
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("qca" ,qca)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)
-       ))
+       ("qtbase" ,qtbase-5)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; FIXME: One test fails.
+               (invoke "ctest" "-E" "schedulertest"))
+             #t)))))
     (home-page "http://www.kde.org/")
     (synopsis "Versatile and user-friendly download manager")
     (description "KGet is an advanced download manager with support for
 Metalink and Bittorrent.  Downloads are added to the list, where they can be
-paused, queued, or scheduled for later. KGet supports download via FTP anf
+paused, queued, or scheduled for later.  KGet supports download via FTP anf
 HTTP(S) as well as pausing downloads.
 
 This package is part of the KDE networking module.")
@@ -178,20 +187,21 @@ This package is part of the KDE networking module.")
 (define-public konversation
   (package
     (name "konversation")
-    (version "1.7.7")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/konversation/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/konversation-" version ".tar.xz"))
        (sha256
-        (base32 "19qqq9s8k0cl71ib33xn07f26j5ji2g4336jk65im6452cf1dv27"))))
+        (base32 "1blaxxpp0831frw2v4ylvq23ffyqabbq1zcqj0v4kq736acdl8pa"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)))
     (inputs
-     `(("karchive" ,karchive)
+     `(("breeze-icons" ,breeze-icons) ; default icon set
+       ("karchive" ,karchive)
        ("kbookmarks" ,kbookmarks)
        ("kconfig" ,kconfig)
        ("kconfigwidgets" ,kconfigwidgets)
@@ -205,19 +215,19 @@ This package is part of the KDE networking module.")
        ("kidletime" ,kidletime)
        ("kio" ,kio)
        ("kitemviews" ,kitemviews)
+       ("knewstuff" ,knewstuff)
        ("knotifications" ,knotifications)
        ("knotifyconfig" ,knotifyconfig)
        ("kparts" ,kparts)
        ("kwallet" ,kwallet)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
        ("qtbase" ,qtbase-5)
        ("qca" ,qca)
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
-    (home-page "https://kde.org/applications/internet/org.kde.konversations")
+    (home-page "https://konversation.kde.org/")
     (synopsis "Graphical Internet Relay Chat (IRC) client for KDE")
     (description "Konversation is a graphical Internet Relay Chat client (IRC)
 with KDE support.
@@ -249,14 +259,14 @@ Features are:
 (define-public kopete
   (package
     (name "kopete")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kopete-" version ".tar.xz"))
        (sha256
-        (base32 "149gi9hkyl825kf046iqkam3gkzfwdc2sihbf8gs6njachzvb81y"))))
+        (base32 "015pjfc5kxhm5nmjv8fx4jlczp0l3vhqrkxgfvq83a200nlvg2pm"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -286,6 +296,7 @@ Features are:
        ("knotifyconfig" ,knotifyconfig)
        ("kparts" ,kparts)
        ("kpimtextedit" ,kpimtextedit)
+       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
        ("ktexteditor" ,ktexteditor)
        ("kwallet" ,kwallet)
        ;; TODO: Libgadu
@@ -296,7 +307,7 @@ Features are:
        ("libsrtp" ,libsrtp)
        ("libxml2" ,libxml2)
        ("libxstl" ,libxslt)
-       ;; TODO: Mediastreamer
+       ("mediastreamer2" ,mediastreamer2)
        ("openssl" ,openssl)
        ("ortp" ,ortp)
        ("phonon" ,phonon)
@@ -308,7 +319,7 @@ Features are:
        ;; TODO: Xmms
        ("zlib" ,zlib)))
     ;; TODO: enable video support
-    (home-page "https://kde.org/applications/internet/org.kde.kopete")
+    (home-page "https://apps.kde.org/kopete/")
     (synopsis "Instant messaging and chat application")
     (description "Kopete is an instant messenger supporting Jabber/XMPP ,AIM,
 ICQ, Gadu-Gadu, Novell GroupWise Messenger, and more.  It is designed to be a
@@ -327,21 +338,22 @@ This package is part of the KDE networking module.")
 (define-public krdc
   (package
     (name "krdc")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/krdc-" version ".tar.xz"))
        (sha256
-        (base32 "1hp23k3nsrcxpv2qiynjgm71zn3l6ds00cpd4frc68szgiblrw9r"))))
+        (base32 "0zrpfbs4r0d4wnficmhn0av7877hbrl4jvxpi0qiy2gdc7zksnbd"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)))
     (inputs
-     `(("kbookmarks" ,kbookmarks)
+     `(("breeze-icons" ,breeze-icons) ; default icon set
        ("freerdp" ,freerdp)
+       ("kbookmarks" ,kbookmarks)
        ("kcmutils" ,kcmutils)
        ("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
@@ -357,9 +369,8 @@ This package is part of the KDE networking module.")
        ("kxmlgui" ,kxmlgui)
        ("libssh2" ,libssh)
        ;; TODO: libvnc{server,client} - is not tigervnc-{server,client}
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("qtbase" ,qtbase-5)))
-    (home-page "https://kde.org/applications/internet/org.kde.krdc")
+    (home-page "https://apps.kde.org/krdc/")
     (synopsis "Remote desktop client")
     (description "KRDC is a client application that allows you to view or even
 control the desktop session on another machine that is running a compatible
@@ -372,20 +383,22 @@ This package is part of the KDE networking module.")
 (define-public ktorrent
   (package
     (name "ktorrent")
-    (version "5.1.2")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/ktorrent/" version
-                           "/ktorrent-" version ".tar.xz"))
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/ktorrent-" version ".tar.xz"))
        (sha256
-        (base32 "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534"))))
+        (base32 "1nd72jcvsc0kabd23ddy93dxp59ihg5npa8r3vbzvic89xlpkivi"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+       ("kdoctools" ,kdoctools)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("boost" ,boost)
+       ("breeze-icons" ,breeze-icons) ; default icon set
        ("gmp" ,gmp)
        ("karchive" ,karchive)
        ("kcmutils" ,kcmutils)
@@ -410,15 +423,15 @@ This package is part of the KDE networking module.")
        ("libgcrypt" ,libgcrypt)
        ("libktorrent" ,libktorrent)
        ;; TODO: LibKWorkspace -> plasma-workspace?
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
        ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)
+       ("qtwebengine" ,qtwebengine)
        ("qtwebkit" ,qtwebkit)
        ("solid" ,solid)
        ("syndication" ,syndication)
        ("taglib" ,taglib)))
-    (home-page "https://kde.org/applications/internet/org.kde.ktorrent")
+    (home-page "https://apps.kde.org/ktorrent/")
     (synopsis "BitTorrent client")
     (description "KTorrent is a BitTorrent application by KDE which allows you
 to download files using the BitTorrent protocol.  It enables you to run
@@ -429,15 +442,14 @@ a full-featured client for BitTorrent.")
 (define-public libktorrent
   (package
     (name "libktorrent")
-    (version "2.1.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde//stable/ktorrent/"
-                           (package-version ktorrent)
-                           "/libktorrent-" version ".tar.xz"))
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/libktorrent-" version ".tar.xz"))
        (sha256
-        (base32 "0051zh8bb4p9wmcfn5ql987brhsaiw9880xdck7b5dm1a05mri2w"))))
+        (base32 "16rx0na7gy03c0qbwy07q7si35z62p0pq7fcvf3ggr594akwz4kl"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -452,6 +464,14 @@ a full-featured client for BitTorrent.")
        ("qca" ,qca)
        ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? ;; FIXME: test fails inconsistently.
+               (invoke "ctest" "-E" "superseedtest"))
+             #t)))))
     (home-page "https://invent.kde.org/network/libktorrent")
     (synopsis "BitTorrent protocol library for C++ / Qt 5 / KDE Frameworks")
     (description "The KTorrent library supports connectivity to HTTP and UDP
-- 
2.33.0
B
B
Brendan Tildesley wrote on 15 Oct 2021 11:30
[PATCH core-updates-frozen 14/19] gnu: KDE Utils: Update to 21.08.2.
(address . 50862@debbugs.gnu.org)
20211015093015.5834-15-mail@brendan.scot
(ark kate kmag kmousetool kmouth okteta sweeper): Update to 21.08.2.

(ark): [home-page]: Lint URL.

(kate): [inputs]: Add ksyntaxhighlighting.
Use breeze-icons over oxygen-icons as default.
[arguments]: Enable all tests that pass.

(kmag): [inputs]: Use breeze-icons over oxygen-icons as default.
[home-page]: Lint URL.

(kmousetool, kmouth, kronometer, krusader, rsibreak, sweeper):
[inputs]: Use breeze-icons over oxygen-icons as default.
[home-page]: Lint URL.

(kxstitch): [home-page]: Lint URL.

(okteta): Update to 0.26.6.
[origin]: Update URI.
[inputs]: Use breeze-icons over oxygen-icons as default. Add
qtdeclarative.
[home-page]: Lint URL.

(smb4k): Update to 3.1.1.
[origin]: File downloads as "download" and thus can't be extracted
without renaming it.
[inputs]: Add kdnssd. Use breeze-icons over oxygen-icons as default.
---
gnu/packages/kde-utils.scm | 91 +++++++++++++++++++++-----------------
1 file changed, 50 insertions(+), 41 deletions(-)

Toggle diff (329 lines)
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index 47e25409ee..1e50a9618f 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -40,14 +40,14 @@
 (define-public ark
   (package
     (name "ark")
-    (version "20.04.1")
+    (version "21.08.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/release-service/" version
                                   "/src/ark-" version ".tar.xz"))
               (sha256
                (base32
-                "0g5bfa1lc7mhrc2ngd4ldf33dpwr7gqrj95kp897pf632wwj23iw"))
+                "0hxzd0qr07wyz5v76nj4qj4db4lav53xapknmakif1fkghj1r51g"))
               ;; The libarchive package in Guix does not support
               ;; xar; disable related tests.
               (patches (search-patches "ark-skip-xar-test.patch"))))
@@ -106,7 +106,7 @@
        ("unzip" ,unzip)
        ("zip" ,zip)
        ("zstd" ,zstd)))
-    (home-page "https://apps.kde.org/en/ark")
+    (home-page "https://apps.kde.org/ark/")
     (synopsis "Graphical archiving tool")
     (description "Ark is a graphical file compression/decompression utility
 with support for multiple formats, including tar, gzip, bzip2, rar and zip, as
@@ -116,14 +116,14 @@ well as CD-ROM images.")
 (define-public kate
   (package
     (name "kate")
-    (version "20.04.1")
+    (version "21.08.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kate-" version ".tar.xz"))
        (sha256
-        (base32 "0nrby307syrqlxrf9lwdzc9c15ifw47418qwszqwg345ma2pww7i"))))
+        (base32 "1cm6iq3cqmp0kvsxhv0vlqy1dyzmis9fb0a6298q0lyjkmsri26n"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -142,23 +142,30 @@ well as CD-ROM images.")
        ("kio" ,kio)
        ("kjobwidgets" ,kjobwidgets)
        ("kparts" ,kparts)
+       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
        ("ktexteditor" ,ktexteditor)
        ("kwallet" ,kwallet)
        ("plasma-framework" ,plasma-framework)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("breeze-icons" ,breeze-icons) ;; default icon set
        ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)))