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.scm308
1 files changed, 219 insertions, 89 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 768642f119..f40c3a7e2c 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -32,6 +32,8 @@
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -121,6 +123,7 @@
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tcl)
+ #:use-module (gnu packages telephony)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
@@ -695,8 +698,15 @@ identi.ca and status.net).")
(package/inherit bitlbee
(name "bitlbee-purple")
(synopsis "IRC to instant messaging gateway (using Pidgin's libpurple)")
- (inputs `(("purple" ,pidgin)
- ,@(package-inputs bitlbee)))
+ (inputs (modify-inputs (package-inputs bitlbee)
+ (prepend pidgin)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "PURPLE_PLUGIN_PATH")
+ ;; XXX: Should be (version-major (package-version pidgin)) but
+ ;; can't due to circular references.
+ (files (list (string-append "lib/purple-2")
+ "lib/pidgin")))))
(arguments
(substitute-keyword-arguments (package-arguments bitlbee)
((#:phases phases '%standard-phases)
@@ -713,44 +723,55 @@ identi.ca and status.net).")
#f)))))
(define-public bitlbee-discord
- (package
- (name "bitlbee-discord")
- (version "0.4.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/sm00th/bitlbee-discord")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags
- (let ((out (assoc-ref %outputs "out")))
- (list (string-append "--with-bdatadir=" out "/share/bitlbee/")
- (string-append "--with-plugindir=" out "/lib/bitlbee/")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-autogen
- (lambda _
- (let ((sh (which "sh")))
- (substitute* "autogen.sh" (("/bin/sh") sh))
- (setenv "CONFIG_SHELL" sh)))))))
- (inputs (list glib))
- (native-inputs (list pkg-config
- autoconf
- automake
- texinfo
- libtool
- bitlbee ; needs bitlbee headers
- bash))
- (synopsis "Discord plugin for Bitlbee")
- (description "Bitlbee-discord is a plugin for Bitlbee which provides
+ ;; Version 0.4.3 of bitlbee-discord was prepared to work for
+ ;; glib@2.68. However, version 2.69 of glib introduced a breaking change
+ ;; causing bitlbee-discord to throw:
+ ;;
+ ;; discord - Login error: Failed to switch to websocket mode
+ ;;
+ ;; This makes the plugin unable to connect and therefore unusable:
+ ;; https://github.com/sm00th/bitlbee-discord/issues/226
+ ;; The specified commit fixes incompatibility with glib@2.69 and newer.
+ (let ((commit "607f9887ca85f246e970778e3d40aa5c346365a7")
+ (revision "1"))
+ (package
+ (name "bitlbee-discord")
+ (version (git-version "0.4.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sm00th/bitlbee-discord")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jkwhx2walx2ay0vc9x13q0j1qq4r5x30ss03a3j7ks28xvsnxc7"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list (string-append "--with-bdatadir=" out "/share/bitlbee/")
+ (string-append "--with-plugindir=" out "/lib/bitlbee/")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-autogen
+ (lambda _
+ (let ((sh (which "sh")))
+ (substitute* "autogen.sh" (("/bin/sh") sh))
+ (setenv "CONFIG_SHELL" sh)))))))
+ (inputs (list glib))
+ (native-inputs (list pkg-config
+ autoconf
+ automake
+ texinfo
+ libtool
+ bitlbee ; needs bitlbee headers
+ bash))
+ (synopsis "Discord plugin for Bitlbee")
+ (description "Bitlbee-discord is a plugin for Bitlbee which provides
access to servers running the Discord protocol.")
- (home-page "https://github.com/sm00th/bitlbee-discord/")
- (license license:gpl2+)))
+ (home-page "https://github.com/sm00th/bitlbee-discord/")
+ (license license:gpl2+))))
(define-public purple-mattermost
;; The latest release (1.2) only supports Mattermost's /api/v3. Choose a
@@ -801,14 +822,14 @@ used by Pidgin and Bitlbee, among others, to access
(define-public hexchat
(package
(name "hexchat")
- (version "2.16.0")
+ (version "2.16.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
version ".tar.xz"))
(sha256
- (base32 "0dnwhb2gi08i5v79vq0y2izs89wyk3by96jv99kgkidjic3k2bj1"))))
+ (base32 "1iy4ln6yfgy3xysrfpjxw8fn38i3qx8jsn2mk2prshfzf7d9gr57"))))
(build-system meson-build-system)
(native-inputs `(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin") ;need glib-genmarshal
@@ -1351,7 +1372,7 @@ Encryption to Gajim.")
(define-public dino
(package
(name "dino")
- (version "0.2.2")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
@@ -1359,7 +1380,7 @@ Encryption to Gajim.")
(string-append "https://github.com/dino/dino/releases/download/v"
version "/dino-" version ".tar.gz"))
(sha256
- (base32 "0r5qn9k88d5rh8zzj9gs3bk3dsm795r0pgxs3kawyrsrqr8ny1ry"))))
+ (base32 "07nw275xfamczzvzps8hsnpbhzvr4qc726fx92w8ncmdag7wlw1r"))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
@@ -1373,14 +1394,14 @@ Encryption to Gajim.")
(guix build glib-or-gtk-build-system))
#:phases
(modify-phases %standard-phases
- ;; To be enabled in v0.3.0, 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))))))
+ ;; 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)))))
(native-inputs
@@ -1391,7 +1412,6 @@ Encryption to Gajim.")
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
- ;; NOTE: Commented-out lines are to be enabled in v0.3.0.
`(("atk" ,atk)
("cairo" ,cairo)
("librsvg" ,librsvg)
@@ -1400,22 +1420,22 @@ Encryption to Gajim.")
("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)
+ ("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
+ ("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
+ ("libsrtp" ,libsrtp) ;for calls support
("pango" ,pango)
("qrencode" ,qrencode)
- ("sqlite" ,sqlite)))
- ;;("webrtc-audio-processing" ,webrtc-audio-processing))) ;for A/V support
+ ("sqlite" ,sqlite)
+ ("webrtc-audio-processing" ,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
@@ -2289,7 +2309,7 @@ QMatrixClient project.")
(define-public mtxclient
(package
(name "mtxclient")
- (version "0.6.1")
+ (version "0.7.0")
(source
(origin
(method git-fetch)
@@ -2298,7 +2318,7 @@ QMatrixClient project.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1a3ki45rf1fm7y4b74li76aqd4qc4y5ga5r163s0cwcpj9mp8c45"))))
+ (base32 "0kgz9i3xgyk1a82sv48a1m8gdxg0cl5pgd5imgwy519vvjlkwv48"))))
(arguments
`(#:configure-flags
(list
@@ -2334,7 +2354,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.")
(define-public nheko
(package
(name "nheko")
- (version "0.9.0")
+ (version "0.9.2")
(source
(origin
(method git-fetch)
@@ -2343,7 +2363,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 "1akhnngxkxbjwjkg5ispl6j5s2ylbcj92r3zxqqry4gbfxbjpx8k"))
+ (base32 "0q9yzzl7mvlixm1c2f55lksxgh9q11zb8k80mkwnhmmli8wbb05f"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2417,7 +2437,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.")
xcb-util-wm
zlib))
(native-inputs
- (list doxygen graphviz pkg-config qttools))
+ (list asciidoc doxygen graphviz pkg-config qttools))
(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
@@ -2612,8 +2632,7 @@ replacement.")
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #t
- #:configure-flags
+ `(#:configure-flags
(list "-DCMAKE_BUILD_TYPE=Release"
"-DTD_ENABLE_LTO=OFF") ; FIXME: Get LTO to work.
#:phases
@@ -2757,7 +2776,7 @@ validating international phone numbers.")
(define-public chatty
(package
(name "chatty")
- (version "0.1.17")
+ (version "0.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2766,7 +2785,7 @@ validating international phone numbers.")
(file-name (git-file-name name version))
(sha256
(base32
- "0ba1rw8a3vif9k3570hxjfm25vqys3vk3f6g8z5irklwq4bi6lmn"))))
+ "12k1a5xrwd6zk4x0m53hbzggk695z3bpbzy1wcikzy0jvch7h13d"))))
(build-system meson-build-system)
(arguments
'(#:phases
@@ -2774,19 +2793,21 @@ validating international phone numbers.")
(add-after 'unpack 'skip-updating-desktop-database
(lambda _
(substitute* "meson.build"
- (("meson.add_install_script.*") ""))
- #t)))))
+ (("meson.add_install_script.*") "")))))))
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin")
- ("pkg-config" ,pkg-config)))
+ (list gettext-minimal `(,glib "bin") pkg-config protobuf))
(inputs
(list feedbackd
folks
gsettings-desktop-schemas
+ gspell
+ json-glib
libgcrypt
libgee
- libhandy-0.0
+ libhandy
+ libolm
+ libphonenumber
+ modem-manager
pidgin
purple-mm-sms
sqlite))
@@ -3094,23 +3115,52 @@ designed for experienced users.")
(define-public matterbridge
(package
(name "matterbridge")
- (version "1.22.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/42wim/matterbridge")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "07rgdc4v043fhzsalmlhickqizk6xjlpjkzn6l5v9ryp5gmv580z"))))
- (build-system go-build-system)
+ (version "1.24.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/42wim/matterbridge")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0cd70x9685162c0imdici1ipl9lziq700wzyb5bsg610wfak3ms7"))))
+ ;; 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
+ ;; given to that bug by the matterbridge developers.
+ ;; [1]https://github.com/42wim/matterbridge/issues/1551
+ (build-system gnu-build-system)
(arguments
- `(#:import-path "github.com/42wim/matterbridge"
- #:unpack-path "github.com/42wim/matterbridge"))
+ `(#:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "GOCACHE"
+ (string-append (getcwd) "/go-build"))
+ (setenv "GOBIN"
+ (string-append (assoc-ref outputs "out") "/bin"))
+ (invoke "go" "build" "-v" "-x")))
+ (replace 'check
+ (lambda* (#:key outputs tests? #:allow-other-keys)
+ (when tests?
+ (setenv "GOCACHE"
+ (string-append (getcwd) "/go-build"))
+ (setenv "GOBIN"
+ (string-append (assoc-ref outputs "out")
+ "/bin"))
+ (invoke "go" "test" "-v" "-x"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "GOCACHE"
+ (string-append (getcwd) "/go-build"))
+ (setenv "GOBIN"
+ (string-append (assoc-ref outputs "out") "/bin"))
+ (invoke "go" "install" "-v" "-x"))))))
+ (native-inputs (list go))
(synopsis "Bridge together various messaging networks and protocols")
- (description "Relays messages between different channels from various
+ (description
+ "Relays messages between different channels from various
messaging networks and protocols. So far it supports mattermost, IRC, gitter,
xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp,
keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST
@@ -3118,6 +3168,41 @@ API. Mattermost is not required.")
(home-page "https://github.com/42wim/matterbridge")
(license license:asl2.0)))
+(define-public jj
+ (package
+ (name "jj")
+ (version "2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://23.fi/jj/jj-" version ".tar.gz"))
+ (sha256
+ (base32
+ "02xz2ci93bccvil5iff804mh3zr5iqkf6zx5mxgraz17xg0azlgh"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;There are no tests.
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "jj" bin)))))))
+ (native-inputs (list pkg-config))
+ (inputs (list glib loudmouth))
+ (home-page "https://23.fi/jj/")
+ (synopsis "FIFO based Jabber client")
+ (description
+ "jj is a simple file-system-based Jabber client, inspired by ii IRC
+client. Interaction with jj is done by writing and reading files from the
+server directory which jj creates. It is perfect for bots and
+notifications.")
+ (license license:expat)))
+
(define-public pounce
(package
(name "pounce")
@@ -3263,4 +3348,49 @@ more)! It connects via the Slack API, and maintains a persistent websocket
for notification of events.")
(license license:expat)))
+(define-public python-librecaptcha
+ (package
+ (name "python-librecaptcha")
+ (version "0.7.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/taylordotfish/librecaptcha")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0r35ws6vdf31j01kpacvpjplddm254r0cgy0npmhgnfxd5kpjf3s"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-pillow python-requests python-esprima python-pygobject gobject-introspection gtk+))
+ (synopsis "Show CAPTCHA without running proprietary code.")
+ (description "This package shows CAPTCHA without running proprietary code.")
+ (home-page "https://github.com/taylordotfish/librecaptcha")
+ (license license:gpl3+)))
+
+(define-public python-harmony
+ (package
+ (name "python-harmony")
+ (version "0.7.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/taylordotfish/harmony.git")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1bm9xcnzpnpj6rlhbrnl2abwclzl7ivgh1vb5644y9mnhcs489js"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list python-tox))
+ (inputs
+ (list python-librecaptcha python-keyring python-requests))
+ (synopsis "Discord account management")
+ (description "This package provides account management tools for
+Discord.")
+ (home-page "https://github.com/taylordotfish/harmony")
+ (license license:gpl3+)))
+
;;; messaging.scm ends here