summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi25
-rw-r--r--gnu/local.mk10
-rw-r--r--gnu/packages/calendar.scm23
-rw-r--r--gnu/packages/certs.scm4
-rw-r--r--gnu/packages/cups.scm8
-rw-r--r--gnu/packages/databases.scm34
-rw-r--r--gnu/packages/dejagnu.scm4
-rw-r--r--gnu/packages/freedesktop.scm4
-rw-r--r--gnu/packages/gl.scm23
-rw-r--r--gnu/packages/gnome.scm3
-rw-r--r--gnu/packages/gstreamer.scm107
-rw-r--r--gnu/packages/image.scm4
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/kde-frameworks.scm158
-rw-r--r--gnu/packages/kde-internet.scm493
-rw-r--r--gnu/packages/kde-pim.scm1117
-rw-r--r--gnu/packages/kde-plasma.scm27
-rw-r--r--gnu/packages/kde-systemtools.scm312
-rw-r--r--gnu/packages/kde-utils.scm16
-rw-r--r--gnu/packages/kde.scm58
-rw-r--r--gnu/packages/linux.scm4
-rw-r--r--gnu/packages/nss.scm6
-rw-r--r--gnu/packages/patches/akonadi-Revert-Make-installation-properly-relocatabl.patch49
-rw-r--r--gnu/packages/patches/akonadi-paths.patch49
-rw-r--r--gnu/packages/patches/akonadi-timestamps.patch14
-rw-r--r--gnu/packages/patches/choqok-Fix-building-under-Qt-5.13.patch89
-rw-r--r--gnu/packages/patches/evolution-data-server-libical-compat.patch36
-rw-r--r--gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch24
-rw-r--r--gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch15
-rw-r--r--gnu/packages/pretty-print.scm4
-rw-r--r--gnu/packages/qt.scm138
-rw-r--r--gnu/packages/rust.scm73
-rw-r--r--gnu/packages/tls.scm4
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/web.scm45
-rw-r--r--gnu/packages/xdisorg.scm4
-rw-r--r--gnu/packages/xorg.scm8
-rw-r--r--guix/build/qt-build-system.scm14
38 files changed, 2597 insertions, 417 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 956c25ba9e..bd9d896c78 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -47,7 +47,7 @@ Copyright @copyright{} 2017 Thomas Danckaert@*
 Copyright @copyright{} 2017 humanitiesNerd@*
 Copyright @copyright{} 2017 Christopher Allan Webber@*
 Copyright @copyright{} 2017, 2018, 2019 Marius Bakke@*
-Copyright @copyright{} 2017, 2019 Hartmut Goebel@*
+Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*
 Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@*
 Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@*
 Copyright @copyright{} 2017 George Clemmer@*
@@ -6448,10 +6448,24 @@ Which Perl package is used can be specified with @code{#:perl}.
 This variable is exported by @code{(guix build-system qt)}.  It
 is intended for use with applications using Qt or KDE.
 
-This build system adds the phase @code{qt-wrap} to the ones defined by
-@code{cmake-build-system}, after the @code{install} phase.
+This build system adds the following two phases to the ones defined by
+@code{cmake-build-system}:
 
-This phase searches for Qt5 plugin paths, QML paths and some XDG in the inputs
+@table @code
+@item check-setup
+The phase @code{check-setup} prepares the environment for running
+the checks as commonly used by Qt test programs.
+For now this only sets some environment variables:
+@code{QT_QPA_PLATFORM=offscreen},
+@code{DBUS_FATAL_WARNINGS=0} and
+@code{CTEST_OUTPUT_ON_FAILURE=1}.
+
+This phase is added before the @code{check} phase.
+It's a separate phase to ease adjusting if necessary.
+
+@item qt-wrap
+The phase @code{qt-wrap}
+searches for Qt5 plugin paths, QML paths and some XDG in the inputs
 and output.  In case some path is found, all programs in the output's
 @file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories
 are wrapped in scripts defining the necessary environment variables.
@@ -6461,6 +6475,9 @@ by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter.
 This is useful when an output is known not to contain any Qt binaries, and
 where wrapping would gratuitously add a dependency of that output on Qt, KDE,
 or such.
+
+This phase is added after the @code{install} phase.
+@end table
 @end defvr
 
 @defvr {Scheme Variable} r-build-system
diff --git a/gnu/local.mk b/gnu/local.mk
index c3b42fb638..125118bc55 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -283,8 +283,11 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/kawa.scm				\
   %D%/packages/kde.scm				\
   %D%/packages/kde-frameworks.scm		\
+  %D%/packages/kde-internet.scm			\
   %D%/packages/kde-multimedia.scm		\
+  %D%/packages/kde-pim.scm			\
   %D%/packages/kde-plasma.scm			\
+  %D%/packages/kde-systemtools.scm		\
   %D%/packages/kde-utils.scm			\
   %D%/packages/kerberos.scm			\
   %D%/packages/key-mon.scm			\
@@ -706,6 +709,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/aegisub-icu59-include-unistr.patch	\
   %D%/packages/patches/aegisub-boost68.patch                    \
   %D%/packages/patches/agg-am_c_prototype.patch			\
+  %D%/packages/patches/akonadi-paths.patch		\
+  %D%/packages/patches/akonadi-Revert-Make-installation-properly-relocatabl.patch \
+  %D%/packages/patches/akonadi-timestamps.patch		\
   %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch	\
   %D%/packages/patches/amule-crypto-6.patch			\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
@@ -766,6 +772,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
   %D%/packages/patches/ceph-volume-respect-PATH.patch		\
   %D%/packages/patches/chmlib-inttypes.patch			\
+  %D%/packages/patches/choqok-Fix-building-under-Qt-5.13.patch	\
   %D%/packages/patches/clamav-config-llvm-libs.patch		\
   %D%/packages/patches/clamav-system-tomsfastmath.patch		\
   %D%/packages/patches/clang-3.5-libc-search-path.patch		\
@@ -838,6 +845,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/eudev-rules-directory.patch		\
   %D%/packages/patches/evilwm-lost-focus-bug.patch		\
   %D%/packages/patches/evolution-data-server-locales.patch	\
+  %D%/packages/patches/evolution-data-server-libical-compat.patch	\
   %D%/packages/patches/exiv2-CVE-2017-14860.patch		\
   %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch	\
   %D%/packages/patches/extundelete-e2fsprogs-1.44.patch		\
@@ -1063,6 +1071,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/kodi-increase-test-timeout.patch		\
   %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch		\
   %D%/packages/patches/kodi-skip-test-449.patch		\
+  %D%/packages/patches/konversation-Fix-build-with-Qt-5.11.patch	\
   %D%/packages/patches/laby-make-install.patch			\
   %D%/packages/patches/lcalc-default-parameters-1.patch		\
   %D%/packages/patches/lcalc-default-parameters-2.patch		\
@@ -1186,7 +1195,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/mozjs38-tracelogger.patch		\
   %D%/packages/patches/mozjs38-version-detection.patch		\
   %D%/packages/patches/mrrescue-support-love-11.patch		\
-  %D%/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch \
   %D%/packages/patches/mtools-mformat-uninitialized.patch	\
   %D%/packages/patches/mumps-build-parallelism.patch		\
   %D%/packages/patches/mumps-shared-libseq.patch		\
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 5e7ac66260..060e4d18ad 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,7 +51,7 @@
 (define-public libical
   (package
     (name "libical")
-    (version "3.0.6")
+    (version "3.0.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -58,7 +59,22 @@
                     version "/libical-" version ".tar.gz"))
               (sha256
                (base32
-                "15sdmh8w4vszd7jhv9fdpd48anpkniq2k1jw7siy9v1jnz1232jw"))))
+                "1z33wzaazbd7drl6qbh1750whd78xl2cg0gjnxyya9m83vgndgha"))
+              (patches
+               ;; Add a patch slated for 3.0.8 which preserves backwards-
+               ;; compatibility in the icalattach_new_from_data() function,
+               ;; which accidentally changed in 3.0.7 and could break some uses.
+               ;; https://gitlab.gnome.org/GNOME/evolution-data-server/issues/185
+               ;; http://lists.infradead.org/pipermail/libical-devel/2020-January/000907.html
+               (list (origin
+                       (method url-fetch)
+                       (uri (string-append
+                             "https://github.com/libical/libical/commit/"
+                             "ae394010c889e4c185160da5e81527849f9de350.patch"))
+                       (file-name "libical-3.0.7-preserve-icalattach-api.patch")
+                       (sha256
+                        (base32
+                         "0v8qcxn8a6sh78grzxd61j9478928dx38l5mf8mkdrbxv47vmvvp")))))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; test suite appears broken
@@ -67,7 +83,8 @@
        (modify-phases %standard-phases
          (add-before 'configure 'patch-paths
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; FIXME: This should be patched to use TZDIR so we can drop
+             ;; TODO: libical 3.1.0 supports using TZDIR instead of a hard-coded
+             ;; zoneinfo database.  When that is released we can drop
              ;; the tzdata dependency.
              (let ((tzdata (assoc-ref inputs "tzdata")))
                (substitute* "src/libical/icaltz-util.c"
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 18be845eec..864fe5def1 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -76,7 +76,7 @@
 (define-public nss-certs
   (package
     (name "nss-certs")
-    (version "3.48")
+    (version "3.49.1")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -87,7 +87,7 @@
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "1b7qs1q7jqhw9dvkdznanzhc5dyq4bwx0biywszy3qx4hqm8571z"))))
+                "0vh23g16ldvnsrn2dnvdl2i133kizi660r7ilb00vfq2kvj45anr"))))
     (build-system gnu-build-system)
     (outputs '("out"))
     (native-inputs
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 0adca9addb..8fbb2ee4f6 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -58,7 +58,7 @@
 (define-public cups-filters
   (package
     (name "cups-filters")
-    (version "1.25.13")
+    (version "1.26.2")
     (source(origin
               (method url-fetch)
               (uri
@@ -66,7 +66,7 @@
                               "cups-filters-" version ".tar.xz"))
               (sha256
                (base32
-                "1z3b7p6pp6yzvzl2nip9q0gn4fr5k9qwpnnhqqkiaaf3b1nfswjj"))
+                "1a8x6zgw3m4717gw3842gsrgjl05q92xygy4rp5vwr1d1xjmyxp1"))
               (modules '((guix build utils)))
               (snippet
                ;; install backends, banners and filters to cups-filters output
@@ -187,7 +187,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
 (define-public cups-minimal
   (package
     (name "cups-minimal")
-    (version "2.3.0")
+    (version "2.3.1")
     (source
      (origin
        (method url-fetch)
@@ -195,7 +195,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
                            version "/cups-" version "-source.tar.gz"))
        (sha256
         (base32
-         "19d1jpdpxy0fclq37pchi7ldnw9dssxx3zskcgqai3h0rwlh5bxc"))))
+         "1kkpmj17205j8w9hdff2bfpk6lwdmr3gx0j4r35nhgvya24rvjhv"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index ed1d1fe95b..5137e31b05 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -881,6 +881,11 @@ Language.")
               (rename-file (string-append out "/bin/mysql_config")
                            (string-append dev "/bin/mysql_config"))
 
+
+              (substitute*  (string-append out "/bin/mysql_install_db")
+                (("\\$basedir/share/mysql")
+                 (string-append lib "/share/mysql")))
+
               ;; Embed an absolute reference to OpenSSL in mysql_config
               ;; and the pkg-config file to avoid propagation.
               (substitute* (list (string-append dev "/bin/mysql_config")
@@ -916,33 +921,6 @@ Language.")
 as a drop-in replacement of MySQL.")
     (license license:gpl2)))
 
-;; TODO: mysql_install_db is broken in MariaDB.  This package is here as
-;; a workaround for packages that need it.  Merge with 'mariadb' in the next
-;; rebuild cycle.
-(define-public mariadb/fixed-install-db
-  (hidden-package
-   (package/inherit
-    mariadb
-    (name "mariadb-fixed")
-    (native-inputs '())
-    (inputs
-     `(("mariadb" ,mariadb)
-       ("mariadb:lib" ,mariadb "lib")))
-    (outputs '("out"))
-    (build-system trivial-build-system)
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules ((guix build utils)))
-         (let ((out (assoc-ref %outputs "out")))
-           (copy-recursively (assoc-ref %build-inputs "mariadb") out)
-           (substitute*  (string-append out "/bin/mysql_install_db")
-             (("\\$basedir/share/mysql")
-              (string-append (assoc-ref %build-inputs "mariadb:lib")
-                             "/share/mysql")))
-           #t)))))))
-
 (define-public mariadb-connector-c
   (package
     (name "mariadb-connector-c")
@@ -3305,7 +3283,7 @@ simultaneous database connections by using this framework.")
      `(;; For tests.
        ("inetutils" ,inetutils)
        ("glibc-locales" ,glibc-locales)
-       ("mariadb" ,mariadb/fixed-install-db)))
+       ("mariadb" ,mariadb)))
     (inputs
      `(("libdbi" ,libdbi)
        ("mariadb:dev" ,mariadb "dev")
diff --git a/gnu/packages/dejagnu.scm b/gnu/packages/dejagnu.scm
index f2aca50f1a..0dee89dfc1 100644
--- a/gnu/packages/dejagnu.scm
+++ b/gnu/packages/dejagnu.scm
@@ -28,7 +28,7 @@
 (define-public dejagnu
   (package
     (name "dejagnu")
-    (version "1.6.1")
+    (version "1.6.2")
     (source
      (origin
       (method url-fetch)
@@ -36,7 +36,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "14hnq1mh91vqprc43xdy4f15sycw6fbajrh7zi6cw2kyg6xjhnxz"))))
+        "0qfj2wd4qk1yn9yzam6g8nmyxfazcc0knjyyibycb2ainkhp21hd"))))
     (build-system gnu-build-system)
     (inputs `(("expect" ,expect)))
     (arguments
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 01466b8ec5..63d7d6031f 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -180,14 +180,14 @@ freedesktop.org project.")
 (define-public libinput
   (package
     (name "libinput")
-    (version "1.14.3")
+    (version "1.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://freedesktop.org/software/libinput/"
                                   "libinput-" version ".tar.xz"))
               (sha256
                (base32
-                "1dy58j8dvr7ri34bx0lppmh5638m956azgwk501w373hi42kmsqg"))))
+                "1qa3b2fd4pv8ysf0mgwnyhqv9v48zgy3sy0q3a3vxcmwcvpizgxz"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=false")
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 077b009688..d0718d5d45 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -96,7 +96,7 @@ as ASCII text.")
 (define-public freeglut
   (package
     (name "freeglut")
-    (version "3.0.0")
+    (version "3.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -104,16 +104,15 @@ as ASCII text.")
                     version "/freeglut-" version ".tar.gz"))
               (sha256
                (base32
-                "18knkyczzwbmyg8hr4zh8a1i5ga01np2jzd1rwmsh7mh2n2vwhra"))))
+                "0s6sk49q8ijgbsrrryb7dzqx2fa744jhx1wck5cz5jia2010w06l"))))
     (build-system cmake-build-system)
-    (arguments '(#:tests? #f)) ; no test target
-    (inputs `(("mesa" ,mesa)
-              ("libx11" ,libx11)
+    (arguments
+     '(#:tests? #f                      ;no test target
+       #:configure-flags '("-DFREEGLUT_BUILD_STATIC_LIBS=OFF")))
+    (inputs `(("libx11" ,libx11)
               ("libxi" ,libxi)
               ("libxrandr" ,libxrandr)
-              ("libxxf86vm" ,libxxf86vm)
-              ("xorgproto" ,xorgproto)
-              ("xinput" ,xinput)))
+              ("libxxf86vm" ,libxxf86vm)))
     (propagated-inputs
      ;; Headers from Mesa and GLU are needed.
      `(("glu" ,glu)
@@ -147,7 +146,9 @@ the X-Consortium license.")
               (sha256
                (base32
                 "16lrxxxd9ps9l69y3zsw6iy0drwjsp6m26d1937xj71alqk6dr6x"))))
-    (build-system gnu-build-system)))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))))
 
 (define-public ftgl
   (package
@@ -230,7 +231,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
     (name "mesa")
-    (version "19.2.7")
+    (version "19.3.2")
     (source
       (origin
         (method url-fetch)
@@ -242,7 +243,7 @@ also known as DXTn or DXTC) for Mesa.")
                                   version "/mesa-" version ".tar.xz")))
         (sha256
          (base32
-          "17jp8ghipgz62vqqz5llskxypkcmgf8gnlgnj0pyvnbgi6vryyg3"))
+          "1hg1gvcwvayksrdh9z8rfz66h3z1ffspmm2qgyy2nd8n8qrfwfjf"))
         (patches
          (search-patches "mesa-skip-disk-cache-test.patch"))))
     (build-system meson-build-system)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e19caf67f7..2f6029fba5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6256,7 +6256,8 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
-              (patches (search-patches "evolution-data-server-locales.patch"))
+              (patches (search-patches "evolution-data-server-locales.patch"
+                                       "evolution-data-server-libical-compat.patch"))
               (sha256
                (base32
                 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 63b4179bc6..1e26a3ce3e 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -116,19 +116,41 @@ arrays of data.")
       (sha256
        (base32
         "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
-     `(#:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html"))))
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; FIXME: Since switching to the meson-build-system, two tests
+         ;; started failing on i686.  See
+         ;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/499>.
+         ,@(if (string-prefix? "i686" (or (%current-target-system)
+                                          (%current-system)))
+               `((add-after 'unpack 'disable-some-tests
+                   (lambda _
+                     (substitute* "tests/check/gst/gstsystemclock.c"
+                       (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*")
+                        "")
+                       (("tcase_add_test \\(tc_chain, test_stress_reschedule.*")
+                      ""))
+                     #t)))
+               '())
+         (add-after 'install 'move-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share"))
+               (copy-recursively (string-append out "/share/gtk-doc")
+                                 (string-append doc "/share/gtk-doc"))
+               (delete-file-recursively (string-append out "/share/gtk-doc"))
+               #t))))))
     (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
@@ -163,8 +185,7 @@ This package provides the core library and elements.")
       (sha256
        (base32
         "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
-    (build-system gnu-build-system)
-    (outputs '("out" "doc"))
+    (build-system meson-build-system)
     (propagated-inputs
      `(("glib" ,glib)              ;required by gstreamer-sdp-1.0.pc
        ("gstreamer" ,gstreamer)    ;required by gstreamer-plugins-base-1.0.pc
@@ -198,11 +219,10 @@ This package provides the core library and elements.")
         ("gobject-introspection" ,gobject-introspection)
         ("python-wrapper" ,python-wrapper)))
     (arguments
-     `(#:parallel-tests? #f ; 'pipelines/tcp' fails in parallel
-       #:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html"))
+     '(#:configure-flags '("-Dgl=disabled"
+                           ;; FIXME: Documentation fails to build without
+                           ;; enabling GL above, which causes other problems.
+                           "-Ddoc=false")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch
@@ -230,7 +250,7 @@ for the GStreamer multimedia library.")
       (sha256
        (base32
         "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (inputs
      `(("aalib" ,aalib)
        ("cairo" ,cairo)
@@ -263,6 +283,22 @@ for the GStreamer multimedia library.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ,@(if (string-prefix? "arm" (or (%current-target-system)
+                                         (%current-system)))
+               ;; FIXME: These tests started failing on armhf after switching to Meson.
+               ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/689
+               `((add-after 'unpack 'disable-tests-for-armhf
+                   (lambda _
+                     (substitute* "tests/check/elements/rtpbin_buffer_list.c"
+                       (("tcase_add_test \\(tc_chain, test_bufferlist\\);")
+                        ""))
+                     (substitute* "tests/check/elements/rtpulpfec.c"
+                       (("tcase_add_loop_test.*rtpulpfecdec_recovered_from_many.*")
+                        "")
+                       (("tcase_add.*rtpulpfecdec_recovered_using_recovered_packet.*")
+                        ""))
+                     #t)))
+               '())
          (add-after
           'unpack 'disable-failing-tests
           (lambda _
@@ -291,19 +327,35 @@ developers consider to have good quality code and correct functionality.")
               (sha256
                (base32
                 "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
-    (outputs '("out" "doc"))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     '(#:tests? #f ; XXX: 13 of 53 tests fail
-       #:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html"))))
+     `(#:phases
+       (modify-phases %standard-phases
+         ,@(if (string-prefix? "arm" (or (%current-target-system)
+                                         (%current-system)))
+               ;; Disable test that fails on ARMv7.
+               ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1188
+               `((add-after 'unpack 'disable-asfmux-test
+                   (lambda _
+                     (substitute* "tests/check/meson.build"
+                       (("\\[\\['elements/asfmux\\.c'\\]\\],")
+                        ""))
+                     #t)))
+               '())
+         (add-after 'unpack 'disable-failing-test
+           (lambda _
+             ;; FIXME: Why is this failing.
+             (substitute* "tests/check/meson.build"
+               ((".*elements/dash_mpd\\.c.*")
+                ""))
+             #t)))))
     (propagated-inputs
      `(("gst-plugins-base" ,gst-plugins-base)))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection)
+       ;; TODO: Enable documentation for 1.18.
+       ;;("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
        ("python" ,python)))
     (inputs
@@ -367,7 +419,7 @@ par compared to the rest.")
        (sha256
         (base32
          "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (inputs
      `(("gst-plugins-base" ,gst-plugins-base)
        ("liba52" ,liba52)
@@ -408,9 +460,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
                   ;; Drop bundled ffmpeg.
                   (delete-file-recursively "gst-libs/ext/libav")
                   #t))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:configure-flags '("--with-system-libav")))
+    (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python" ,python)))
@@ -438,15 +488,16 @@ compression formats through the use of the libav library.")
               (sha256
                (base32
                 "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:modules ((guix build gnu-build-system)
+     `(#:modules ((guix build meson-build-system)
+                  (guix build utils)
                   ((guix build python-build-system) #:prefix python:))
-       #:imported-modules (,@%gnu-build-system-modules
+       #:imported-modules (,@%meson-build-system-modules
                            (guix build python-build-system))
        #:configure-flags
        (list (string-append
-              "--with-pygi-overrides-dir="
+              "-Dpygi-overrides-dir="
               (python:site-packages %build-inputs %outputs) "gi/overrides"))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 45055858b4..a79d63fb5d 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1102,7 +1102,7 @@ language bindings to VIGRA.")
 (define-public libwebp
   (package
     (name "libwebp")
-    (version "1.0.3")
+    (version "1.1.0")
     (source
      (origin
        ;; No tarballs are provided for >0.6.1.
@@ -1113,7 +1113,7 @@ language bindings to VIGRA.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1l8h9d3z3kla567ilmymrgg8vc2n763g8qss1hah8dg832hbqkxf"))))
+         "0r2yy9if0ndvpzadk39bigvsygyqnlv0xjb9w2aj6rs534mncazz"))))
     (build-system gnu-build-system)
     (inputs
      `(("freeglut" ,freeglut)
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 715388e22c..1ea4b5bd6a 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -48,14 +48,14 @@
     ;; The 7 release series has an incompatible API, while the 6 series is still
     ;; maintained. Don't update to 7 until we've made sure that the ImageMagick
     ;; users are ready for the 7-series API.
-    (version "6.9.10-78")
+    (version "6.9.10-87")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "178sai7r0w2hwv01is25c8mxf9lc2ba0l16qm45h9vv49y5dy08q"))))
+               "09m0nx7y6j5cq13r583kp3lbsc357cc3q0kcvzbya54r5lx20a5p"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 9230bb71c0..aab54ec4fb 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -24,6 +24,7 @@
 
 (define-module (gnu packages kde-frameworks)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system qt)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -702,7 +703,7 @@ infrastructure.")
               (sha256
                (base32
                 "0k22kargqxf0j09wzk1x90b526npj8a0210ilk0n1k6spc8xa6mr"))))
-    (build-system cmake-build-system)
+    (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,
     ;; python-sip, clang-python, libclang.  Requires python-2 in all cases for
@@ -713,14 +714,6 @@ infrastructure.")
     (inputs
      `(("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Utilities for graphical user interfaces")
     (description "The KDE GUI addons provide utilities for graphical user
@@ -885,20 +878,12 @@ of applications that follow the Kirigami Human Interface Guidelines.")
               (sha256
                (base32
                 "10bhg0db9gdg2hlc02ngg1i2q7a99862d5973hxqzf620d28p5rd"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item models extending the Qt model-view framework")
     (description "KItemModels provides the following models:
@@ -944,21 +929,12 @@ model to observers
               (sha256
                (base32
                 "15h0w16wgj94kxz4vgjb34i3pyx5w1f2npj86j4d2sa0mxxpmqyz"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
     (inputs
      `(("qtbase" ,qtbase)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item views extending the Qt model-view framework")
     (description "KItemViews includes a set of views, which can be used with
@@ -979,20 +955,12 @@ to flat and hierarchical lists.")
               (sha256
                (base32
                 "11kpq34j37c1gsvj5nxhkc31bw8gw2n7nkqsfx87jw9f4v2vhmr9"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("qtbase" ,qtbase)
        ("qttools" ,qttools)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _ ; kplotting
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Data plotting library")
     (description "KPlotWidget is a QWidget-derived class that provides a virtual
@@ -1104,7 +1072,7 @@ represented by a QPoint or a QSize.")
               (sha256
                (base32
                 "1nzgv3v3kyq5jm2b9xri6qjawspr9ycxhskfvj8kkgr46dr35qyc"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)
@@ -1114,12 +1082,6 @@ represented by a QPoint or a QSize.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             #t))
          (add-before 'check 'start-xorg-server
            (lambda* (#:key inputs #:allow-other-keys)
              ;; The test suite requires a running X server.
@@ -1414,15 +1376,7 @@ system.")
               (sha256
                (base32
                 "0gqxmyxmwn2rs9f8x2z8pfmbx0mvkyh7nalnsmfqkph8f0fja9ig"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)
@@ -1573,7 +1527,7 @@ utilities.")
               (sha256
                (base32
                 "10ggypg09acc19gkvxsigfsaq8s5vqv64ada307blpzy8j74bisb"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
@@ -1581,14 +1535,6 @@ utilities.")
      `(("kconfig" ,kconfig)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("qtbase" ,qtbase)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Powerful autocompletion framework and widgets")
     (description "This framework helps implement autocompletion in Qt-based
@@ -1653,7 +1599,7 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
               (sha256
                (base32
                 "1xl3bzxfchfafcplil3g07gq1a3fnwx1i40bxp4jfsgb8d8slfwc"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
@@ -1661,14 +1607,6 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
        ("kwindowsystem" ,kwindowsystem)
        ("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Graceful handling of application crashes")
     (description "KCrash provides support for intercepting and handling
@@ -2291,7 +2229,7 @@ KCModules can be created with the KConfigWidgets framework.")
               (sha256
                (base32
                 "098xdfvnyz9bdkc6iyq5r2s4vkfdhbrri4015yzbs73j4f2wcxz5"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (propagated-inputs
      `(("kauth" ,kauth)
        ("kcodecs" ,kcodecs)
@@ -2316,11 +2254,6 @@ KCModules can be created with the KConfigWidgets framework.")
                ;; make QDirIterator follow symlinks
                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
                 (string-append a " | QDirIterator::FollowSymlinks" b)))
-             #t))
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Widgets for configuration dialogs")
@@ -2439,7 +2372,7 @@ started on demand.")
               (sha256
                (base32
                 "1w7glszd82iyw6kxzmp0568rm3qfadi7vw7gfxg4c15w5ikkvxn9"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
@@ -2461,14 +2394,6 @@ started on demand.")
        ("kxmlgui" ,kxmlgui)
        ("qtwebkit" ,qtwebkit)
        ("sonnet" ,sonnet)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (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
@@ -2594,7 +2519,7 @@ emoticons coming from different providers.")
               (sha256
                (base32
                 "1xpfvwnrj81mk3di02n37b469gxzmnk89icmcz6wwyk54m86fw76"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)
@@ -2610,14 +2535,6 @@ emoticons coming from different providers.")
        ("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Global desktop keyboard shortcuts")
     (description "KGlobalAccel allows you to have global accelerators that are
@@ -2947,7 +2864,7 @@ notifications which can be embedded in your application.")
               (sha256
                (base32
                 "0md0349r4mdm2r04p5s3pgm17v4w40r3kz58lzp6qfcw25b969nw"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (propagated-inputs
      `(("kio" ,kio)
        ("ktextwidgets" ,ktextwidgets)
@@ -2972,14 +2889,6 @@ notifications which can be embedded in your application.")
        ("qtbase" ,qtbase)
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Plugin framework for user interface components")
     (description "This library implements the framework for KDE parts, which are
@@ -2999,7 +2908,7 @@ widgets with a user-interface defined in terms of actions.")
               (sha256
                (base32
                 "1q2hh2i8hd638p907g0srdxmxm9h2ay91dmhslqzcgwnlhln4gfl"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
@@ -3012,14 +2921,7 @@ widgets with a user-interface defined in terms of actions.")
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)))
     (arguments
-     `(#:tests? #f ; FIXME: 1/3 tests fail.
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
+     `(#:tests? #f)) ; FIXME: 1/3 tests fail.
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Provides access to all contacts and aggregates them by person")
     (description "KPeople offers unified access to our contacts from different
@@ -3252,7 +3154,7 @@ library.")
               (sha256
                (base32
                 "1qb1mad5bg19xwykzpwk2b3s505ka4jkg0fsi56ri57wq8gv4qha"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (propagated-inputs
      `(("ki18n" ,ki18n)
        ("sonnet" ,sonnet)))
@@ -3272,14 +3174,6 @@ library.")
        ("kwindowsystem" ,kwindowsystem)
        ("qtbase" ,qtbase)
        ("qtspeech" ,qtspeech)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Text editing widgets")
     (description "KTextWidgets provides widgets for displaying and editing text.
@@ -3747,7 +3641,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
              name "-" version ".tar.xz"))
        (sha256
         (base32 "15f77r6dxkkvi2vxvxlwa7qz3whmz229g79bgadiwffmzxja0ywd"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("perl" ,perl)))
@@ -3775,14 +3669,6 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
        ("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)
        ("sonnet" ,sonnet)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; Make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 HTML widget and component")
     (description "KHTML is a web rendering engine, based on the KParts
@@ -3868,7 +3754,7 @@ QObjects, so you can script your applications.")
              name "-" version ".tar.xz"))
        (sha256
         (base32 "19v53h3lkys3ryrjacrdng9ak91g03b9s986xhnw1r84zy242kdm"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)
@@ -3883,14 +3769,6 @@ QObjects, so you can script your applications.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("qtbase" ,qtbase)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; Make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 plugin interface for media player features")
     (description "KMediaPlayer builds on the KParts framework to provide a
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
new file mode 100644
index 0000000000..4b0504ca5c
--- /dev/null
+++ b/gnu/packages/kde-internet.scm
@@ -0,0 +1,493 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages kde-internet)
+  #:use-module (guix build-system qt)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages kde)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages kde-pim)
+  #:use-module (gnu packages libidn)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages messaging)
+  #:use-module (gnu packages mp3)
+  #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages rdesktop)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages ssh)
+  #:use-module (gnu packages telephony)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xml))
+
+(define-public choqok
+  (package
+    (name "choqok")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/choqok/"
+                           (version-major+minor version)
+                           "/src/choqok-" version ".tar.xz"))
+       (sha256
+        (base32 "03ri4y1wzyqlixnhczsls5gmy7jzzm67bb5gz8bav51ngc32fxca"))
+       (patches (search-patches "choqok-Fix-building-under-Qt-5.13.patch"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("attica" ,attica)
+       ("kcmutils" ,kcmutils)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdewebkit" ,kdewebkit)
+       ("kemoticons" ,kemoticons)
+       ("kglobalaccel" ,kglobalaccel)
+       ("kguiaddons" ,kguiaddons)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kparts" ,kparts)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kxmlgui" ,kxmlgui)
+       ;; TODO: telepathy
+       ("oxygen-icons" ,oxygen-icons) ; default icon set
+       ("qca" ,qca)
+       ("qoauth" ,qoauth)
+       ("qtbase" ,qtbase)
+       ("qtwebkit" ,qtwebkit)
+       ("sonnet" ,sonnet)))
+    (home-page "https://kde.org/applications/internet/org.kde.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
+microblogging services.
+
+Other notable features include:
+@itemize
+@item Support for user + friends time-lines.
+@item Support for @Reply time-lines.
+@item Support for sending and receiving direct messages.
+@item Twitpic.com integration.
+@item The ability to use multiple accounts simultaneously.
+@item Support for search APIs for all services.
+@item KWallet integration.
+@item Support for automatic shortening urls with more than 30 characters.
+@item Support for configuring status lists appearance.
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public kget
+  (package
+    (name "kget")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kget-" version ".tar.xz"))
+       (sha256
+        (base32 "004qqq93iqidh2m9q2p2cwlbc2kfrz0g8a2mgd712c9p66l7s42s"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("boost" ,boost)
+       ("gmp" ,gmp)
+       ("gpgme" ,gpgme)
+       ("kcmutils" ,kcmutils)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdelibs4support" ,kdelibs4support) ;; KLocale
+       ("kdoctools" ,kdoctools)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("kitemviews" ,kitemviews)
+       ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kparts" ,kparts)
+       ("kservice" ,kservice)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libgcrypt" ,libgcrypt)
+       ("libktorrent" ,libktorrent)
+       ;; TODO: libmms
+       ;; TODO: LibKWorkspace - plasma-workspace?
+       ("oxygen-icons" ,oxygen-icons) ; default icon set
+       ("qca" ,qca)
+       ("qgpgme" ,qgpgme)
+       ("qtbase" ,qtbase)
+       ))
+    (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
+HTTP(S) as well as pausing downloads.
+
+This package is part of the KDE networking module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public konversation
+  (package
+    (name "konversation")
+    (version "1.7.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/konversation/" version
+                           "/src/konversation-" version ".tar.xz"))
+       (sha256
+        (base32 "0h098yhlp36ls6pdvs2r93ig8dv4fys62m0h6wxccprb0qrpbgv0"))
+       (patches (search-patches "konversation-Fix-build-with-Qt-5.11.patch"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("karchive" ,karchive)
+       ("kbookmarks" ,kbookmarks)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kemoticons" ,kemoticons)
+       ("kglobalaccel" ,kglobalaccel)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kidletime" ,kidletime)
+       ("kio" ,kio)
+       ("kitemviews" ,kitemviews)
+       ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kparts" ,kparts)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("oxygen-icons" ,oxygen-icons) ; default icon set
+       ("phonon" ,phonon)
+       ("qtbase" ,qtbase)
+       ("qca" ,qca)
+       ("solid" ,solid)
+       ("sonnet" ,sonnet)))
+    (home-page "https://kde.org/applications/internet/org.kde.konversations")
+    (synopsis "Graphical Internet Relay Chat (IRC) client for KDE")
+    (description "Konversation is a graphical Internet Relay Chat client (IRC)
+with KDE support.
+
+Features are:
+@itemize
+@item Standard IRC features
+@item SSL server support
+@item Bookmarking support
+@item Easy to use graphical user interface
+@item Multiple servers and channels in one single window
+@item DCC file transfer with resume support
+@item Multiple identities for different servers
+@item Text decorations and colors
+@item Pattern-based message highlighting and OnScreen Display notifications
+@item Automatic UTF-8 detection
+@item Per channel encoding support
+@item Theme support for nick icons
+@item Highly configurable
+@item Multi-language scripting support (with DCOP)
+@item Customizable command aliases
+@item NickServ-aware log-on (for registered nicknames)
+@item Smart logging
+@item Traditional or enhanced-shell-style nick completion
+@end itemize")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kopete
+  (package
+    (name "kopete")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kopete-" version ".tar.xz"))
+       (sha256
+        (base32 "088jya4v04l7r38pph1hxkr6ln4023s3ji3y8ipzdkalcx8hgr6l"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("expat" ,expat)
+       ("glib" ,glib)
+       ("gpgme" ,gpgme)
+       ("jsoncpp" ,jsoncpp)
+       ("kcmutils" ,kcmutils)
+       ("kconfig" ,kconfig)
+       ("kcontacts" ,kcontacts)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdelibs4support" ,kdelibs4support)
+       ("kdnssd" ,kdnssd)
+       ("kemoticons" ,kemoticons)
+       ("khtml" ,khtml)
+       ("ki18n" ,ki18n)
+       ("kidentitymanagement" ,kidentitymanagement)
+       ("kjs" ,kjs)
+       ;; TODO? kleopatra (additionally to libkleo)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kparts" ,kparts)
+       ("kpimtextedit" ,kpimtextedit)
+       ("ktexteditor" ,ktexteditor)
+       ("kwallet" ,kwallet)
+       ;; TODO: Libgadu
+       ("libidn" ,libidn)
+       ("libkleo" ,libkleo)
+       ;; TODO: LibMeanwhile
+       ("libotr" ,libotr)
+       ("libsrtp" ,libsrtp)
+       ("libxml2" ,libxml2)
+       ("libxstl" ,libxslt)
+       ;; TODO: Mediastreamer
+       ("openssl", openssl)
+       ("ortp" ,ortp)
+       ("phonon" ,phonon)
+       ("qca" ,qca)
+       ("qgpgme" ,qgpgme)
+       ("qtbase" ,qtbase)
+       ("speex" ,speex)
+       ("v4l-utils" ,v4l-utils)
+       ;; TODO: Xmms
+       ("zlib" ,zlib)))
+    ;; TODO: enable video support
+    (home-page "https://kde.org/applications/internet/org.kde.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
+flexible and extensible multi-protocol system suitable for personal and
+enterprise use.
+
+The goal of Kopete is to provide users with a single easy-to-use way to access
+all of their instant messaging systems.  The interface puts people first, and
+is integrated with the system address book to let you access your contacts
+from other KDE applications.
+
+This package is part of the KDE networking module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public krdc
+  (package
+    (name "krdc")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/krdc-" version ".tar.xz"))
+       (sha256
+        (base32 "1p6g994whzjz9aarzrblh70xzs3jvygd1898qxgfymndlfxaxjyl"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("kbookmarks" ,kbookmarks)
+       ("freerdp" ,freerdp)
+       ("kcmutils" ,kcmutils)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kdnssd" ,kdnssd)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libssh2" ,libssh)
+       ;; TODO: libvnc{server,client} - is not tigervnc-{server,client}
+       ("oxygen-icons" ,oxygen-icons) ; default icon set
+       ("qtbase" ,qtbase)))
+    (home-page "https://kde.org/applications/internet/org.kde.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
+server.  VNC and RDP are supported.
+
+This package is part of the KDE networking module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public ktorrent
+  (package
+    (name "ktorrent")
+    (version "5.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/ktorrent/" version
+                           "/ktorrent-" version ".tar.xz"))
+       (sha256
+        (base32 "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("boost" ,boost)
+       ("gmp" ,gmp)
+       ("karchive" ,karchive)
+       ("kcmutils" ,kcmutils)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdewebkit" ,kdewebkit)
+       ("kdnssd" ,kdnssd)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kparts" ,kparts)
+       ("kplotting" ,kplotting)
+       ("kross", kross)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libgcrypt" ,libgcrypt)
+       ("libktorrent" ,libktorrent)
+       ;; TODO: LibKWorkspace -> plasma-workspace?
+       ("oxygen-icons" ,oxygen-icons) ; default icon set
+       ("phonon" ,phonon)
+       ("qtbase" ,qtbase)
+       ("qtscript" ,qtscript)
+       ("qtwebkit" ,qtwebkit)
+       ("solid" ,solid)
+       ("syndication" ,syndication)
+       ("taglib" ,taglib)))
+    (home-page "https://kde.org/applications/internet/org.kde.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
+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 "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/libgravatar-" version ".tar.xz"))
+       (sha256
+        (base32 "1yzq9d0hzqh1hdfpnh7fp44fyjk169gvm4pqgwg24ra00z8j2d3z"))))
+    (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)))
+    (arguments
+     `(#:tests? #f)) ;; 2/7 tests fail (due to network issues?)
+    (home-page "https://cgit.kde.org/libgravatar.git")
+    (synopsis "Online avatar lookup library")
+    (description "This library allows to retrieve 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")
+    (version "2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde//stable/ktorrent/"
+                           (package-version ktorrent)
+                           "/libktorrent-" version ".tar.xz"))
+       (sha256
+        (base32 "0051zh8bb4p9wmcfn5ql987brhsaiw9880xdck7b5dm1a05mri2w"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("boost" ,boost)
+       ("gmp" ,gmp)
+       ("karchive" ,karchive)
+       ("kcrash" ,kcrash)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("libgcrypt" ,libgcrypt)
+       ("qca" ,qca)
+       ("qtbase" ,qtbase)
+       ("solid" ,solid)))
+    (home-page "https://cgit.kde.org/libktorrent.git")
+    (synopsis "BitTorrent protocol library for C++ / Qt 5 / KDE Frameworks")
+    (description "The KTorrent library supports connectivity to HTTP and UDP
+trackers, mainline DHT and the new generation Micro Transport
+Protocol (uTP).  In addition, it provides many powerful BitTorrent network
+features including but not limited to torrent downloading and seeding, torrent
+creation and downloaded data verification, magnet links, advanced peer
+management, IP blocking lists.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
new file mode 100644
index 0000000000..9d48475a17
--- /dev/null
+++ b/gnu/packages/kde-pim.scm
@@ -0,0 +1,1117 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages kde-pim)
+  #:use-module (guix build-system qt)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages databases)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages kde)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages openldap)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages search)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages xml))
+
+(define-public akonadi
+  (package
+    (name "akonadi")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/akonadi-" version ".tar.xz"))
+       (sha256
+        (base32 "0v7f1049wjnqxhwxr1443wc2cfbdqmf15xcwjz3j1m0vgdva9pyg"))
+       (patches (search-patches
+                 "akonadi-paths.patch"
+                 "akonadi-timestamps.patch"
+                 "akonadi-Revert-Make-installation-properly-relocatabl.patch"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)
+       ("shared-mime-info" ,shared-mime-info)))
+    (inputs
+     `(("boost" ,boost)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdesignerplugin" ,kdesignerplugin)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kitemviews" ,kitemviews)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ;; Do NOT add mysql or postgresql to the inputs. Otherwise the binaries
+       ;; and wrapped files will refer to them, even if the user choices none
+       ;; of these.  Executables are searched on $PATH then.
+       ("qtbase" ,qtbase)
+       ("sqlite" ,sqlite)))
+    (arguments
+     `(#:tests? #f ;; TODO 135/167 tests fail
+       #:configure-flags '("-DDATABASE_BACKEND=SQLITE") ; lightweight
+       #:modules ((ice-9 textual-ports)
+                  ,@%qt-build-system-modules)
+       #: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")))
+               (with-output-to-file "CMakeLists.txt.new"
+                 (lambda _
+                   (display
+                    (string-append
+                     "add_compile_definitions(\n"
+                     "NIX_OUT=\"" out "\"\n"
+                     ;; pin binaries for mysql backend
+                     ")\n\n"))
+                   (display
+                    (call-with-input-file "CMakeLists.txt"
+                      get-string-all))))
+               (rename-file "CMakeLists.txt.new" "CMakeLists.txt"))
+             #t)))))
+    (home-page "https://kontact.kde.org/components/akonadi.html")
+    (synopsis "Extensible cross-desktop storage service for PIM")
+    (description "Akonadi is an extensible cross-desktop Personal Information
+Management (PIM) storage service.  It provides a common framework for
+applications to store and access mail, calendars, addressbooks, and other PIM
+data.
+
+This package contains the Akonadi PIM storage server and associated
+programs.")
+    (license license:fdl1.2+)))
+
+(define-public akonadi-calendar
+  (package
+    (name "akonadi-calendar")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/akonadi-calendar-" version ".tar.xz"))
+       (sha256
+        (base32 "1550h08i8rjnbd9yrnhd9v3v68ingrag2bdxrbid62qvam0n5ihy"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("akonadi-contacts" ,akonadi-contacts)
+       ("akonadi-mime" ,akonadi-mime)
+       ("boost" ,boost)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kcalutils" ,kcalutils)
+       ("kcodecs" ,kcodecs)
+       ("kcontacts" ,kcontacts)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kidentitymanagement" ,kidentitymanagement)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kmailtransport" ,kmailtransport)
+       ("kmime" ,kmime)
+       ("kpimtextedit" ,kpimtextedit)
+       ("ksmtp" ,ksmtp)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwallet" ,kwallet)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:tests? #f))  ;; TODO: 1/1 test fails
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (synopsis "Library providing calendar helpers for Akonadi items")
+    (description "This library manages calendar specific actions for
+collection and item views.")
+    (license license:lgpl2.0+)))
+
+(define-public akonadi-contacts
+  (package
+    (name "akonadi-contacts")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/akonadi-contacts-" version ".tar.xz"))
+       (sha256
+        (base32 "1pw1s8c6dlcb103cw46p1ikvas3y8cwiwnfdny2jd3hr3rig4px9"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("boost" ,boost)
+       ("kauth" ,kauth)
+       ("kcodecs" ,kcodecs)
+       ("kcompletion" ,kcompletion)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcontacts" ,kcontacts)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kitemmodels" ,kitemmodels)
+       ("kitemviews" ,kitemviews)
+       ("kjobwidgets" ,kjobwidgets)
+       ("kmime" ,kmime)
+       ("kservice" ,kservice)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kxmlgui" ,kxmlgui)
+       ("prison" ,prison)
+       ("kio" ,kio)
+       ("qtbase" ,qtbase)
+       ("solid" ,solid)
+       ("sonnet" ,sonnet)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (synopsis "Akonadi contacts access library")
+    (description "Akonadi Contacts is a library that effectively bridges the
+type-agnostic API of the Akonadi client libraries and the domain-specific
+KContacts library.  It provides jobs, models and other helpers to make working
+with contacts and addressbooks through Akonadi easier.
+
+The library provides a complex dialog for editing contacts and several models
+to list and filter contacts.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public akonadi-mime
+  (package
+    (name "akonadi-mime")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/akonadi-mime-" version ".tar.xz"))
+       (sha256
+        (base32 "03q3dnhzcgmgcqvijnwi4ikg0m1zad2l679bqnp051v27fvs4yg7"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("libxslt" ,libxslt) ;; xslt for generating interface descriptions
+       ("shared-mime-info" ,shared-mime-info)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("boost", boost)
+       ("kcodecs" ,kcodecs)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kmime" ,kmime)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kxmlgui" ,kxmlgui)
+       ("qtbase" ,qtbase)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'copy-desktop-file-early
+           (lambda _
+             (let ((plugins-dir "/tmp/.local/share/akonadi/plugins/serializer"))
+               (mkdir-p plugins-dir)
+               (copy-file "serializers/akonadi_serializer_mail.desktop"
+                          (string-append plugins-dir "/akonadi_serializer_mail.desktop")))
+             #t))
+         (add-before 'check 'check-setup
+           (lambda _
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (synopsis "Akonadi MIME handling library")
+    (description "Akonadi Mime is a library that effectively bridges the
+type-agnostic API of the Akonadi client libraries and the domain-specific
+KMime library.  It provides jobs, models and other helpers to make working
+with emails through Akonadi easier.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public akonadi-notes
+  (package
+    (name "akonadi-notes")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/akonadi-notes-" version ".tar.xz"))
+       (sha256
+        (base32 "0r8vh11bfjzhspb5kp2d0kcgwqd2m5qpxpamiajzjq910f51sw3w"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("kcodecs" ,kcodecs)
+       ("ki18n" ,ki18n)
+       ("kmime" ,kmime)
+       ("qtbase" ,qtbase)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (synopsis "Akonadi notes access library")
+    (description "Akonadi Notes is a library that effectively bridges the
+type-agnostic API of the Akonadi client libraries and the domain-specific
+KMime library.  It provides a helper class for note attachments and for
+wrapping notes into KMime::Message objects.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public akonadi-search
+  (package
+    (name "akonadi-search")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/akonadi-search-" version ".tar.xz"))
+       (sha256
+        (base32 "16qzs2cs4nxwrpwcdgwry95qn6wmg8s1p4w3qajx1ahkgwmsh11s"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("akonadi-mime" ,akonadi-mime)
+       ("boost" ,boost)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kcmutils" ,kcmutils)
+       ("kcontacts" ,kcontacts)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kmime" ,kmime)
+       ("krunner" ,krunner)
+       ("kwindowsystem" ,kwindowsystem)
+       ("qtbase" ,qtbase)
+       ("xapian" ,xapian)))
+    (arguments
+     `(#:tests? #f)) ;; TODO: needs dbus
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (synopsis "Akonadi search library")
+    (description "Xapian-based indexing and query infrastructure for
+Akonadi.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public kalarmcal
+  (package
+    (name "kalarmcal")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kalarmcal-" version ".tar.xz"))
+       (sha256
+        (base32 "0w9qsx2gqwny2v4fsj4awn814s9b7yrxvqrawlick3r2kp4x1sgn"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("akonadi", akonadi)
+       ("boost" ,boost)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kcalutils" ,kcalutils)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kholidays" ,kholidays)
+       ("ki18n" ,ki18n)
+       ("kidentitymanagement" ,kidentitymanagement)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kpimtextedit" ,kpimtextedit)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kxmlgui" ,kxmlgui)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:tests? #f)) ;; TODO: TZ setup
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (synopsis "Library for handling kalarm calendar data")
+    (description "This library provides an API for KAlarm alarms.")
+    (license  license:lgpl2.0+)))
+
+(define-public kcalutils
+  (package
+    (name "kcalutils")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kcalutils-" version ".tar.xz"))
+       (sha256
+        (base32 "1nlkik4qiciyh1slgpis3n5h9pks2ygdba9yq4s16nnmip4l45w2"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("libxml2" ,libxml2))) ;; xmllint required for tests
+    (inputs
+     `(("grantlee" ,grantlee)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kcodecs" ,kcodecs)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kidentitymanagement" ,kidentitymanagement)
+       ("kpimtextedit" ,kpimtextedit)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:tests? #f)) ;; TODO: seem to pull in some wrong theme
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (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 "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kdepim-apps-libs-" version ".tar.xz"))
+       (sha256
+        (base32 "10xbzvp9cm5fpy4nxp38qm4vf0bycpq94bm4z2j4lw7ll1aq8irw"))))
+    (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)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kimap" ,kimap)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kmime" ,kmime)
+       ("kpimcommon" ,kpimcommon)
+       ("kservice" ,kservice)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("libkleo" ,libkleo)
+       ("prison" ,prison)
+       ("qgpgme" ,qgpgme)
+       ("qtbase" ,qtbase)))
+    (home-page "https://cgit.kde.org/kdepim-apps-libs.git")
+    (synopsis "KDE PIM mail related libraries and data files")
+    (description "KDE PIM mail related libraries and data files.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public kgpg
+  (package
+    (name "kgpg")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kgpg-" version ".tar.xz"))
+       (sha256
+        (base32 "1dis7zv51a4lhx5l3wlwnhym8f79h8sibhhk97fkn8d7szdrmfw5"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("gnupg" ,gnupg)  ;; TODO: Remove after gpgme uses fixed path
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("akonadi-contacts" ,akonadi-contacts)
+       ("boost" ,boost)
+       ("gpgme" ,gpgme)
+       ("karchive" ,karchive)
+       ("kcodecs" ,kcodecs)
+       ("kcontacts" ,kcontacts)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kjobwidgets" ,kjobwidgets)
+       ("knotifications" ,knotifications)
+       ("kservice" ,kservice)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("qtbase" ,qtbase)))
+    (home-page "https://kde.org/applications/utilities/org.kde.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
+for applying cryptography to short pieces of text, and can also quickly apply
+cryptography to the contents of the clipboard.")
+    (license license:gpl2+)))
+
+(define-public kidentitymanagement
+  (package
+    (name "kidentitymanagement")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kidentitymanagement-" version ".tar.xz"))
+       (sha256
+        (base32 "0dqz49sp5hq44590rrxav8688aqlzsww4q4n55ksfy13nk9i5mbf"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kcodecs" ,kcodecs)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kemoticons" ,kemoticons)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("kpimtextedit" ,kpimtextedit)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kxmlgui" ,kxmlgui)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-home
+           (lambda _
+             (setenv "HOME" "/tmp/dummy-home") ;; FIXME: what is this?
+             #t)))))
+    (home-page "https://kontact.kde.org/")
+    (synopsis "Library for shared identities between mail applications")
+    (description "Library for shared identities between mail applications.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kimap
+  (package
+    (name "kimap")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kimap-" version ".tar.xz"))
+       (sha256
+        (base32 "0l8hb2z82jzbwr12lw5fismwk1a3ca4dk966p1fxg4bibck8vjj6"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("cyrus-sasl" ,cyrus-sasl)
+       ("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("kmime" ,kmime)
+       ("qtbase" ,qtbase)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (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
+and encoding, but otherwise provides quite a low-level interface to the
+protocol.  This library does not implement an IMAP client; it merely makes it
+easier to do so.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public kldap
+  (package
+    (name "kldap")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kldap-" version ".tar.xz"))
+       (sha256
+        (base32 "1blbnj8av6h168g14gyphyd9sz87af773b1qglmbkv5pzbzaanxn"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("qtbase" ,qtbase)))
+    (propagated-inputs
+     `(("cyrus-sasl" ,cyrus-sasl)
+       ("openldap" ,openldap)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (synopsis "Library for accessing LDAP")
+    (description "This library provides an API for LDAP.")
+    (license license:lgpl2.0+)))
+
+(define-public kleopatra
+  (package
+    (name "kleopatra")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kleopatra-" version ".tar.xz"))
+       (sha256
+        (base32 "1bqwxdl91s2nai871vvhkmcc3simbnvr2i5m6dnl327bplzqgfa4"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("dbus" ,dbus)
+       ("extra-cmake-modules" ,extra-cmake-modules)
+       ("gnupg" ,gnupg)  ;; TODO: Remove after gpgme uses fixed path
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("boost" ,boost)
+       ("gpgme" ,gpgme)
+       ("kcmutils" ,kcmutils)
+       ("kcodecs" ,kcodecs)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kitemmodels" ,kitemmodels)
+       ("kmime" ,kmime)
+       ("knotifications" ,knotifications)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libassuan" ,libassuan)
+       ("libkleo" ,libkleo)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("qgpgme" ,qgpgme)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "dbus-launch" "ctest" ".")
+             #t)))))
+    (home-page "https://kde.org/applications/utilities/org.kde.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
+and retrieving certificates from LDAP servers.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kmailimporter
+  (package
+    (name "kmailimporter")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/mailimporter-" version ".tar.xz"))
+       (sha256
+        (base32 "0vmrgjz47f96crrbv0bhaz0abh2am4whhb294rfz02mvjghbzpzv"))))
+    (properties `((upstream-name . "mailimporter")))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("akonadi-mime" ,akonadi-mime)
+       ("boost" ,boost)
+       ("karchive" ,karchive)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kmime" ,kmime)
+       ("kxmlgui" ,kxmlgui)
+       ("libkdepim" ,libkdepim)
+       ("qtbase" ,qtbase)))
+    (home-page "https://cgit.kde.org/mailimporter.git")
+    (synopsis "KDE mail importer library")
+    (description "KDE mail importer library.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public kmailtransport
+  (package
+    (name "kmailtransport")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kmailtransport-" version ".tar.xz"))
+       (sha256
+        (base32 "04jdnqxbp4382vjxh06rrvsigbrygqfkw0fvbbjnjymp585mgkr4"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("akonadi-mime" ,akonadi-mime)
+       ("boost" ,boost)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kcmutils" ,kcmutils)
+       ("kcontacts" ,kcontacts)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("ki18n" ,ki18n)
+       ("kitemmodels", kitemmodels)
+       ("kio" ,kio)
+       ("kmime" ,kmime)
+       ("ksmtp" ,ksmtp)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwallet" ,kwallet)
+       ("libkgapi" ,libkgapi)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:tests? #f)) ;; TODO - 3/3 tests fail, require drkonqi
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (synopsis "Mail transport service library")
+    (description " This library provides an API and support code for managing
+mail transport.")
+    (license license:lgpl2.0+)))
+
+(define-public kmbox
+  (package
+    (name "kmbox")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kmbox-" version ".tar.xz"))
+       (sha256
+        (base32 "13b5v1nx46k5ais3cms7yxrfi8p6xbljpkpg3f7v1asb6kshv7g2"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kcodecs" ,kcodecs)
+       ("kmime" ,kmime)
+       ("qtbase" ,qtbase)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (synopsis "Library for handling mbox mailboxes")
+    (description "A library for accessing mail storages in MBox format.")
+    (license license:lgpl2.0+ )))
+
+(define-public kmime
+  (package
+    (name "kmime")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kmime-" version ".tar.xz"))
+       (sha256
+        (base32 "1pc00pwwrngsyr7ppvqwfgvcgy2wiqdbqxhv9xidn4dw9way2ng6"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kcodecs" ,kcodecs)
+       ("ki18n" ,ki18n)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-test-case
+           (lambda _
+             ;; This is curious: autotests/CMakeLists.txt sets LC_TIME=C, but
+             ;; the Qt locale returns different. See kmime commit 3a9651d26a.
+             (substitute* "autotests/dateformattertest.cpp"
+               (("(Today|Yesterday) 12:34:56" line day)
+                (string-append day " 12:34 PM")))
+             #t)))))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (synopsis "Library for handling MIME data")
+    (description "A library for MIME handling.")
+    (license license:lgpl2.0+)))
+
+(define-public kontactinterface
+  (package
+    (name "kontactinterface")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kontactinterface-" version ".tar.xz"))
+       (sha256
+        (base32 "1p0iw9i8cxh3jn7094wvxhlpc2sw52q8csfdgch1lf3dwhkpp0k7"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kparts" ,kparts)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("qtbase" ,qtbase)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (synopsis "Kontact interface library")
+    (description "Kontact Interface library.")
+    (license license:lgpl2.0+)))
+
+(define-public kpimcommon
+  (package
+    (name "kpimcommon")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/pimcommon-" version ".tar.xz"))
+       (sha256
+        (base32 "1jl40ymq46yjn9va78hklgg91ikrfahf3w4jl5ziiqbivcl7r9kn"))))
+    (properties `((upstream-name . "pimcommon")))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("karchive" ,karchive)
+       ("akonadi" ,akonadi)
+       ("akonadi-contacts" ,akonadi-contacts)
+       ("akonadi-mime" ,akonadi-mime)
+       ("boost" ,boost)
+       ("grantlee" ,grantlee)
+       ;; TODO: ("kaccounts" ,kaccounts)
+       ("kcodecs" ,kcodecs)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcontacts" ,kcontacts)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdesignerplugin" ,kdesignerplugin)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kimap" ,kimap)
+       ("kio" ,kio)
+       ("kirigami" ,kirigami) ;; run-time dependency
+       ("kitemmodels" ,kitemmodels)
+       ("kitemviews" ,kitemviews)
+       ("kjobwidgets" ,kjobwidgets)
+       ("kmime" ,kmime)
+       ("knewstuff" ,knewstuff)
+       ("kpimtextedit" ,kpimtextedit)
+       ("kservice" ,kservice)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libkdepim" ,libkdepim)
+       ("libxslt" ,libxslt)
+       ("purpose" ,purpose)
+       ("qtbase" ,qtbase)
+       ("qtwebengine" ,qtwebengine)))
+    (arguments
+     `(#:tests? #f)) ;; TODO tests hang
+    (home-page "https://cgit.kde.org/pimcommon.git")
+    (synopsis "Common library for KDE PIM")
+    (description "Common library for KDE PIM.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public kpimtextedit
+  (package
+    (name "kpimtextedit")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/kpimtextedit-" version ".tar.xz"))
+       (sha256
+        (base32 "1as48j5qfpj9pqjck1615nlpk4a850m7xxcyl41gx8biww027zvm"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("grantlee" ,grantlee)
+       ("kcodecs" ,kcodecs)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdesignerplugin" ,kdesignerplugin)
+       ("kemoticons" ,kemoticons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kxmlgui" ,kxmlgui)
+       ("qtbase" ,qtbase)
+       ("qtspeech", qtspeech)
+       ("sonnet" ,sonnet)))
+    (arguments
+     `(#:tests? #f)) ;; TODO - test suite hangs
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
+    (synopsis "Library providing a textedit with PIM-specific features")
+    (description "A library for PIM-specific text editing utilities.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public ksmtp
+  (package
+    (name "ksmtp")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/ksmtp-" version ".tar.xz"))
+       (sha256
+        (base32 "1pd8mma3xbq83jkn76gqinn6xh9imaji0jrg3qzysf5rvjl8kcqn"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("cyrus-sasl" ,cyrus-sasl)
+       ("kcodecs" ,kcodecs)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:tests? #f ;; TODO: does not find sasl mechs
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing
+           (lambda _
+             (substitute* "src/CMakeLists.txt"
+               (("^(install\\(.* )\\$\\{KF5_INSTALL_TARGETS_DEFAULT_ARGS\\}\\)"
+                 _ prefix)
+                (string-append prefix "${KDE_INSTALL_TARGETS_DEFAULT_ARGS})")))
+             #t)))))
+    (home-page "https://cgit.kde.org/ksmtp.git")
+    (synopsis "Library for sending email through an SMTP server")
+    (description "This library provides an API for handling SMTP
+services.  SMTP (Simple Mail Transfer Protocol) is the most prevalent Internet
+standard protocols for e-mail transmission.")
+    (license license:lgpl2.0+)))
+
+(define-public ktnef
+  (package
+    (name "ktnef")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/ktnef-" version ".tar.xz"))
+       (sha256
+        (base32 "0kgfhh46130hg1xq8km5gjzxa3b620j1zdrg54qivxa782smgbl6"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kcalendarcore" ,kcalendarcore)
+       ("kcalutils" ,kcalutils)
+       ("kcodecs" ,kcodecs)
+       ("kconfig" ,kconfig)
+       ("kcontacts" ,kcontacts)
+       ("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("qtbase" ,qtbase)))
+    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/ktnef/html/")
+    (synopsis "Viewer for mail attachments using TNEF format")
+    (description "Viewer for mail attachments using TNEF format")
+    (license license:lgpl2.0+)))
+
+(define-public libkdepim
+  (package
+    (name "libkdepim")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/libkdepim-" version ".tar.xz"))
+       (sha256
+        (base32 "0ndh97w1bfii4snx9yc0qazqk5jhx22s810kj656967xd1w4bj9n"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("akonadi" ,akonadi)
+       ("akonadi-contacts" ,akonadi-contacts)
+       ("akonadi-mime" ,akonadi-mime)
+       ("akonadi-search" ,akonadi-search)
+       ("boost" ,boost)
+       ("kcmutils" ,kcmutils)
+       ("kcodecs" ,kcodecs)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcontacts" ,kcontacts)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdesignerplugin" ,kdesignerplugin)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("kitemmodels" ,kitemmodels)
+       ("kitemviews" ,kitemviews)
+       ("kjobwidgets" ,kjobwidgets)
+       ("kldap" ,kldap)
+       ("kmime" ,kmime)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("qtbase" ,qtbase)))
+    (home-page "https://cgit.kde.org/libkdepim.git")
+    (synopsis "Libraries for common kdepim apps")
+    (description "Libraries for common kdepim apps.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public libkgapi
+  (package
+    (name "libkgapi")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/libkgapi-" version ".tar.xz"))
+       (sha256
+        (base32 "0z76b745n4hhjndrhv1w5acibia8x1frh78jx7bvxa72d8wphn08"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("cyrus-sasl" ,cyrus-sasl)
+       ("ki18n" ,ki18n)
+       ("kcontacts" ,kcontacts)
+       ("kcalendarcore" ,kcalendarcore)
+       ("kio" ,kio)
+       ("kwallet" ,kwallet)
+       ("kwindowsystem" ,kwindowsystem)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtwebengine" ,qtwebengine)))
+    (arguments
+     `(#:tests? #f)) ;; TODO 6/48 tests fail
+    (home-page "https://cgit.kde.org/libkgapi.git")
+    (synopsis "Library for accessing various Google services via their public
+API")
+    (description "@code{LibKGAPI} is a C++ library that implements APIs for
+various Google services.")
+    (license license:lgpl2.0+)))
+
+(define-public libkleo
+  (package
+    (name "libkleo")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/libkleo-" version ".tar.xz"))
+       (sha256
+        (base32 "0vjp07j102mi20c4q2fdvkjc0skb9q7msxp64n76wy3cciv346jz"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("boost" ,boost)
+       ("gpgme" ,gpgme)
+       ("kcodecs" ,kcodecs)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("ki18n" ,ki18n)
+       ("kitemmodels" ,kitemmodels)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kpimtextedit" ,kpimtextedit)
+       ("qgpgme" ,qgpgme)
+       ("qtbase" ,qtbase)))
+    (home-page "https://cgit.kde.org/libkleo.git/")
+    (synopsis "KDE PIM cryptographic library")
+    (description "@code{libkleo} is a library for Kleopatra and other parts of
+KDE using certificate-based crypto.")
+    (license ;; GPL for programs, LGPL for libraries
+     (list license:gpl2+ license:lgpl2.0+))))
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index e4360362db..a04b2f0279 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -25,6 +25,7 @@
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system qt)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
@@ -45,17 +46,12 @@
               (sha256
                (base32
                 "0rljpywpaqmar13jijphkpc9k1crma476j9my0d00hfrjil5xlnn"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("ki18n" ,ki18n)
        ("qtbase" ,qtbase)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
     (home-page "https://cgit.kde.org/kdecoration.git")
     (synopsis "Plugin based library to create window decorations")
     (description "KDecoration is a library to create window decorations.
@@ -137,7 +133,7 @@ manager which re-parents a Client window to a window decoration frame.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32 "0znxfqqyyij6i4dp95gf5g4vrhg4jsshgh2k13ldy294kby2mxw0"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ;; For testing.
@@ -148,16 +144,7 @@ manager which re-parents a Client window to a window decoration frame.")
        ("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)))
     (arguments
-     '(#:tests? #f         ; FIXME: 55% tests passed, 5 tests failed out of 11
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; For the missing '/etc/machine-id'.
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             ;; Run the tests offscreen.
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
+     '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
     (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
     (synopsis "KDE's screen management software")
     (description "KScreen is the new screen management software for KDE Plasma
@@ -199,7 +186,7 @@ basic needs and easy to configure for those who want special setups.")
        ("qtx11extras" ,qtx11extras)
        ("plasma" ,plasma-framework)
        ("zlib" ,zlib)))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (arguments
      `(#:configure-flags
        `(,(string-append "-DKDE_INSTALL_DATADIR="
@@ -212,10 +199,6 @@ basic needs and easy to configure for those who want special setups.")
              ;; KF5AuthConfig.cmake.in contains this already.
              (substitute* "processcore/CMakeLists.txt"
                (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")))
          (replace 'check
            (lambda _
              ;; TODO: Fix this failing test-case
diff --git a/gnu/packages/kde-systemtools.scm b/gnu/packages/kde-systemtools.scm
new file mode 100644
index 0000000000..682a5f583c
--- /dev/null
+++ b/gnu/packages/kde-systemtools.scm
@@ -0,0 +1,312 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages kde-systemtools)
+  #:use-module (guix build-system qt)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages kde)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages ruby)
+  #:use-module (gnu packages search)
+  #:use-module (gnu packages vnc)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg))
+
+(define-public dolphin
+  (package
+    (name "dolphin")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/dolphin-" version ".tar.xz"))
+       (sha256
+        (base32 "0klxyvcj1bmzpsyahj9kq3smvwzww30pjk5c90j6jpf14hizawfy"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
+       ("ruby" ,ruby)
+       ("ruby-test-unit" ,ruby-test-unit)))
+    (inputs
+     `(("baloo" ,baloo)
+       ("baloo-widgets" ,baloo-widgets)
+       ("kactivities" ,kactivities)
+       ("kbookmarks" ,kbookmarks)
+       ("kcmutils" ,kcmutils)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kinit" ,kinit)
+       ("kio" ,kio)
+       ("knewstuff" ,knewstuff)
+       ("knotifications" ,knotifications)
+       ("kparts" ,kparts)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwindowsystem" ,kwindowsystem)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("phonon" ,phonon)
+       ("qtbase" ,qtbase)
+       ("solid" ,solid)))
+    (arguments
+     `(#:tests? #f)) ;; TODO: 4/15 tests fail even with offscreen
+    (home-page "https://kde.org/applications/system/org.kde.dolphin")
+    (synopsis "File manager for KDE")
+    (description "Dolphin is a file manager for KDE focusing on usability.
+The main features of Dolphin are:
+@itemize
+@item Navigation bar for URLs, which allows to navigate quickly
+      through the file hierarchy.
+@item View properties are remembered for each folder.
+@item Split of views is supported.
+@item Network transparency.
+@item Undo/redo functionality.
+@item Renaming of a variable number of selected items in one step.
+@end itemize")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
+(define-public dolphin-plugins
+  (package
+    (name "dolphin-plugins")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/dolphin-plugins-" version ".tar.xz"))
+       (sha256
+        (base32 "0m9sl5fybk60h7r91a5qfxvwzksg2kxn1bc2ygrr8klm2pv0x1l2"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("dolphin" ,dolphin)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("ktexteditor" ,ktexteditor)
+       ("kxmlgui" ,kxmlgui)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("qtbase" ,qtbase)))
+    (home-page "http://www.kde.org/")
+    (synopsis "VCS-Plugins for Dolphin")
+    (description "This package contains plugins that offer integration in
+Dolphin with the version control systems: Bzr, Git, Mercurial, Subversion.")
+    (license license:gpl2+)))
+
+(define-public khelpcenter
+  (package
+    (name "khelpcenter")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/khelpcenter-" version ".tar.xz"))
+       (sha256
+        (base32 "0ympq1qm5h14mw18wry7l02ndg1f5kddwkf5bliip6vk2vxiff50"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("grantlee" ,grantlee)
+       ("karchive" ,karchive)
+       ("kbookmarks" ,kbookmarks)
+       ("kcodecs" ,kcodecs)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdbusaddons" ,kdbusaddons)
+       ("khtml" ,khtml)
+       ("ki18n" ,ki18n)
+       ("kinit" ,kinit)
+       ("kio" ,kio)
+       ("kjs" ,kjs)
+       ("kparts" ,kparts)
+       ("kservice" ,kservice)
+       ("kwindowsystem" ,kwindowsystem)
+       ("libxml2" ,libxml2)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("qtbase" ,qtbase)
+       ("xapian" ,xapian)))
+    (arguments
+     `(#:tests? #f)) ;; 1/1 test fails
+    (home-page "https://kde.org/applications/system/org.kde.Help")
+    (synopsis "KDE documentation viewer")
+    (description "KDE documentation viewer")
+    (license license:gpl2+)))
+
+(define-public konsole
+  (package
+    (name "konsole")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/konsole-" version ".tar.xz"))
+       (sha256
+        (base32 "09bhgqjnqlpxkkgdpn35pvj747ab7waz10zalvpwdpgqkw811iic"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("kbookmarks" ,kbookmarks)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kguiaddons" ,kguiaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kinit" ,kinit)
+       ("kio" ,kio)
+       ("knewstuff" ,knewstuff)
+       ("kglobalaccel" ,kglobalaccel)
+       ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
+       ("kparts" ,kparts)
+       ("kpty" ,kpty)
+       ("kservice" ,kservice)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("qtbase" ,qtbase)
+       ("qtscript" ,qtscript)))
+    (arguments
+     `(#:tests? #f)) ;; TODO: 2/15 tests fail even with HOME, offscreen, SHELL, debus
+    (home-page "http://www.kde.org/")
+    (synopsis "Terminal emulator similar for KDE")
+    (description "Konsole is a terminal emulator, similar to xterm, built on
+the KDE Platform.  It can contain multiple terminal sessions inside one window
+using detachable tabs.  Konsole supports customizable schemes, saved sessions,
+output monitoring and more.
+
+This package is part of the KDE base applications module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public krfb
+  (package
+    (name "krfb")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/krfb-" version ".tar.xz"))
+       (sha256
+        (base32 "079f4jlmd69a5nppmn7khsxrnswlfbdzjni0cbixwlcij05y2267"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdnssd" ,kdnssd)
+       ("ki18n" ,ki18n)
+       ("knotifications" ,knotifications)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libvnc" ,libvnc)
+       ("libxcb" ,libxcb)
+       ("libxtst" ,libxtst)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("pipewire" ,pipewire)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)
+       ("xcb-util-image" ,xcb-util-image)
+       ("zlib" ,zlib)))
+    (home-page "https://kde.org/applications/internet/org.kde.krfb")
+    (synopsis "Desktop Sharing utility")
+    (description "KDE Desktop Sharing is a server application that allows you
+to share your current session with a user on another machine.  The desktop
+session can be viewed or even controlled remotely by any VNC or RFB client,
+such as the KDE Remote Desktop Connection client.
+
+KDE Desktop Sharing can restrict access to only users who are explicitly
+invited, and will ask for confirmation when a user attempts to connect.
+
+This package is part of the KDE networking module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public ksystemlog
+  (package
+    (name "ksystemlog")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/ksystemlog-" version ".tar.xz"))
+       (sha256
+        (base32 "079r2xnj168y9kz37rhxr3rcwh6fksljsj1ihmi7f7a8wmdabz4p"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     ;; Not including Journald since this is not used in guix
+     `(("karchive" ,karchive)
+       ("kcompletion" ,kcompletion)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("kitemviews" ,kitemviews)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kxmlgui" ,kxmlgui)
+       ("oxygen-icons" ,oxygen-icons) ;; default icon set
+       ("qtbase" ,qtbase)))
+    (home-page "https://kde.org/applications/system/org.kde.ksystemlog")
+    (synopsis "System log viewer")
+    (description "This program is developed for being used by beginner users,
+which don't know how to find information about their Linux system, and how the
+log files are in their computer.  But it is also designed for advanced users,
+who want to quickly see problems occuring on their server.
+
+This package is part of the KDE administration module.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index 9005b5014a..38bdfbfaba 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -233,14 +233,6 @@ sentences to be re-spoken.")
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ("qtbase" ,qtbase)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://kde.org/applications/utilities/org.kde.kronometer")
     (synopsis "Simple stopwatch application")
     (description "Kronometer is a stopwatch application.  It features the
@@ -399,14 +391,6 @@ redone.")
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ("qtbase" ,qtbase)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://kde.org/applications/utilities/org.kde.rsibreak")
     (synopsis "Assists in the Recovery and Prevention of Repetitive Strain
 Injury")
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index bb5c25014e..8a612bfe5b 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -67,6 +67,39 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public baloo-widgets
+  (package
+    (name "baloo-widgets")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/baloo-widgets-" version ".tar.xz"))
+       (sha256
+        (base32 "0bba8dgxd7rcjji809kwnw78hl1nb5ssh2ir4k4b0wvx395jifgd"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("baloo" ,baloo)
+       ("kconfig" ,kconfig)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda _
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))))
+    (home-page "https://community.kde.org/Baloo")
+    (synopsis "Wigets for use with Baloo")
+    (description "Baloo is a framework for searching and managing metadata.
+This package contains GUI widgets for baloo.")
+    (license license:lgpl2.0+)))
+
 (define-public grantleetheme
   (package
     (name "grantleetheme")
@@ -89,13 +122,6 @@
        ("kiconthemes" ,kiconthemes)
        ("knewstuff" ,knewstuff)
        ("qtbase" ,qtbase)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://cgit.kde.org/grantleetheme.git")
     (synopsis "Library providing Grantlee theme support")
     (description "This library provides Grantlee theme support.")
@@ -521,13 +547,7 @@ different notification systems.")
     (build-system qt-build-system)
     (arguments
      `(#:configure-flags '("-DBUILD_TESTING=ON")
-       #:tests? #f ; tests fail hard in our build environment
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
+       #:tests? #f)) ; tests fail hard in our build environment
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)
@@ -644,7 +664,7 @@ Python, PHP, and Perl.")
                           "/src/libkdegames-" version ".tar.xz"))
       (sha256
        (base32 "12dvkmjgbi8dp9y55zmx1pw3zr2i374c4vn3mfn9r31bf06dr701"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
@@ -674,14 +694,6 @@ Python, PHP, and Perl.")
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://games.kde.org/")
     (synopsis "Runtime library for kdegames")
     (description "Runtime library for kdegames")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 048aeac512..c3f6502d45 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1232,14 +1232,14 @@ by Robert Shea and Robert Anton Wilson.")
 (define-public procps
   (package
     (name "procps")
-    (version "3.3.15")
+    (version "3.3.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/procps-ng/Production/"
                                   "procps-ng-" version ".tar.xz"))
               (sha256
                (base32
-                "0r84kwa5fl0sjdashcn4vh7hgfm7ahdcysig3mcjvpmkzi7p9g8h"))))
+                "1br0g93ysqhlv13i1k4lfbimsgxnpy5rgs4lxfc9rkzdbpbaqplj"))))
     (build-system gnu-build-system)
     (arguments
      '(#:modules ((guix build utils)
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 2e34f8e26f..294891734d 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -70,7 +70,7 @@ in the Mozilla clients.")
 (define-public nss
   (package
     (name "nss")
-    (version "3.48")
+    (version "3.49.1")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -81,7 +81,7 @@ in the Mozilla clients.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "1b7qs1q7jqhw9dvkdznanzhc5dyq4bwx0biywszy3qx4hqm8571z"))
+                "0vh23g16ldvnsrn2dnvdl2i133kizi660r7ilb00vfq2kvj45anr"))
               ;; Create nss.pc and nss-config.
               (patches (search-patches "nss-pkgconfig.patch"
                                        "nss-freebl-stubs.patch"
@@ -130,7 +130,7 @@ in the Mozilla clients.")
              ;; leading to test failures:
              ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>.  To
              ;; work around that, set the time to roughly the release date.
-             (invoke "faketime" "2019-12-01" "./nss/tests/all.sh")))
+             (invoke "faketime" "2020-01-01" "./nss/tests/all.sh")))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/patches/akonadi-Revert-Make-installation-properly-relocatabl.patch b/gnu/packages/patches/akonadi-Revert-Make-installation-properly-relocatabl.patch
new file mode 100644
index 0000000000..c3964c5c05
--- /dev/null
+++ b/gnu/packages/patches/akonadi-Revert-Make-installation-properly-relocatabl.patch
@@ -0,0 +1,49 @@
+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"
+
+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(
+     "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
+     "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
+     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
+-    PATH_VARS AKONADI_DBUS_INTERFACES_INSTALL_DIR
+-              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()
+ 
+-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
diff --git a/gnu/packages/patches/akonadi-paths.patch b/gnu/packages/patches/akonadi-paths.patch
new file mode 100644
index 0000000000..da250ee9e8
--- /dev/null
+++ b/gnu/packages/patches/akonadi-paths.patch
@@ -0,0 +1,49 @@
+This is based on the respectve patch from NixPkgs, but with the parts pinning
+mysql and postgresql executables removed. The our package definition on why.
+
+
+Index: akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
+===================================================================
+--- akonadi-19.08.0.orig/src/akonadicontrol/agentmanager.cpp
++++ akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
+@@ -78,12 +78,12 @@ AgentManager::AgentManager(bool verbose,
+     mStorageController = new Akonadi::ProcessControl;
+     mStorageController->setShutdownTimeout(15 * 1000);   // the server needs more time for shutdown if we are using an internal mysqld
+     connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure);
+-    mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
++    mStorageController->start(QLatin1String(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+ 
+     if (mAgentServerEnabled) {
+         mAgentServer = new Akonadi::ProcessControl;
+         connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure);
+-        mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
++        mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+     }
+ }
+ 
+Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
+===================================================================
+--- akonadi-19.08.0.orig/src/akonadicontrol/agentprocessinstance.cpp
++++ akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
+@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const A
+     } else {
+         Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
+         const QStringList arguments = QStringList() << executable << identifier();
+-        const QString agentLauncherExec = Akonadi::StandardDirs::findExecutable(QStringLiteral("akonadi_agent_launcher"));
++        const QString agentLauncherExec = QLatin1String(NIX_OUT "/bin/akonadi_agent_launcher");
+         mController->start(agentLauncherExec, arguments);
+     }
+     return true;
+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
+@@ -209,7 +193,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 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
new file mode 100644
index 0000000000..e299a6991f
--- /dev/null
+++ b/gnu/packages/patches/akonadi-timestamps.patch
@@ -0,0 +1,14 @@
+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(
+     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 (true) {
+         QFile globalFile(globalConfig);
+         QFile localFile(localConfig);
+         if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
diff --git a/gnu/packages/patches/choqok-Fix-building-under-Qt-5.13.patch b/gnu/packages/patches/choqok-Fix-building-under-Qt-5.13.patch
new file mode 100644
index 0000000000..4250106a19
--- /dev/null
+++ b/gnu/packages/patches/choqok-Fix-building-under-Qt-5.13.patch
@@ -0,0 +1,89 @@
+Add QMap include to fix building under Qt 5.13
+
+This combines several patches which all add the same missing include:
+- e13ab06f65a4e8b6259bccda1401abb9c1c9fdca
+- 546ede9ef712bb1b156a55ce30df81c3203dde61
+- 08fb06b63a78888e6703de6ac1a4fd6a0e2791eb
+- bef6784596bf0b41287ebad81f138e1c8c2a6be2
+
+Include is no longer added transitively.
+---
+
+--- a/plugins/betternotify/notify.h
++++ b/plugins/betternotify/notify.h
+@@ -23,6 +23,7 @@
+ #ifndef NOTIFY_H
+ #define NOTIFY_H
+ 
++#include <QMap>
+ #include <QQueue>
+ #include <QPoint>
+ #include <QPointer>
+--- a/plugins/untiny/untiny.h
++++ b/plugins/untiny/untiny.h
+@@ -27,6 +27,7 @@
+ 
+ #include "plugin.h"
+ 
++#include <QMap>
+ #include <QQueue>
+ #include <QUrl>
+ #include <QPointer>
+--- a/plugins/uploaders/flickr/flickr.h
++++ b/plugins/uploaders/flickr/flickr.h
+@@ -26,6 +26,8 @@
+ 
+ #include "uploader.h"
+ 
++#include <QMap>
++
+ /**
+ @author Andrey Esin \<gmlastik@gmail.com\>
+ */
+diff --git a/plugins/uploaders/imageshack/imageshack.h b/plugins/uploaders/imageshack/imageshack.h
+index d9ddc88..63d0e3f 100644
+--- a/plugins/uploaders/imageshack/imageshack.h
++++ b/plugins/uploaders/imageshack/imageshack.h
+@@ -26,6 +26,8 @@
+ 
+ #include "uploader.h"
+ 
++#include <QMap>
++
+ /**
+ @author Mehrdad Momeny \<mehrdad.momeny@gmail.com\>
+ */
+--- a/plugins/uploaders/mobypicture/mobypicture.h
++++ b/plugins/uploaders/mobypicture/mobypicture.h
+@@ -26,6 +26,8 @@
+ 
+ #include "uploader.h"
+ 
++#include <QMap>
++
+ class KJob;
+ 
+ class Mobypicture : public Choqok::Uploader
+--- a/plugins/uploaders/posterous/posterous.h
++++ b/plugins/uploaders/posterous/posterous.h
+@@ -26,6 +26,8 @@
+ 
+ #include "uploader.h"
+ 
++#include <QMap>
++
+ class KJob;
+ 
+ class Posterous : public Choqok::Uploader
+--- a/plugins/uploaders/twitgoo/twitgoo.h
++++ b/plugins/uploaders/twitgoo/twitgoo.h
+@@ -26,6 +26,8 @@
+ 
+ #include "uploader.h"
+ 
++#include <QMap>
++
+ class KJob;
+ 
+ class Twitgoo : public Choqok::Uploader
+--
diff --git a/gnu/packages/patches/evolution-data-server-libical-compat.patch b/gnu/packages/patches/evolution-data-server-libical-compat.patch
new file mode 100644
index 0000000000..a988519ea0
--- /dev/null
+++ b/gnu/packages/patches/evolution-data-server-libical-compat.patch
@@ -0,0 +1,36 @@
+Prevent test failure and possible data loss due to API change in libical 3.0.7.
+
+https://gitlab.gnome.org/GNOME/evolution-data-server/issues/185
+https://lists.infradead.org/pipermail/libical-devel/2020-January/000907.html
+
+Adapted from upstream:
+
+https://gitlab.gnome.org/GNOME/evolution-data-server/commit/77384ab552c19bf374dbeda53dc37f98d07bd4ec
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -108,7 +108,7 @@
+ 
+ set(gcr_minimum_version 3.4)
+ set(libgdata_minimum_version 0.15.1)
+-set(libical_minimum_version 2.0)
++set(libical_minimum_version 3.0.7)
+ set(libsecret_minimum_version 0.5)
+ set(libxml_minimum_version 2.0.0)
+ set(sqlite_minimum_version 3.7.17)
+diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
+index 7501f2a43dcc3af91e93e89751caf76e77c2ac23..93f4806ba2c5193f746e9fae5bf74d08ad05f8bf 100644
+--- a/src/calendar/libedata-cal/e-cal-meta-backend.c
++++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
+@@ -3958,9 +3958,8 @@
+ 					gchar *base64;
+ 
+ 					base64 = g_base64_encode ((const guchar *) content, len);
+-					new_attach = icalattach_new_from_data (base64, NULL, NULL);
++					new_attach = icalattach_new_from_data (base64, (GFunc) g_free, NULL);
+ 					g_free (content);
+-					g_free (base64);
+ 
+ 					ecmb_remove_all_but_filename_parameter (prop);
+ 
diff --git a/gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch b/gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch
new file mode 100644
index 0000000000..d9d29bbd1a
--- /dev/null
+++ b/gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch
@@ -0,0 +1,24 @@
+From 4d0036617becc26a76fd021138c98aceec4c7b53 Mon Sep 17 00:00:00 2001
+From: Luca Beltrame <lbeltrame@kde.org>
+Date: Sun, 21 Jul 2019 09:14:32 +0200
+Subject: Fix build with Qt 5.13
+
+---
+ src/irc/outputfilter.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/irc/outputfilter.cpp b/src/irc/outputfilter.cpp
+index f9e6253..45d11fb 100644
+--- a/src/irc/outputfilter.cpp
++++ b/src/irc/outputfilter.cpp
+@@ -32,6 +32,7 @@
+ 
+ #include <QStringList>
+ #include <QFile>
++#include <QMetaMethod>
+ #include <QRegExp>
+ #include <QTextCodec>
+ #include <QByteArray>
+-- 
+cgit v1.1
+
diff --git a/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch b/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch
deleted file mode 100644
index 9e76653a07..0000000000
--- a/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://github.com/thepowersgang/mrustc/issues/109
-From: Danny Milosavljevic <dannym@scratchpost.org>
-Date: Fri, 3 Jan 2019 13:00:00 +0100
-
---- mrustc/src/expand/proc_macro.cpp.orig	2019-02-01 14:16:54.208486062 +0100
-+++ mrustc/src/expand/proc_macro.cpp	2019-02-01 14:17:14.350925705 +0100
-@@ -977,7 +977,7 @@
-     for(;;)
-     {
-         auto b = recv_u8();
--        v |= static_cast<uint64_t>(b) << ofs;
-+        v |= static_cast<uint64_t>(b & 0x7F) << ofs;
-         if( (b & 0x80) == 0 )
-             break;
-         ofs += 7;
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 6f2b3f78ea..fc98478d4c 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -190,7 +190,7 @@ to @code{IOStreams}.")
 (define-public source-highlight
   (package
     (name "source-highlight")
-    (version "3.1.8")
+    (version "3.1.9")
     (source
      (origin
       (method url-fetch)
@@ -198,7 +198,7 @@ to @code{IOStreams}.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "18xdalxg7yzrxc1njzgw7aryq2jdm7zq2yqz41sc7k6il5z6lcq1"))))
+        "148w47k3zswbxvhg83z38ifi85f9dqcpg7icvvw1cm6bg21x4zrs"))))
     (build-system gnu-build-system)
     ;; The ctags that comes with emacs does not support the --excmd options,
     ;; so can't be used
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 9b59dc0f46..466c6ba358 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -339,7 +340,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
 (define-public qtbase
   (package
     (name "qtbase")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -348,7 +349,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                                  version ".tar.xz"))
              (sha256
               (base32
-               "09wz7zs1x5mpgs2y4xnl2zv3naqls4sz6v2arwl1fz2dsx4jddba"))
+               "0pb68d30clksdhgy8n6rrs838bb3qcsfq4pv463yy2nr4p5kk2di"))
              ;; Use TZDIR to avoid depending on package "tzdata".
              (patches (search-patches "qtbase-use-TZDIR.patch"))
              (modules '((guix build utils)))
@@ -364,6 +365,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
     (build-system gnu-build-system)
     (propagated-inputs
      `(("mesa" ,mesa)
+       ;; Use which the package, not the function
        ("which" ,(@ (gnu packages base) which))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -408,6 +410,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
        ("xcb-util-keysyms" ,xcb-util-keysyms)
        ("xcb-util-renderutil" ,xcb-util-renderutil)
        ("xcb-util-wm" ,xcb-util-wm)
+       ("xdg-utils" ,xdg-utils)
        ("zlib" ,zlib)))
     (native-inputs
      `(("bison" ,bison)
@@ -429,6 +432,14 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                             "qmake/library/qmakebuiltins.cpp")
                           (("/bin/sh") (which "sh")))
              #t))
+         (add-after 'configure 'patch-xdg-open
+           (lambda _
+             (substitute* '("src/platformsupport/services/genericunix/qgenericunixservices.cpp")
+                          (("^.*const char \\*browsers.*$" all)
+                           (string-append "*browser = QStringLiteral(\""
+                                          (which "xdg-open")
+                                          "\"); return true; \n" all)))
+             #t))
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -595,7 +606,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
 (define-public qtsvg
   (package (inherit qtbase)
     (name "qtsvg")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -604,7 +615,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                                  version ".tar.xz"))
              (sha256
               (base32
-               "13zg5095ffm88dsrybyi075i9zw3yrkibqzvj57an9sq89n3w926"))))
+               "1f3vqv3s83gjillhgi0wghyf3825fgy1ffhvkxhdk673shb0kxjb"))))
     (propagated-inputs `())
     (native-inputs `(("perl" ,perl)))
     (inputs
@@ -670,7 +681,7 @@ HostData=lib/qt5
 (define-public qtimageformats
   (package (inherit qtsvg)
     (name "qtimageformats")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -679,7 +690,7 @@ HostData=lib/qt5
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0n3qc5rx7kzb4csmcxaxdm2bqpciz2j2pz2zdfrlpi1ml4liq39k"))
+               "02zpcbx71dz6xvga07dnzqwdfz9pjmy673n706fj8pxq9zi9xlcv"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -701,7 +712,7 @@ support for MNG, TGA, TIFF and WBMP image formats.")))
 (define-public qtx11extras
   (package (inherit qtsvg)
     (name "qtx11extras")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -710,7 +721,7 @@ support for MNG, TGA, TIFF and WBMP image formats.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0sqx785kb4kfxfl3cmg848dlxlxmfdg8jnfh3rrk8q0iazsr2faz"))))
+               "15hb90n47khsp3qnzyjd3mh8gi9qvy07dqdr4qspiww43r5mz293"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -725,7 +736,7 @@ from within Qt 5.")))
 (define-public qtxmlpatterns
   (package (inherit qtsvg)
     (name "qtxmlpatterns")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -734,7 +745,7 @@ from within Qt 5.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1l44476ibb8rv4rf80vbjdc3712lmrl1xcxswa513ip66k47p5vn"))))
+               "0ys1kf0zdn8gak1ik9p7i7bdyfz2frvklcyz013s9wm1550h20lh"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f) ; TODO: Enable the tests
@@ -756,7 +767,7 @@ xmlpatternsvalidator.")))
 (define-public qtdeclarative
   (package (inherit qtsvg)
     (name "qtdeclarative")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -765,7 +776,7 @@ xmlpatternsvalidator.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1lw6nr26cjdrshin3gq5xwqb0bvslg0ml99cw8rx9wb2anpd3c9l"))))
+               "1gg9xbv8ah4p55ws97brwn0csl0k3j1x6zdknrrsnh7j6nh0bp2w"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -788,7 +799,7 @@ with JavaScript and C++.")))
 (define-public qtconnectivity
   (package (inherit qtsvg)
     (name "qtconnectivity")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -797,7 +808,7 @@ with JavaScript and C++.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1ni2x848dxf0c7ilk461vz0z46qis8zv6jxbpyhpbhzdg9rcdw8h"))))
+               "06h71pd5w5prh722mcbgmx7l71xvh5xpjrlbg17yblx0n6wlhwb4"))))
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)
@@ -812,7 +823,7 @@ with Bluetooth and NFC.")))
 (define-public qtwebsockets
   (package (inherit qtsvg)
     (name "qtwebsockets")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -821,7 +832,7 @@ with Bluetooth and NFC.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "07nnzqhsnb4q8pbka9dk5nxmqinbg9yicag7f4rlq2p6ffmgn2zh"))))
+               "05rv52pp5zg4g14zh7c6jc77l426056b8xyr40ps6cpmb0jkrlbg"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -839,7 +850,7 @@ consume data received from the server, or both.")))
 (define-public qtsensors
   (package (inherit qtsvg)
     (name "qtsensors")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -848,7 +859,7 @@ consume data received from the server, or both.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1x8f55qyix5bsd0hl9rzi56ndyv4h16z2qh8is9nv13jpk0a9nsr"))))
+               "0h77h34rn6cgy5qiqq163pj3bhbka1ydkfgjcx01ns1g9sgym6ib"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:parallel-tests? _ #f) #f) ; can lead to race condition
@@ -872,7 +883,7 @@ recognition API for devices.")))
 (define-public qtmultimedia
   (package (inherit qtsvg)
     (name "qtmultimedia")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -881,7 +892,7 @@ recognition API for devices.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0w4mcxmj41b9phwirppn9ws1vxy3sww7prvhhmh0jsnaca4hwn4z"))
+               "07fvnjywn3hkrxfbxasmy83jr6jq9lf1grasfwij54hz6y0smg98"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -923,7 +934,7 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
 (define-public qtwayland
   (package (inherit qtsvg)
     (name "qtwayland")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -932,7 +943,7 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1i2i4d6qa512njm6gvd1ygcyb5p4d6axciqg9ys380yw9nl6m77s"))
+               "1ib61zh6jrab3yz592p47ldfgphi4i184kqf14vhwn31akibh6pw"))
              (modules '((guix build utils)))
              (snippet
                ;; The examples try to build and cause the build to fail
@@ -975,7 +986,7 @@ compositor libraries.")))
 (define-public qtserialport
   (package (inherit qtsvg)
     (name "qtserialport")
-    (version "5.12.5")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -984,7 +995,7 @@ compositor libraries.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0qmq3yppc54vf7xrwyrwk91h6x04w0hf4bnw5b3y5kwyllhh7vzq"))))
+               "07vjv3p7n7n5v15wdpi8x5sbnvyjqdh85qfzf9mz8l6ppqp2hk12"))))
     (native-inputs `(("perl" ,perl)))
     (inputs
      `(("qtbase" ,qtbase)
@@ -1009,7 +1020,7 @@ interacting with serial ports from within Qt.")))
 (define-public qtserialbus
   (package (inherit qtsvg)
     (name "qtserialbus")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1018,7 +1029,7 @@ interacting with serial ports from within Qt.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1ppmrwshj42lpx21m2gxblrlbigjf10fwg3fk5x5130ih89446q7"))))
+               "1bkyk1v7bcq657n88a6675lj55vl9y8v46h4kf27v58yjzgiw842"))))
     (inputs
      `(("qtbase" ,qtbase)
        ("qtserialport" ,qtserialport)))
@@ -1030,7 +1041,7 @@ and others.")))
 (define-public qtwebchannel
   (package (inherit qtsvg)
     (name "qtwebchannel")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1039,7 +1050,7 @@ and others.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1my8vcsidx9r5wpd1iax8skhp5ac3234g9r7ax04k9z17mqd2i97"))))
+               "0xff3fbbpcl0kkq0rg9npj127ycirygicbkxlf0v593sjpjp5bmh"))))
     (native-inputs
      `(("perl" ,perl)
        ("qtdeclarative" ,qtdeclarative)
@@ -1054,7 +1065,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine.")))
 (define-public qtwebglplugin
   (package (inherit qtsvg)
     (name "qtwebglplugin")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1063,7 +1074,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1pahdyhinhq1xhsc7lsfprjjpz6fn9vgwqcyi72hc3wzyr98in11"))))
+               "0fswnmhb8fm7wqgzv8cjy1j2sgb5mhx80jl411laawn7bf2ysjg0"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:phases phases)
@@ -1089,7 +1100,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
 (define-public qtwebview
   (package (inherit qtsvg)
     (name "qtwebview")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1098,7 +1109,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0ykjwz3cwv718gvgvnlhq7wia8gllnj3cdzw3amj0rh63hy65h22"))))
+               "1rvvkg6dl34hklllnlzlcffik746f15lzxdnwggc97dmx8n2vy6k"))))
     (native-inputs
      `(("perl" ,perl)))
     (inputs
@@ -1112,7 +1123,7 @@ native APIs where it makes sense.")))
 (define-public qtlocation
   (package (inherit qtsvg)
     (name "qtlocation")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1121,7 +1132,7 @@ native APIs where it makes sense.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0y12vs6jwiwljdn57jqs1dwi6wfw1l5l95dvj9g93h739p533qks"))))
+               "07vq4aycayq2bg8yi4awidb25xyvws2ajbnrmad3rnpg1fw0bsfi"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1142,7 +1153,7 @@ positioning and geolocation plugins.")))
 (define-public qttools
   (package (inherit qtsvg)
     (name "qttools")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1151,7 +1162,7 @@ positioning and geolocation plugins.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0xy7sf8w2lln1l59lhrf0kb687avwirrh63izp7509jwi33r2jg9"))))
+               "0j1rl368sjknsmwp2f7bwqcb0sx13l3l4dxbm70873si9l8rf2l6"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1170,7 +1181,7 @@ that helps in Qt development.")))
 (define-public qtscript
   (package (inherit qtsvg)
     (name "qtscript")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1179,7 +1190,7 @@ that helps in Qt development.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0z3p4bb2ddylb7y2xvagjbn7fc5d0ic08cmrrb67h8wf6fnq5051"))
+               "06a02230mj4bd8qvjaf2q97grzbj1c1rq36x7236fnhjsikbq7fa"))
              (patches (search-patches "qtscript-disable-tests.patch"))))
     (native-inputs
      `(("perl" ,perl)
@@ -1194,7 +1205,7 @@ ECMAScript and Qt.")))
 (define-public qtquickcontrols
   (package (inherit qtsvg)
     (name "qtquickcontrols")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1203,7 +1214,7 @@ ECMAScript and Qt.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "169cvwiav5d538cw81rbdimb1pis0z6fkaxlwhd4z4pzhyhrd3f4"))))
+               "1rar337vv0dx52r2gxwiwy1axn0fpy79rka09xizjlxsdg3vnf0h"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1218,7 +1229,7 @@ can be used to build complete interfaces in Qt Quick.")))
 (define-public qtquickcontrols2
   (package (inherit qtsvg)
     (name "qtquickcontrols2")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1227,7 +1238,7 @@ can be used to build complete interfaces in Qt Quick.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0w5910wblzc7q2llyb7fyfcbmy1fl369c6w5d6r5sh26z490gasw"))))
+               "0dx2jag6l5a80220fvmf49z1psliqf1ijqx6jsvvzv81mpjjd59s"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1243,7 +1254,7 @@ not available.")))
 (define-public qtgraphicaleffects
   (package (inherit qtsvg)
     (name "qtgraphicaleffects")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1252,7 +1263,7 @@ not available.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1vvpq34433j94n9yyhh4if4yv51i8xiffpvyn3xgffx14iv35l6y"))))
+               "1knapc14a80cn2f5bbfj7lhq9flr3v0gwjg9ka7xl8y642235w02"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1270,7 +1281,7 @@ coloring, and many more.")))
 (define-public qtgamepad
   (package (inherit qtsvg)
     (name "qtgamepad")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1279,7 +1290,7 @@ coloring, and many more.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1cxkqnhx0baxh3csjl7ar151v0zizf86f4338rr38liwb7rwbsz1"))))
+               "150y7bc755l9y8w7nkg3gfw5n6rlj9hhq0ibc9g1xgllpr18qqq7"))))
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)))
@@ -1300,7 +1311,7 @@ and mobile applications targeting TV-like form factors.")))
 (define-public qtscxml
   (package (inherit qtsvg)
     (name "qtscxml")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1309,7 +1320,7 @@ and mobile applications targeting TV-like form factors.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "12y6ga7j6xby9rz1c9h17r9ih4i16i1ylr6b4vmrn7svidy87msk"))
+               "1dpvjkvwc3fj86vay8q8vzym73cix7ri2ianx87ck0gqjny51adg"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -1331,7 +1342,7 @@ also contains functionality to support data models and executable content.")))
 (define-public qtpurchasing
   (package (inherit qtsvg)
     (name "qtpurchasing")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1340,7 +1351,7 @@ also contains functionality to support data models and executable content.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1kbhmzrw612yb4brxi3fwslil31j31vm0zqpb52vcma7vbivg80z"))))
+               "0xjsn7p629ni68vk4xlw2cvcs53ipcqv1pa4hck0nabddcgcnzkg"))))
     (inputs
      `(("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)))
@@ -1351,7 +1362,7 @@ purchasing goods and services.")))
 (define-public qtcanvas3d
   (package (inherit qtsvg)
     (name "qtcanvas3d")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1360,7 +1371,7 @@ purchasing goods and services.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "024xglrb321rp3wb3fhprw7pl6zvmpgfkpwgabbyx8p58k4yccrd"))
+               "0l0c1p6jwz5rygyxslfw7jw3wbd23w5n9zg04aqlh5g15qx52fmn"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -1390,7 +1401,7 @@ drawing calls from Qt Quick JavaScript.")))
 (define-public qtcharts
   (package (inherit qtsvg)
     (name "qtcharts")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1399,7 +1410,7 @@ drawing calls from Qt Quick JavaScript.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0gdark4z2g8j0kzjg1aqq91ap04h6hzjl163g8xlwxwdn5dxpnql"))))
+               "0pyg2lpxmhf4amj57zihp5ry0y9m39xq5hbcx4hqj78bdm96ah23"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1417,7 +1428,7 @@ selecting one of the charts themes.")
 (define-public qtdatavis3d
   (package (inherit qtsvg)
     (name "qtdatavis3d")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1426,7 +1437,7 @@ selecting one of the charts themes.")
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1zm4xfi2ijqr3n3g0lfs3yzil6w7c54r8vsj1d541lz7wnm92ka1"))))
+               "09wbv4g29sq5z2fphk2910albr3iv3l14nch3ml77w6drw9mgzq7"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1444,7 +1455,7 @@ customized by using themes or by adding custom items and labels to them.")
 (define-public qtnetworkauth
   (package (inherit qtsvg)
     (name "qtnetworkauth")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1453,7 +1464,7 @@ customized by using themes or by adding custom items and labels to them.")
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1gba6rdhcvljc4dnzhnkxrdlaxm3y095ljqg1sz3p1k0m632s4pa"))))
+               "0sspni7zllhspk70yjj2d0li9r4rs3iflnksj8mvjx2yl9qpryyb"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:phases phases)
@@ -1473,7 +1484,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
 (define-public qtremoteobjects
   (package (inherit qtsvg)
     (name "qtremoteobjects")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1482,7 +1493,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "16fna70pljn45yj6hv3g4qvb1imcnfj43jchvydspdhg08ykbda9"))))
+               "03qjj7l63wn1zqkmlja9yrnc38rf6b3apnmsn0kw0h61x72awskd"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:phases phases)
@@ -1506,7 +1517,7 @@ processes or computers.")))
 (define-public qtspeech
   (package (inherit qtsvg)
     (name "qtspeech")
-    (version "5.12.6")
+    (version "5.12.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1515,7 +1526,7 @@ processes or computers.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "12l7rycjfa6d9gnnjd6i097pf1qqzjnz9c1jgxhpldvkf0n7pbi7"))))
+               "0q30m9l28zsdzdmny7wjskd2fjfrgh1l595wir6bhwhil95g3i0c"))))
 
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
@@ -1549,7 +1560,8 @@ message.")))
                            "/submodules/" name "-everywhere-src-"
                            version ".tar.xz"))
        (sha256
-        (base32 "08c60nh95m98mcqk444axs76xi6m9x0wvdxrzk9c2cxwqdbz59fa"))
+        (base32
+         "1yj6pcj945fpbc7nihav0plxpx8ikylmxjy7wqdv5znslgf59dw3"))
        (modules '((ice-9 ftw)
                   (ice-9 match)
                   (srfi srfi-1)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index cec565bbc8..8bed56ff72 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -91,7 +91,7 @@
   (let ((rustc-version "1.19.0"))
     (package
       (name "mrustc")
-      (version "0.8.0")
+      (version "0.9")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -100,57 +100,61 @@
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0a7v8ccyzp1sdkwni8h1698hxpfz2sxhcpx42n6l2pbm0rbjp08i"))
-                (patches
-                 (search-patches "mrustc-0.8.0-fix-variable-length-integer-receiving.patch"))))
+                  "194ny7vsks5ygiw7d8yxjmp1qwigd71ilchis6xjl6bb2sj97rd2"))))
       (outputs '("out" "cargo"))
       (build-system gnu-build-system)
       (inputs
-       `(("llvm" ,llvm-3.9.1)))
+       `(("zlib" ,zlib)))
       (native-inputs
        `(("bison" ,bison)
          ("flex" ,flex)
          ;; Required for the libstd sources.
          ("rustc" ,(package-source rust-1.19))))
       (arguments
-       `(#:test-target "local_tests"
-         #:make-flags (list (string-append "LLVM_CONFIG="
-                                           (assoc-ref %build-inputs "llvm")
-                                           "/bin/llvm-config"))
+       `(#:test-target "test"
+         #:make-flags
+         (list ,(string-append "RUSTC_TARGET="
+                               (or (%current-target-system)
+                                   (nix-system->gnu-triplet-for-rust))))
          #:phases
          (modify-phases %standard-phases
           (add-after 'unpack 'patch-date
             (lambda _
               (substitute* "Makefile"
                (("shell date") "shell date -d @1"))
+              (substitute* "run_rustc/Makefile"
+               (("[$]Vtime ") "$V "))
               #t))
            (add-after 'patch-date 'unpack-target-compiler
              (lambda* (#:key inputs outputs #:allow-other-keys)
-               (substitute* "minicargo.mk"
-                 ;; Don't try to build LLVM.
-                 (("^[$][(]LLVM_CONFIG[)]:") "xxx:")
-                 ;; Build for the correct target architecture.
-                 (("^RUSTC_TARGET := x86_64-unknown-linux-gnu")
-                  (string-append "RUSTC_TARGET := "
-                                 ,(or (%current-target-system)
-                                      (nix-system->gnu-triplet-for-rust)))))
                (invoke "tar" "xf" (assoc-ref inputs "rustc"))
-               (chdir "rustc-1.19.0-src")
-               (invoke "patch" "-p0" "../rust_src.patch")
+               (chdir ,(string-append "rustc-" rustc-version "-src"))
+               (invoke "patch" "-p0" ,(string-append "../rustc-" rustc-version
+                                                     "-src.patch"))
                (chdir "..")
+               (setenv "RUSTC_VERSION" ,rustc-version)
+               (setenv "MRUSTC_TARGET_VER"
+                ,(version-major+minor rustc-version))
+               (setenv "OUTDIR_SUF" "")
                #t))
            (replace 'configure
              (lambda* (#:key inputs #:allow-other-keys)
-               (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
+               (setenv "CC" (string-append (assoc-ref inputs "gcc")
+                                           "/bin/gcc"))
+               (setenv "CXX" (string-append (assoc-ref inputs "gcc")
+                                            "/bin/g++"))
                #t))
            (add-after 'build 'build-minicargo
-             (lambda _
-               (for-each (lambda (target)
-                           (invoke "make" "-f" "minicargo.mk" target))
-                         '("output/libstd.hir" "output/libpanic_unwind.hir"
-                           "output/libproc_macro.hir" "output/libtest.hir"))
-               ;; Technically the above already does it - but we want to be clear.
-               (invoke "make" "-C" "tools/minicargo")))
+             (lambda* (#:key make-flags #:allow-other-keys)
+               ;; TODO: minicargo.mk: RUSTC_VERSION=$(RUSTC_VERSION) RUSTC_CHANNEL=$(RUSTC_SRC_TY) OUTDIR_SUF=$(OUTDIR_SUF)
+               (apply invoke "make" "-f" "minicargo.mk" "LIBS" make-flags)
+               (apply invoke "make" "-C" "tools/minicargo" make-flags)))
+           ;(add-after 'check 'check-locally
+           ;  (lambda* (#:key make-flags #:allow-other-keys)
+           ;    ;; The enum test wouldn't work otherwise.
+           ;    ;; See <https://github.com/thepowersgang/mrustc/issues/137>.
+           ;    (setenv "MRUSTC_TARGET_VER" ,(version-major+minor rustc-version))
+           ;    (apply invoke "make" "local_tests" make-flags)))
            (replace 'install
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
@@ -160,11 +164,13 @@
                       (cargo-bin (string-append cargo-out "/bin"))
                       (lib (string-append out "/lib"))
                       (lib/rust (string-append lib "/mrust"))
-                      (gcc (assoc-ref inputs "gcc")))
+                      (gcc (assoc-ref inputs "gcc"))
+                      (run_rustc (string-append out
+                                                "/share/mrustc/run_rustc")))
                  ;; These files are not reproducible.
                  (for-each delete-file (find-files "output" "\\.txt$"))
-                 (delete-file-recursively "output/local_tests")
-                 (mkdir-p lib)
+                 ;(delete-file-recursively "output/local_tests")
+                 (mkdir-p (dirname lib/rust))
                  (copy-recursively "output" lib/rust)
                  (mkdir-p bin)
                  (mkdir-p tools-bin)
@@ -172,6 +178,9 @@
                  ;; minicargo uses relative paths to resolve mrustc.
                  (install-file "tools/bin/minicargo" tools-bin)
                  (install-file "tools/bin/minicargo" cargo-bin)
+                 (mkdir-p run_rustc)
+                 (copy-file "run_rustc/Makefile"
+                            (string-append run_rustc "/Makefile"))
                  #t))))))
       (synopsis "Compiler for the Rust progamming language")
       (description "Rust is a systems programming language that provides memory
@@ -289,8 +298,12 @@ test = { path = \"../libtest\" }
                (setenv "CFG_RELEASE_CHANNEL" "stable")
                (setenv "CFG_LIBDIR_RELATIVE" "lib")
                (setenv "CFG_VERSION" "1.19.0-stable-mrustc")
+               (setenv "MRUSTC_TARGET_VER" ,(version-major+minor version))
                ; bad: (setenv "CFG_PREFIX" "mrustc") ; FIXME output path.
                (mkdir-p "output")
+               ;; mrustc 0.9 doesn't check the search paths for crates anymore.
+               (copy-recursively (string-append rustc-bootstrap "/lib/mrust")
+                                 "output")
                (invoke (string-append rustc-bootstrap "/tools/bin/minicargo")
                        "src/rustc" "--vendor-dir" "src/vendor"
                        "--output-dir" "output/rustc-build"
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 8e66cbd0b7..2a6f121219 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -424,7 +424,7 @@ required structures.")
   (package
     (inherit openssl)
     (name "openssl")
-    (version "1.0.2t")
+    (version "1.0.2u")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://www.openssl.org/source/openssl-"
@@ -436,7 +436,7 @@ required structures.")
                                         "/openssl-" version ".tar.gz")))
               (sha256
                (base32
-                "1g67ra0ph7gpz6fgvv1i96d792jmd6ymci5kk53vbikszr74djql"))
+                "05lxcs4hzyfqd5jn0d9p0fvqna62v2s4pc9qgmq0dpcknkzwdl7c"))
               (patches (search-patches "openssl-runpath.patch"
                                        "openssl-c-rehash-in.patch"))))
     (outputs '("out"
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8c94f0e34a..19e6ccb182 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -745,7 +745,7 @@ libebml is a C++ library to read and write EBML files.")
 (define-public libva
   (package
     (name "libva")
-    (version "2.5.0")
+    (version "2.6.1")
     (source
      (origin
        (method url-fetch)
@@ -757,7 +757,7 @@ libebml is a C++ library to read and write EBML files.")
              (string-append "https://www.freedesktop.org/software/vaapi/releases/"
                             "libva/libva-" version "/libva-" version ".tar.bz2")))
        (sha256
-        (base32 "0y38mw1ggxm15zq06r4qpwhd5wx4bppw1rsxpr6sq1m5d79rra1s"))))
+        (base32 "19df3r02k1p4cbyvifkdjyc8q7hi23f5b3x3390z52l25mjfnmvc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index f6ae958ae3..15b5dedd16 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -107,6 +107,7 @@
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages kde)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
@@ -830,6 +831,50 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.")
     ;; Only version 2.1 of the license
     (license license:lgpl2.1)))
 
+(define-public qoauth
+  (package
+    (name "qoauth")
+    (version "2.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ayoy/qoauth.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1b2jdqs526ac635yb2whm049spcsk7almnnr6r5b4yqhq922anw3"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("qca" ,qca)
+       ("qtbase" ,qtbase)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-code
+           (lambda _
+             (make-file-writable "src/qoauth.pc")
+             (substitute* "src/src.pro"
+               (("/lib64") "/lib"))
+             #t))
+         (delete 'configure) ; no configure script
+         (delete 'check) ; no test target
+         (add-before 'build 'qmake
+           (lambda _
+             (let ((qca (assoc-ref %build-inputs "qca")))
+               (invoke
+                "qmake"
+                (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                (string-append "QMAKE_INCDIR+=" qca "/include/Qca-qt5/QtCrypto")
+                (string-append "LIBS+=-L" qca "/lib")
+                (string-append "LIBS+=-lqca-qt5"))))))))
+    (home-page "https://github.com/ayoy/qoauth")
+    (synopsis "Qt-based C++ library for OAuth authorization scheme")
+    (description "QOAuth is an attempt to support interaction with
+OAuth-powered network services in a Qt way, i.e. simply, clearly and
+efficiently.  It gives the application developer no more than 4 methods.")
+    (license license:lgpl2.1+)))
+
 (define-public krona-tools
   (package
    (name "krona-tools")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 45f431c7bb..a638ae44e2 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -305,14 +305,14 @@ avoiding password prompts when X11 forwarding has already been setup.")
 (define-public libxkbcommon
   (package
     (name "libxkbcommon")
-    (version "0.9.1")
+    (version "0.10.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1q4v378sr9ad8fy9znl7k8xpf0wch655r9m6z0bcc7sw1azsminl"))))
+               "1wmnl0hngn6vrqrya4r8hvimlkr4jag39yjprls4gyrqvh667hsp"))))
     (build-system meson-build-system)
     (inputs
      `(("libx11" ,libx11)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 2392dc1cba..cd6c3218a8 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -3692,7 +3692,7 @@ alternative implementations like XRandR or TwinView.")
 (define-public xinput
   (package
     (name "xinput")
-    (version "1.6.2")
+    (version "1.6.3")
     (source
       (origin
         (method url-fetch)
@@ -3702,7 +3702,7 @@ alternative implementations like XRandR or TwinView.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1i75mviz9dyqyf7qigzmxq8vn31i86aybm662fzjz5c086dx551n"))))
+            "1vb6xdd1xmk5f7pwc5zcbxfray5sf1vbnscqwf2yl8lv7gfq38im"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxrender" ,libxrender)
@@ -3837,7 +3837,7 @@ extension to the X11 protocol.  It includes:
 (define-public xkeyboard-config
   (package
     (name "xkeyboard-config")
-    (version "2.27")
+    (version "2.28")
     (source
       (origin
         (method url-fetch)
@@ -3847,7 +3847,7 @@ extension to the X11 protocol.  It includes:
               ".tar.bz2"))
         (sha256
           (base32
-            "07wh443lhwv1j0q6xnxnji7f7ahh7xphxj90fv02cdd6zv4aw3b9"))))
+            "1kmxc8hdw4qpvdlzp4ag8ygl34lqhs6sn3pcz1sl0kn61xdv5bb9"))))
     (build-system gnu-build-system)
     (inputs
       `(("gettext" ,gettext-minimal)
diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm
index be2b808901..005157b0a4 100644
--- a/guix/build/qt-build-system.scm
+++ b/guix/build/qt-build-system.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +36,17 @@
 ;;
 ;; Code:
 
+(define* (check-setup #:rest args)
+  ;; Make Qt render "offscreen". In many cases this allows to run tests
+  ;; without starting a X11 server.
+  (setenv "QT_QPA_PLATFORM" "offscreen")
+  ;; Qt/KDE tests often need dbus (`dbus-launch …`) which is not fully
+  ;; set-up the the build container.
+  (setenv "DBUS_FATAL_WARNINGS" "0")
+  ;; Set here to ease overwriting 'check (even if set there, too)
+  (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+  #t)
+
 (define (variables-for-wrapping base-directories)
 
   (define (collect-sub-dirs base-directories subdirectory)
@@ -101,6 +112,7 @@ add a dependency of that output on Qt."
 
 (define %standard-phases
   (modify-phases cmake:%standard-phases
+    (add-before 'check 'check-setup check-setup)
     (add-after 'install 'qt-wrap wrap-all-programs)))
 
 (define* (qt-build #:key inputs (phases %standard-phases)