summaryrefslogtreecommitdiff
path: root/gnu/packages/messaging.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/messaging.scm')
-rw-r--r--gnu/packages/messaging.scm278
1 files changed, 124 insertions, 154 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index df35fc8229..e3de2c4b10 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2015, 2025 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021, 2022, 2024, 2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2018-2021, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@@ -35,7 +35,7 @@
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Jack Hill <jackhill@jackhill.us>
-;;; Copyright © 2022, 2023, 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022 Giovanni Biscuolo <g@xelera.eu>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
@@ -77,7 +77,7 @@
#:use-module (gnu packages cmake)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
- #:use-module (gnu packages certs)
+ #:use-module (gnu packages nss)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
@@ -96,6 +96,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
@@ -151,6 +152,7 @@
#:use-module (gnu packages telephony)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
+ #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
@@ -400,20 +402,23 @@ conferencing.")
(define-public qxmpp
(package
(name "qxmpp")
- (version "1.4.0")
+ ;; kaidan requires a precise version
+ (version "1.10.3")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/qxmpp-project/qxmpp")
+ (url "https://invent.kde.org/libraries/qxmpp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1knpq1jkwk0lxdwczbmzf7qrjvlxba9yr40nbq9s5nqkcx6q1c3i"))))
- (build-system cmake-build-system)
+ (base32 "0qinrbr63b1baqv1a7cph8bma6kj1ib8s8ywq6d9497lc1yl2kgi"))))
+ (build-system qt-build-system)
(arguments
- `(#:configure-flags (list "-DBUILD_EXAMPLES=false"
- "-DWITH_GSTREAMER=true")
+ `(#:qtbase ,qtbase
+ #:configure-flags (list "-DBUILD_EXAMPLES=false"
+ "-DWITH_GSTREAMER=true"
+ "-DBUILD_OMEMO=ON") ;needed by kaidan
#:test-exclude
(string-join ;; These tests use the network.
(list "tst_qxmppiceconnection"
@@ -423,8 +428,12 @@ conferencing.")
(native-inputs
(list pkg-config))
(inputs
- (list gstreamer qtbase-5))
- (home-page "https://github.com/qxmpp-project/qxmpp")
+ (list
+ gstreamer
+ libomemo-c
+ qca-qt6
+ qt5compat))
+ (home-page "https://invent.kde.org/libraries/qxmpp")
(synopsis "XMPP client and server library")
(description
"QXmpp is a XMPP client and server library written in C++ and uses the Qt
@@ -1137,14 +1146,14 @@ control of your private keys, no previous conversation is compromised.")
(define-public znc
(package
(name "znc")
- (version "1.10.0")
+ (version "1.10.1")
(source (origin
(method url-fetch)
(uri (string-append "https://znc.in/releases/archive/znc-"
version ".tar.gz"))
(sha256
(base32
- "06bb6c2nciwbknfschxd2fjkpigd6i0zgwl6jiz5lm7gcadssrdy"))))
+ "0038qjkc1cxqz16nx9b37gjqzmnavv2kxdbjb4c0c9mz3n2pcvjf"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f
@@ -1473,7 +1482,7 @@ default.")
(define-public kaidan
(package
(name "kaidan")
- (version "0.9.0")
+ (version "0.12.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kde/unstable/kaidan/" version
@@ -1483,28 +1492,38 @@ default.")
#~(begin
(delete-file-recursively "3rdparty")))
(sha256
- (base32 "1waqv0fdkhvp3cqy2a2g6i2wc9s0zbvgzknymrwxy99mnx9ymw9g"))))
+ (base32 "0q8py100nmvyhm8pfnvpxmghbg445x2vgpw3c519bcrr4w7y6yl0"))))
(build-system qt-build-system)
(arguments
- (list #:configure-flags #~(list "-DBUILD_TESTS=true")))
+ (list
+ #:qtbase qtbase
+ #:configure-flags #~(list "-DBUILD_TESTS=true")
+ #:test-exclude "PublicGroupChatTest"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'set-home
+ (lambda _
+ ;; Tests need write permission in $HOME.
+ (setenv "HOME" "/tmp"))))))
(native-inputs (list extra-cmake-modules
- perl
- pkg-config
- python-wrapper))
- (inputs (list kirigami-5
- knotifications-5
- qtbase-5
- qtdeclarative-5
- qtgraphicaleffects
- qtlocation-5
- qtquickcontrols2-5
- qtsvg-5
- qtmultimedia-5
- qtxmlpatterns-5
+ pkg-config))
+ (inputs (list icu4c
+ kcrash
+ kdsingleapplication
+ kio
+ kirigami
+ kirigami-addons
+ knotifications
+ kquickimageeditor
+ prison
qqc2-desktop-style
+ qtlocation
+ qtmultimedia
+ qtpositioning
+ qtsvg
+ qttools
qxmpp
- sonnet
- zxing-cpp-1.2a))
+ sonnet))
(home-page "https://www.kaidan.im/")
(synopsis "Qt-based XMPP/Jabber Client")
(description "Kaidan is a chat client. It uses the open communication
@@ -2249,16 +2268,16 @@ are both supported).")
(define-public profanity
(package
(name "profanity")
- (version "0.15.0")
+ (version "0.15.1")
(source
(origin
(method url-fetch)
(uri
- (string-append "https://profanity-im.github.io/tarballs/profanity-"
- version ".tar.gz"))
+ (string-append "https://github.com/profanity-im/profanity/releases/download/" version
+ "/profanity-" version ".tar.gz"))
(sha256
(base32
- "1yy7x9ycqg6c65k66z47p8mvj48qc0pa4as1lk1agj8ffn7mg7sa"))))
+ "0163zs1070yhfsxzfknwagjbqi6jppwb117kqlggsy51ka28mqn1"))))
(build-system glib-or-gtk-build-system)
(arguments
(list
@@ -2729,11 +2748,11 @@ replacement.")
(license license:gpl2+)))
(define-public tdlib
- (let ((commit "8e29c4d7d21db3ab2c7a88c384626e95ef789f61")
+ (let ((commit "5c77c4692c28eb48a68ef1c1eeb1b1d732d507d3")
(revision "0"))
(package
(name "tdlib")
- (version (git-version "1.8.45" revision commit))
+ (version (git-version "1.8.52" revision commit))
(source
(origin
(method git-fetch)
@@ -2741,7 +2760,7 @@ replacement.")
(url "https://github.com/tdlib/td")
(commit commit)))
(sha256
- (base32 "16mjw052clfyknn3n3srl35dq3xmyyxwkvz42kml0g5r7qma9ws7"))
+ (base32 "1a2hh3f2m7vg7jky1144rfw5jxly3i278ck9zsh9v4kkvxrhy41q"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -3213,42 +3232,31 @@ designed for experienced users.")
(define-public python-zulip
(package
(name "python-zulip")
- (version "0.7.1")
+ (version "0.9.0")
(source
(origin
- ;; There is no source on Pypi.
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/zulip/python-zulip-api")
- (commit version)))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (pypi-uri "zulip" version))
(sha256
- (base32
- "0da1ki1v252avy27j6d7snnc0gyq0xa9fypm3qdmxhw2w79d6q36"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; TODO: This is fixed upstream in later versions
- (substitute* "zulip/tests/test_default_arguments.py"
- (("optional arguments:") "options:"))))))
- (build-system python-build-system)
+ (base32 "0hq8kl5cvbqsmb5zqq5wi61cnv0zzlcqg69yn59wqgwybng1853s"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'cd-to-zulip-dir
- (lambda _ (chdir "zulip")))
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (let ((test-zulip "../tools/test-zulip"))
- (when tests?
- (add-installed-pythonpath inputs outputs)
- (patch-shebang test-zulip)
- (invoke test-zulip))))))))
- (propagated-inputs
- (list python-matrix-client python-pyopenssl python-requests
- python-six))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: It tries to load from ~/zuliprc and fails:
+ ;; zulip.ConfigNotFoundError: api_key or email not specified and
+ ;; file /homeless-shelter/zuliprc does not exist.
+ (delete 'sanity-check))))
(native-inputs
- (list python-cython python-distro python-pytest))
+ (list python-matrix-nio
+ python-pytest
+ python-setuptools))
+ (propagated-inputs
+ (list python-click
+ python-distro
+ python-requests
+ python-typing-extensions))
(home-page "https://github.com/zulip/python-zulip-api")
(synopsis "Zulip's API Python bindings")
(description
@@ -3258,36 +3266,59 @@ designed for experienced users.")
(define-public zulip-term
(package
(name "zulip-term")
- (version "0.5.2")
+ (version "0.7.0")
(source
(origin
- ;; Pypi package doesn't ship tests.
(method git-fetch)
(uri (git-reference
(url "https://github.com/zulip/zulip-terminal")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32
- "1xhhy3v4wck74a83avil0rnmsi2grrh03cww19n5mv80p2q1cjmf"))
- (modules '((guix build utils)))
- (snippet '(substitute* "setup.py"
- (("\\=\\=1\\.7") ">=1.7") ; pytest-mock
- (("\\=\\=2\\.5") ">=2.5") ; pytest-cov
- (("4\\.5\\.2") "4.4.2"))))) ; lxml
+ (base32 "0p7q9r1bwak3kx4ig96pn3x53ggp9y70xczvqj6225bmi99r92v6"))))
(build-system pyproject-build-system)
(arguments
- '(#:test-flags '("--ignore=tests/cli/test_run.py")))
+ (list
+ ;; tests: 2411 passed, 3 skipped, 7 deselected, 19 xfailed, 77 warnings
+ #:test-flags
+ #~(list "-k" (string-join
+ ;; 3 tests fail with pytest passing option in decorator
+ (list "not test_main_multiple_autohide_options[options0]"
+ "test_main_multiple_autohide_options[options1]"
+ "test_main_multiple_notify_options[options0]"
+ "test_main_multiple_notify_options[options1]"
+ ;; Some differences in TUI which cause assertion to
+ ;; fail.
+ "test_soup2markup[link_api]"
+ "test_soup2markup[link_userupload]"
+ "test_soup2markup[preview-twitter]")
+ " and not "))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-pytest-config
+ (lambda _
+ (substitute* "setup.cfg"
+ ((".*-cov.*") "")
+ ((".rxXs") ""))
+ (substitute* "tests/cli/test_run.py"
+ (("lines = lines.split\\(\"pytest: \", 1\\)\\[1\\]")
+ "lines = lines.split('__main__.py: ', 1)[1]")))))))
(inputs
(list python-beautifulsoup4
python-lxml
- python-mypy-extensions
- python-urwid
+ python-pygments
+ python-pyperclip
+ python-dateutil
+ python-pytz
+ python-typing-extensions
+ python-tzlocal
+ python-urwid-for-zulip-term
python-urwid-readline
python-zulip))
(native-inputs
- (list python-distro python-pytest python-pytest-cov
- python-pytest-mock))
+ (list python-pytest
+ python-pytest-mock
+ python-setuptools))
(home-page "https://github.com/zulip/zulip-terminal")
(synopsis "Zulip's official terminal client")
(description "This package contains Zulip's official terminal client.")
@@ -3357,6 +3388,7 @@ designed for experienced users.")
(build-system go-build-system)
(arguments
(list
+ #:go go-1.23
;; It helps to resolve <golang.org/x/net/publicsuffix/table.go:63:12>:
;; pattern data/children: cannot embed irregular file data/children
#:embed-files #~(list "children" "nodes" "text")
@@ -3517,71 +3549,6 @@ a persistent connection to an IRC server, acting as a proxy and buffer for
a number of clients.")
(license license:gpl3+)))
-(define-public weechat-matrix
- (package
- (name "weechat-matrix")
- (version "0.3.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/poljar/weechat-matrix")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1iv55n4k05139f7jzkhczgw4qp6qwilrvfsy3c6v2m1kxffj12d3"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'build)
- (replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((weechat-python (string-append (assoc-ref outputs "out")
- "/share/weechat/python")))
- ;; Avoid circular import by renaming the matrix module to
- ;; weechat_matrix.
- (substitute* (cons "main.py"
- (append (find-files "matrix")
- (find-files "tests")))
- (("from matrix") "from weechat_matrix")
- (("import matrix") "import weechat_matrix"))
- ;; Install python modules.
- (invoke "make" "install-lib"
- (string-append "INSTALLDIR="
- (site-packages inputs outputs)
- "/weechat_matrix"))
- ;; Extend PYTHONPATH to find installed python modules.
- (add-installed-pythonpath inputs outputs)
- ;; Augment sys.path so that dependencies are found.
- (substitute* "main.py"
- (("import os\n" all)
- (apply string-append
- all
- "import sys\n"
- (map (lambda (path)
- (string-append "sys.path.append('" path "')\n"))
- (string-split (getenv "GUIX_PYTHONPATH") #\:)))))
- ;; Install script.
- (mkdir-p weechat-python)
- (copy-file "main.py"
- (string-append weechat-python "/matrix.py")))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest")))))))
- (inputs
- (list python-matrix-nio python-pygments python-pyopenssl
- python-webcolors))
- (native-inputs
- (list python-pytest))
- (home-page "https://github.com/poljar/weechat-matrix")
- (synopsis "Weechat Matrix protocol script")
- (description "@code{weechat-matrix} is a Python plugin for Weechat that lets
-Weechat communicate over the Matrix protocol.")
- (license license:isc)))
-
(define-public weechat-wee-slack
(package
(name "weechat-wee-slack")
@@ -3654,21 +3621,24 @@ for notification of events.")
(license license:gpl3+)))
(define-public python-harmony
+ ;; TODO: Remove python-harmony? Repository is archived.
(package
(name "python-harmony")
- (version "0.7.1")
+ (version "0.7.2")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/taylordotfish/harmony.git")
+ (url "https://github.com/taylordotfish/harmony")
(commit version)))
- (file-name (string-append name "-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1bm9xcnzpnpj6rlhbrnl2abwclzl7ivgh1vb5644y9mnhcs489js"))))
- (build-system python-build-system)
+ "1d202pymabzvkzmxpplyjv55x74g937abxmnxdg9bxjjvp85c1nv"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ;no tests in repository
(native-inputs
- (list python-tox))
+ (list python-setuptools))
(inputs
(list python-librecaptcha python-keyring python-requests))
(synopsis "Discord account management")