gnu: julius: Update to 1.7.0.
[jackhill/guix/guix.git] / gnu / packages / messaging.scm
index 4038ef0..2ce0ce2 100644 (file)
 ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2020 Mason Hock <chaosmonk@riseup.net>
-;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2022 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2020, 2021 Robert Karszniewicz <avoidr@posteo.de>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
@@ -35,6 +35,8 @@
 ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;; Copyright © 2022 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Giovanni Biscuolo <g@xelera.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -89,6 +91,7 @@
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kde)
+  #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages less)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages matrix)
-  #:use-module (gnu packages mono)
   #:use-module (gnu packages mpd)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
@@ -231,8 +233,8 @@ XMPP-based sessions.")
        ("libidn" ,libidn)
        ("qca" ,qca)
        ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtsvg" ,qtsvg)
+       ("qtmultimedia-5" ,qtmultimedia-5)
+       ("qtsvg-5" ,qtsvg-5)
        ("qtwebkit" ,qtwebkit)
        ("qtx11extras" ,qtx11extras)
        ("x11" ,libx11)
@@ -582,7 +584,7 @@ end-to-end encryption.")
 (define-public axc
   (package
     (name "axc")
-    (version "0.3.6")
+    (version "0.3.7")
     (source
      (origin
        (method git-fetch)
@@ -592,12 +594,13 @@ end-to-end encryption.")
        (modules '((guix build utils)))
        (snippet
         `(begin
-           ;; Submodules
+           ;; Empty directories meant to hold submodules that we provide as
+           ;; proper inputs below.
            (delete-file-recursively "lib")))
        (file-name
         (git-file-name name version))
        (sha256
-        (base32 "05sv7l6lk0xk4wb2bspc2sdpygrb1f0szzi82a1kyfm0fjz887b3"))))
+        (base32 "0b02b9flri374f8aw6xfz7mm9s57rb7393r8mdphv7kcsf76i7i5"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -996,7 +999,6 @@ authentication.")
        ("libxslt" ,libxslt)
        ;; ("libzephyr" ,libzephyr)
        ("meanwhile" ,meanwhile)
-       ("mono" ,mono)
        ("ncurses" ,ncurses)
        ("network-manager" ,network-manager)
        ("nspr" ,nspr)
@@ -1021,7 +1023,6 @@ authentication.")
         "--disable-gtkspell"
         "--disable-gevolution"
         "--enable-cap"
-        "--enable-mono"
         "--enable-cyrus-sasl"
         (string-append "--with-ncurses-headers="
                        (assoc-ref %build-inputs "ncurses")
@@ -1146,14 +1147,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
 (define-public python-nbxmpp
   (package
     (name "python-nbxmpp")
-    (version "2.0.4")
+    (version "3.1.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (pypi-uri "nbxmpp" version))
        (sha256
-        (base32 "1s2phiipq7ks8vrd93p96dzd5wgmgg8q9h2rxsnh2gg7iy06gj9c"))))
+        (base32 "0c32090gr1fiy7hkn73dcj4ad9gfdpks8hivl1dl8bql01jsfdnj"))))
     (build-system python-build-system)
     (native-inputs
      (list `(,glib "bin")))
@@ -1175,7 +1176,7 @@ of xmpppy.")
 (define-public gajim
   (package
     (name "gajim")
-    (version "1.3.3")
+    (version "1.4.6")
     (source
      (origin
        (method url-fetch)
@@ -1184,7 +1185,7 @@ of xmpppy.")
                        (version-major+minor version)
                        "/gajim-" version ".tar.gz"))
        (sha256
-        (base32 "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x"))
+        (base32 "0ks25hh7ksx0nfydixpixcli556w7qcylxp2z2xsx8mgzqv7c9la"))
        (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
     (build-system python-build-system)
     (arguments
@@ -1202,9 +1203,8 @@ of xmpppy.")
            (lambda _
              ;; XXX Gajim builds fine on some (my) machines but fails elsewhere:
              ;; ModuleNotFoundError: No module named 'gajim.gui.emoji_data'
-             ;; https://dev.gajim.org/gajim/gajim/-/issues/10478
-             (delete-file "test/lib/gajim_mocks.py")
-             (delete-file "test/unit/test_gui_interface.py")))
+             ;; https://dev.gajim.org/gajim/gajim/-/issues/11041
+             (delete-file "test/no_gui/test_styling.py")))
          (replace 'check
            (lambda _
              ;; Tests require a running X server.
@@ -1232,7 +1232,7 @@ of xmpppy.")
                     (wrap-program file
                       `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
                       `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
-                '("gajim" "gajim-remote" "gajim-history-manager"))))))))
+                '("gajim" "gajim-remote"))))))))
     (native-search-paths
      (list
       (search-path-specification
@@ -1254,42 +1254,45 @@ of xmpppy.")
           "3.9"
           "/site-packages"))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("python-distutils-extra" ,python-distutils-extra)
-       ("python-setuptools" ,python-setuptools)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           `(,gtk+ "bin")
+           python-distutils-extra
+           python-setuptools
+           xorg-server-for-tests))
     (inputs
-     `(("avahi" ,avahi)
-       ("dbus" ,dbus)
-       ("farstream" ,farstream)
-       ("geoclue" ,geoclue)
-       ("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gsound",gsound)
-       ("gspell" ,gspell)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gtk+" ,gtk+)
-       ("gupnp-igd" ,gupnp-igd)
-       ("libnice" ,libnice)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("libxss" ,libxscrnsaver)
-       ("network-manager" ,network-manager)
-       ("python-css-parser" ,python-css-parser)
-       ("python-dbus" ,python-dbus)
-       ("python-keyring" ,python-keyring)
-       ("python-nbxmpp" ,python-nbxmpp)
-       ("python-packaging" ,python-packaging)
-       ("python-pillow" ,python-pillow)
-       ("python-precis-i18n" ,python-precis-i18n)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyopenssl" ,python-pyopenssl)))
+     (list avahi
+           dbus
+           farstream
+           geoclue
+           glib
+           glib-networking
+           gsettings-desktop-schemas
+           gsound
+           gspell
+           gstreamer
+           gst-plugins-base
+           gtk+
+           gtksourceview-4
+           gupnp-igd
+           libappindicator
+           libnice
+           libsecret
+           libsoup
+           libxscrnsaver
+           network-manager
+           python-css-parser
+           python-dbus
+           python-gssapi
+           python-keyring
+           python-nbxmpp
+           python-packaging
+           python-pillow
+           python-precis-i18n
+           python-pycairo
+           python-pygobject
+           python-pyopenssl))
     (propagated-inputs
      (list dconf))
     (synopsis "Fully-featured XMPP client")
@@ -1302,16 +1305,16 @@ and OpenPGP) and available in 29 languages.")
 (define-public gajim-omemo
   (package
     (name "gajim-omemo")
-    (version "2.7.14")
+    (version "2.8.15")
     (source
      (origin
        (method url-fetch/zipbomb)
        (uri
         (string-append
-         "https://ftp.gajim.org/plugins_releases/omemo_"
+         "https://ftp.gajim.org/plugins/master/omemo/omemo_"
          version ".zip"))
        (sha256
-        (base32 "0jmyjqfc4vimvq5vdqsvz25dsij6bh92alml8qnn59p5farnf86v"))))
+        (base32 "1hf148ywr8knk5y3y5xvvwgw74ld1pcfjkp78g514ikcnzfycfcn"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -1319,7 +1322,7 @@ and OpenPGP) and available in 29 languages.")
        (begin
          (use-modules (guix build utils))
          (let* ((out (assoc-ref %outputs "out"))
-                (share (in-vicinity out "share/gajim/plugins"))
+                (share (in-vicinity out "share/gajim/plugins/omemo"))
                 (source (assoc-ref %build-inputs "source")))
            (mkdir-p share)
            (copy-recursively source share)
@@ -1338,16 +1341,16 @@ multi-client end-to-end encryption.")
 (define-public gajim-openpgp
   (package
     (name "gajim-openpgp")
-    (version "1.3.9")
+    (version "1.4.9")
     (source
      (origin
        (method url-fetch/zipbomb)
        (uri
         (string-append
-         "https://ftp.gajim.org/plugins_releases/openpgp_"
+         "https://ftp.gajim.org/plugins/master/openpgp/openpgp_"
          version ".zip"))
        (sha256
-        (base32 "0fzvvrap1hmj4rbrcjs6cs5c9l9c0795bgw9vxxxk915n6j91m23"))))
+        (base32 "1xwmf6ai1z7z9x6p1ysglxji73r7d27c0gzc8ykab29cjhjyv0dq"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -1355,7 +1358,7 @@ multi-client end-to-end encryption.")
        (begin
          (use-modules (guix build utils))
          (let* ((out (assoc-ref %outputs "out"))
-                (share (in-vicinity out "share/gajim/plugins"))
+                (share (in-vicinity out "share/gajim/plugins/openpgp"))
                 (source (assoc-ref %build-inputs "source")))
            (mkdir-p share)
            (copy-recursively source share)
@@ -1383,58 +1386,64 @@ Encryption to Gajim.")
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
     (arguments
-     `(#:tests? #f
-       #:parallel-build? #f             ; not supported
-       #:modules ((guix build cmake-build-system)
-                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
-                  (guix build utils))
-       #:imported-modules (,@%gnu-build-system-modules
-                           (guix build cmake-build-system)
-                           (guix build glib-or-gtk-build-system))
-       #:phases
-       (modify-phases %standard-phases
-         ;; For A/V support.
-         (add-after 'install 'wrap
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (dino (string-append out "/bin/dino"))
-                    (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
-               (wrap-program dino
-                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))))
-         (add-after 'install 'glib-or-gtk-wrap
-           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+     (list #:configure-flags #~(list "-DBUILD_TESTS=true")
+           #:parallel-build? #f         ; not supported
+           #:modules '((guix build cmake-build-system)
+                       ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                       (guix build utils))
+           #:imported-modules `(,@%gnu-build-system-modules
+                                (guix build cmake-build-system)
+                                (guix build glib-or-gtk-build-system))
+           #:phases
+           #~(modify-phases %standard-phases
+               ;; For A/V support.
+               (add-after 'install 'wrap
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (dino (string-append out "/bin/dino"))
+                          (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+                     (wrap-program dino
+                       `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))))
+               (add-after 'install 'glib-or-gtk-wrap
+                 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "./libdino-test")
+                     (invoke "./signal-protocol-vala-test")
+                     (invoke "./xmpp-vala-test")))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           `(,gtk+ "bin")
+           pkg-config
+           vala))
     (inputs
-     `(("atk" ,atk)
-       ("cairo" ,cairo)
-       ("librsvg" ,librsvg)
-       ("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("gpgme" ,gpgme)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gspell" ,gspell)               ;for spell-check support
-       ("gstreamer" ,gstreamer)         ;for A/V support
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gtk+" ,gtk+)
-       ("icu4c" ,icu4c)                 ;for emoji support
-       ("libcanberra" ,libcanberra)    ;for sound-notification support
-       ("libgcrypt" ,libgcrypt)
-       ("libgee" ,libgee)
-       ("libnice" ,libnice)
-       ("libsignal-protocol-c" ,libsignal-protocol-c)
-       ("libsoup" ,libsoup-minimal-2)
-       ("libsrtp" ,libsrtp)             ;for calls support
-       ("pango" ,pango)
-       ("qrencode" ,qrencode)
-       ("sqlite" ,sqlite)
-       ("webrtc-audio-processing" ,webrtc-audio-processing))) ;for A/V support
+     (list atk
+           cairo
+           librsvg
+           glib
+           glib-networking
+           gpgme
+           gsettings-desktop-schemas
+           gspell                       ;for spell-check support
+           gstreamer                    ;for A/V support
+           gst-plugins-base
+           gst-plugins-good
+           gtk+
+           icu4c                        ;for emoji support
+           libcanberra                  ;for sound-notification support
+           libgcrypt
+           libgee
+           libnice
+           libsignal-protocol-c
+           libsoup-minimal-2
+           libsrtp                      ;for calls support
+           pango
+           qrencode
+           sqlite
+           webrtc-audio-processing))    ;for A/V support
     (synopsis "Graphical Jabber/XMPP Client using GTK+/Vala")
     (description "Dino is a chat client for the desktop.  It focuses on providing
 a minimal yet reliable Jabber/XMPP experience and having encryption enabled by
@@ -1442,6 +1451,58 @@ default.")
     (home-page "https://dino.im")
     (license license:gpl3+)))
 
+(define-public kaidan
+  (package
+    (name "kaidan")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/unstable/kaidan/" version
+                                  "/kaidan-" version ".tar.xz"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            (delete-file-recursively "3rdparty")))
+       (sha256
+        (base32 "195iddv35gc3k83r226y17avsab2b9bszgd7z7ynbddsgbf75rx7"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:configure-flags #~(list "-DBUILD_TESTS=true")))
+    (native-inputs (list extra-cmake-modules
+                         perl
+                         pkg-config
+                         python-wrapper))
+    (inputs (list kirigami
+                  knotifications
+                  qtbase-5
+                  qtdeclarative-5
+                  qtgraphicaleffects
+                  qtlocation
+                  qtquickcontrols2-5
+                  qtsvg-5
+                  qtmultimedia-5
+                  qtxmlpatterns
+                  qqc2-desktop-style
+                  qxmpp
+                  zxing-cpp))
+    (home-page "https://www.kaidan.im/")
+    (synopsis "Qt-based XMPP/Jabber Client")
+    (description "Kaidan is a chat client.  It uses the open communication
+protocol XMPP (Jabber).  The user interface makes use of Kirigami and QtQuick,
+while the back-end of Kaidan is entirely written in C++ using Qt and the
+Qt-based XMPP library QXmpp.")
+    (license (list
+              ;; Graphics
+              license:cc-by-sa4.0
+              ;; Files:
+              ;; src/{StatusBar.cpp|StatusBar.h|singleapp/*|hsluv-c/*}
+              ;; utils/generate-license.py
+              license:expat
+              ;; QrCodeVideoFrame
+              license:asl2.0
+              ;; Others
+              license:gpl3+))))
+
 (define-public prosody
   (package
     (name "prosody")
@@ -1748,7 +1809,7 @@ instant messenger with audio and video chat capabilities.")
                          ,(list (search-input-directory
                                  inputs "lib/qt5/plugins/"))))))))))
     (native-inputs
-     (list pkg-config qttools))
+     (list pkg-config qttools-5))
     (inputs
      (list ffmpeg
            filteraudio
@@ -1764,7 +1825,7 @@ instant messenger with audio and video chat capabilities.")
            openal
            qrencode
            qtbase-5
-           qtsvg
+           qtsvg-5
            sqlcipher))
     (home-page "https://qtox.github.io/")
     (synopsis "Tox chat client using Qt")
@@ -2019,39 +2080,38 @@ support, and more.")
 (define-public freetalk
   (package
     (name "freetalk")
-    (version "4.1")
+    (version "4.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/freetalk/freetalk-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1rmrn7a1bb7vm26yaklrvx008a9qhwc32s57dwrlf40lv9gffwny"))))
+                "105mw7pg2mcp85r82cs4rv77nwvbw8025047364jzbq6lwllynxv"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags
-       (list "CFLAGS=-fcommon")
-       #:phases
-       (modify-phases %standard-phases
-         ;; For 'system' commands in Scheme code.
-         (add-after 'install 'wrap-program
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out       (assoc-ref outputs "out"))
-                    (bash      (assoc-ref inputs "bash"))
-                    (coreutils (assoc-ref inputs "coreutils"))
-                    (less      (assoc-ref inputs "less")))
-               (wrap-program (string-append out "/bin/freetalk")
-                 `("PATH" ":" prefix
-                   ,(map (lambda (dir)
-                           (string-append dir "/bin"))
-                         (list bash coreutils less))))
-               #t))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'wrap-program
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (wrap-program (string-append out "/bin/freetalk")
+                       `("PATH" ":" suffix
+                         ,(map (lambda (command)
+                                 (dirname
+                                  (search-input-file
+                                   inputs (string-append "bin/" command))))
+                               ;; This list is not exhaustive: we assume that,
+                               ;; e.g., cat is packaged with other coreutils.
+                               (list "bash" ; src/{commands,util}.c et al
+                                     "cat"  ; extensions/first-time-run.sh
+                                     "less")))))))))) ; extensions/history.scm.
     (native-inputs
      (list autoconf automake pkg-config texinfo))
     (inputs
      (list bash
            glib
-           guile-2.0
+           guile-3.0
            less
            loudmouth
            readline))
@@ -2252,7 +2312,7 @@ notifications, and Python scripting support.")
 (define-public libqmatrixclient
   (package
     (name "libqmatrixclient")
-    (version "0.5.3.2")
+    (version "0.6.11")
     (source
      (origin
        (method git-fetch)
@@ -2261,10 +2321,10 @@ notifications, and Python scripting support.")
               (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0gkwr3yw6k2m0j8cc085b5p2q788rf5nhp1p5hc5d55pc7mci2qs"))))
+        (base32 "072d3irpdd0p4w77s5pp0baqf74hk7vqggw7ic7i42lzjdwp3yql"))))
     (build-system cmake-build-system)
     (inputs
-     (list qtbase-5 qtmultimedia))
+     (list qtbase-5 qtmultimedia-5))
     (arguments
      `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
        #:tests? #f))                    ; no tests
@@ -2279,7 +2339,7 @@ QMatrixClient project.")
 (define-public mtxclient
   (package
     (name "mtxclient")
-    (version "0.7.0")
+    (version "0.8.2")
     (source
      (origin
        (method git-fetch)
@@ -2288,7 +2348,7 @@ QMatrixClient project.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0kgz9i3xgyk1a82sv48a1m8gdxg0cl5pgd5imgwy519vvjlkwv48"))))
+        (base32 "041ckjvfxapv1q6x9xd8q70x43cz10x7p11aql58lnc0jp0kwry7"))))
     (arguments
      `(#:configure-flags
        (list
@@ -2324,7 +2384,7 @@ for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
 (define-public nheko
   (package
     (name "nheko")
-    (version "0.9.3")
+    (version "0.10.1")
     (source
      (origin
        (method git-fetch)
@@ -2333,7 +2393,7 @@ for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1941jvk72qy9g41cs2p3d6fphkg8ccjlsiclwymvzdyi7s3ilml7"))
+        (base32 "0a3wvv7vzh60hvyzy6776v6wa9d6n020684dqbcl4dw608mf4ahk"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -2352,13 +2412,15 @@ for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'unbundle-dependencies
-            (lambda _
-              (let ((single-app #$(this-package-input "single-application-qt5")))
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((libSingleApplication.a
+                     (search-input-file inputs "lib/libSingleApplication.a"))
+                    (httplib.h (search-input-file inputs "include/httplib.h")))
                 (substitute* "CMakeLists.txt"
                   ;; Remove include and source dirs,replace with the correct one
-                  (("third_party/blurhash/blurhash.cpp") "")
-                  (("third_party/cpp-httplib-0.5.12")
-                   (string-append "\"" single-app "/include\""))
+                  (("third_party/blurhash/blurhash\\.[ch]pp") "")
+                  (("third_party/cpp-httplib-0\\.5\\.12")
+                   (dirname httplib.h))
                   (("add_subdirectory.*third_party/SingleApplication.*") "")
                   ;; Link using the correct static/shared libs
                   (("SingleApplication::SingleApplication")
@@ -2366,7 +2428,7 @@ for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
                     ;; Dynamic libraries
                     "httplib" "\n" "blurhash" "\n"
                     ;; Static library
-                    single-app "/lib/libSingleApplication.a"))))))
+                    libSingleApplication.a))))))
           (add-after 'unpack 'fix-determinism
             (lambda _
               ;; Make Qt deterministic.
@@ -2396,18 +2458,18 @@ for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
            mtxclient
            openssl
            qtbase-5
-           qtdeclarative
+           qtdeclarative-5
            qtkeychain
            qtgraphicaleffects
-           qtmultimedia
-           qtquickcontrols2
-           qtsvg
+           qtmultimedia-5
+           qtquickcontrols2-5
+           qtsvg-5
            spdlog
            single-application-qt5
            xcb-util-wm
            zlib))
     (native-inputs
-     (list asciidoc doxygen graphviz pkg-config qttools))
+     (list asciidoc doxygen graphviz pkg-config qttools-5))
     (home-page "https://github.com/Nheko-Reborn/nheko")
     (synopsis "Desktop client for Matrix using Qt and C++14")
     (description "@code{Nheko} want to provide a native desktop app for the
@@ -2421,7 +2483,7 @@ notification, emojis, E2E encryption, and voip calls.")
 (define-public quaternion
   (package
     (name "quaternion")
-    (version "0.0.9.4f")
+    (version "0.0.95.1")
     (outputs '("out" "debug"))
     (source
      (origin
@@ -2431,17 +2493,18 @@ notification, emojis, E2E encryption, and voip calls.")
               (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1q9ddz4rs02a0w3lwrsjnh59khv38cq9f0kv09vnwvazvayn87ck"))))
+        (base32 "10mzcr4rpyq5bl3h8wzxxlk8rdz7slhiq863xs77bmsq2pzf6lp8"))))
     (build-system qt-build-system)
     (inputs
      (list libqmatrixclient
            qtbase-5
-           qtdeclarative
-           qtmultimedia
-           qtquickcontrols
-           qtquickcontrols2
-           qtsvg
-           qttools
+           qtdeclarative-5
+           qtgraphicaleffects
+           qtmultimedia-5
+           qtquickcontrols-5
+           qtquickcontrols2-5
+           qtsvg-5
+           qttools-5
            xdg-utils))
     (arguments
      `(#:tests? #f))                    ; no tests
@@ -2590,31 +2653,30 @@ replacement.")
 (define-public tdlib
   (package
     (name "tdlib")
-    (version "1.8.0")
+    (version "1.8.4")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/tdlib/td")
-             (commit (string-append "v" version))))
+             (commit "7eabd8ca60de025e45e99d4e5edd39f4ebd9467e")))
        (sha256
-        (base32 "19psqpyh9a2kzfdhgqkirpif4x8pzy89phvi59dq155y30a3661q"))
+        (base32 "1chs0ibghjj275v9arsn3k68ppblpm7ysqk0za9kya5vdnldlld5"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list "-DCMAKE_BUILD_TYPE=Release"
-             "-DTD_ENABLE_LTO=OFF")     ; FIXME: Get LTO to work.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-failing-tests
-           (lambda _
-             (substitute* "test/CMakeLists.txt"
-               ;; The test cases are compiled into a distinct binary
-               ;; which uses mtproto.cpp to attempt to connect to
-               ;; a remote server. Removing this file from the sources
-               ;; list disables those specific test cases.
-               (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/mtproto.cpp") "")))))))
+     (list
+      #:build-type "Release"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-failing-tests
+            (lambda _
+              (substitute* "test/CMakeLists.txt"
+                ;; The test cases are compiled into a distinct binary
+                ;; which uses mtproto.cpp to attempt to connect to
+                ;; a remote server. Removing this file from the sources
+                ;; list disables those specific test cases.
+                (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/mtproto.cpp") "")))))))
     (native-inputs
      (list gperf openssl zlib php doxygen))
     (synopsis "Cross-platform library for building Telegram clients")
@@ -2625,6 +2687,20 @@ support for high performance Telegram Bot creation.")
     (home-page "https://core.telegram.org/tdlib")
     (license license:boost1.0)))
 
+(define-public tdlib-1.8.0
+  (package
+    (inherit tdlib)
+    (name "tdlib-1.8.0")
+    (version "1.8.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tdlib/td")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "19psqpyh9a2kzfdhgqkirpif4x8pzy89phvi59dq155y30a3661q"))))))
+
 (define-public purple-mm-sms
   (package
     (name "purple-mm-sms")
@@ -2721,6 +2797,8 @@ asynchronicity.")
                     (url "https://github.com/google/libphonenumber")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
+              (patches (search-patches
+                        "libphonenumber-reproducible-build.patch"))
               (sha256
                (base32
                 "06y3mh1d1mks6d0ynxp3980g712nkf8l5nyljpybsk326b246hg9"))))
@@ -2742,52 +2820,71 @@ validating international phone numbers.")
    (home-page "https://github.com/google/libphonenumber")
    (license license:asl2.0)))
 
-
 (define-public chatty
- (package
-   (name "chatty")
-   (version "0.4.0")
-   (source (origin
 (package
+    (name "chatty")
+    (version "0.6.7")
+    (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://source.puri.sm/Librem5/chatty.git")
-                    (commit (string-append "v" version))))
+                    (commit (string-append "v" version))
+                    ;; Fetch the required subprojects, notably libcmatrix
+                    ;; which has no releases and is developed in tandem.
+                    ;; Note: this also pulls in libgd, and embeds functionality
+                    ;; from it that is not part of the public API, making
+                    ;; unbundling difficult.
+                    (recursive? #true)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "12k1a5xrwd6zk4x0m53hbzggk695z3bpbzy1wcikzy0jvch7h13d"))))
-   (build-system meson-build-system)
-   (arguments
-    '(#:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'skip-updating-desktop-database
-          (lambda _
-            (substitute* "meson.build"
-              (("meson.add_install_script.*") "")))))))
-   (native-inputs
-    (list gettext-minimal `(,glib "bin") pkg-config protobuf))
-   (inputs
-    (list feedbackd
-          folks
-          gsettings-desktop-schemas
-          gspell
-          json-glib
-          libgcrypt
-          libgee
-          libhandy
-          libolm
-          libphonenumber
-          modem-manager
-          pidgin
-          purple-mm-sms
-          sqlite))
-   (propagated-inputs
-    (list adwaita-icon-theme evolution-data-server))
-   (synopsis "Mobile client for XMPP and SMS messaging")
-   (description "Chatty is a chat program for XMPP and SMS.  It works on mobile
+                "11q07vjrrjf3k00kk41vm79brpq0qigz7l328br3g0li979kz32v"))))
+    (build-system meson-build-system)
+    (arguments
+     '(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-updating-desktop-database
+           (lambda _
+             (substitute* "meson.build"
+               (("meson.add_install_script.*") ""))))
+         (add-before 'check 'pre-check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; One test requires a running Xorg server.  Start one.
+               (system "Xvfb :1 &")
+               (setenv "DISPLAY" ":1")
+               ;; HOME must be writable for writing configuration files.
+               (setenv "HOME" "/tmp")))))))
+    (native-inputs
+     (list gettext-minimal
+           `(,glib "bin")
+           pkg-config
+           protobuf
+           xorg-server-for-tests))
+    (inputs
+     (list feedbackd
+           folks-with-libsoup2
+           gnome-desktop
+           gsettings-desktop-schemas
+           gspell
+           json-glib
+           libgcrypt
+           libgee
+           libhandy
+           libolm
+           libphonenumber
+           modem-manager
+           pidgin
+           purple-mm-sms
+           sqlite))
+    (propagated-inputs
+     (list adwaita-icon-theme evolution-data-server-3.44))
+    (synopsis "Mobile client for XMPP and SMS messaging")
+    (description "Chatty is a chat program for XMPP and SMS.  It works on mobile
 as well as on desktop platforms.  It's based on libpurple and ModemManager.")
-   (home-page "https://source.puri.sm/Librem5/chatty")
-   (license license:gpl3+)))
+    (home-page "https://source.puri.sm/Librem5/chatty")
+    (license license:gpl3+)))
 
 (define-public mosquitto
   (package
@@ -2818,6 +2915,36 @@ as phones, embedded computers or microcontrollers.")
     ;; Dual licensed.
     (license (list license:epl1.0 license:edl1.0))))
 
+(define-public python-paho-mqtt
+  (package
+    (name "python-paho-mqtt")
+    (version "1.6.1")
+    (source (origin
+              (method git-fetch)        ;for tests
+              (uri (git-reference
+                    (url "https://github.com/eclipse/paho.mqtt.python")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0679iafabd3kvk4fj4lvcl14zg82yq5pz5rji4z659lm2g2zlwgn"))))
+    (build-system python-build-system)
+    (arguments (list #:phases
+                     #~(modify-phases %standard-phases
+                         (replace 'check
+                           (lambda* (#:key tests? #:allow-other-keys)
+                             (when tests?
+                               (invoke "pytest" "-vv")))))))
+    (native-inputs (list python-pytest))
+    (home-page "https://www.eclipse.org/paho/")
+    (synopsis "Python implementation of an MQTT client class")
+    (description "MQTT and MQTT-SN are lightweight publish/subscribe messaging
+transports for TCP/IP and connection-less protocols (such as UDP).  The
+Eclipse Paho project provides client side implementations of MQTT and MQTT-SN
+in a variety of programming languages.  This package is for the Python
+implementation of an MQTT version client class.")
+    (license (list license:epl2.0 license:edl1.0)))) ;dual licensed
+
 (define-public movim-desktop
   (let ((commit "83d583b83629dbd2ec448da9a1ffd81f6c1fb295")
         (revision "3"))
@@ -2849,9 +2976,9 @@ as phones, embedded computers or microcontrollers.")
                   "\"../build"))
                #t)))))
       (inputs
-       (list qtbase-5 qtdeclarative qtwebchannel))
+       (list qtbase-5 qtdeclarative-5 qtwebchannel-5))
       (propagated-inputs
-       (list qtwebengine))
+       (list qtwebengine-5))
       (home-page "https://movim.eu/")
       (synopsis "Desktop Application for Movim")
       (description
@@ -2978,8 +3105,8 @@ social and chat platform.")
        ("qite" ,qite)
        ("qtbase" ,qtbase-5)
        ("qtkeychain" ,qtkeychain)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtsvg" ,qtsvg)
+       ("qtmultimedia-5" ,qtmultimedia-5)
+       ("qtsvg-5" ,qtsvg-5)
        ("qtx11extras" ,qtx11extras)
        ("usrsctp" ,usrsctp)
        ("x11" ,libx11)
@@ -3085,7 +3212,7 @@ designed for experienced users.")
 (define-public matterbridge
   (package
     (name "matterbridge")
-    (version "1.24.0")
+    (version "1.25.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3094,7 +3221,7 @@ designed for experienced users.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0cd70x9685162c0imdici1ipl9lziq700wzyb5bsg610wfak3ms7"))))
+                "0csvxsgl62fjkrmk0wy64h2qaiy16m0wh6pqfbhz0kfacq16p9an"))))
     ;; Using the go-build-system results in the same error message
     ;; than in the bug 1551[1]. So we fix it by running go build
     ;; manually in the git repository as-is as this is the solution
@@ -3271,7 +3398,7 @@ Weechat communicate over the Matrix protocol.")
 (define-public weechat-wee-slack
   (package
     (name "weechat-wee-slack")
-    (version "2.8.0")
+    (version "2.9.0")
     (source
      (origin
        (method git-fetch)
@@ -3281,7 +3408,7 @@ Weechat communicate over the Matrix protocol.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0xfklr0gsc9jgxfyrrb2j756lclz9g8imcb0pk0xgyj8mhsw23zk"))))
+         "01h9n6a39sgpczvjywvxb5z5vz3jb3h2xx2vspjkkz06gzwniijq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -3363,4 +3490,35 @@ Discord.")
     (home-page "https://github.com/taylordotfish/harmony")
     (license license:gpl3+)))
 
+(define-public pn
+  (package
+    (name "pn")
+    (version "0.9.0")
+    (home-page "https://github.com/Orange-OpenSource/pn")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1lvzb0yixj7wmmqzsri20k9nn3gf06j0yjvmg2mi1zihywq7s4dx"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f ;no tests
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'set-lib-destination
+                          (lambda _
+                            (substitute* "CMakeLists.txt"
+                              (("DESTINATION \\$\\{AWKLIBPATH\\}")
+                               "DESTINATION lib")))))))
+    (inputs (list icu4c libphonenumber protobuf))
+    (synopsis "Command-line validation tool for phone numbers")
+    (description
+     "@code{pn} provides a command line tool that allows users to operate on
+phone numbers (get validity information, reformat them, or extract numbers from
+a text snippet), using @code{libphonenumber}.")
+    (license license:asl2.0)))
+
 ;;; messaging.scm ends here