summary refs log tree commit diff
path: root/gnu/packages/messaging.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-21 23:39:43 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-21 23:39:43 -0400
commita9429c8f2207841c649438187d6e19046d323a16 (patch)
treea06e4b8a87b6a42742cf6750276746a10b6c2139 /gnu/packages/messaging.scm
parentf0136b36ae8c1e9c174043bd50e0e24413c0f345 (diff)
parent49b350fafc2c3ea1db66461b73d4e304cd13ec92 (diff)
downloadguix-a9429c8f2207841c649438187d6e19046d323a16.tar.gz
Merge branch 'staging' into core-updates.
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