diff options
Diffstat (limited to 'gnu/packages/messaging.scm')
-rw-r--r-- | gnu/packages/messaging.scm | 324 |
1 files changed, 188 insertions, 136 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 5e2a39fece..14172a13f5 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Mason Hock <chaosmonk@riseup.net> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,6 +70,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) @@ -701,23 +703,29 @@ simultaneously and therefore appear under the same nickname on IRC.") (define-public python-nbxmpp (package (name "python-nbxmpp") - (version "0.6.10") + (version "1.0.2") (source (origin (method url-fetch) - (uri (pypi-uri "nbxmpp" version)) + (uri + (pypi-uri "nbxmpp" version)) (sha256 - (base32 - "1vq89nhamciblyi5579bppnm4sb0zk5cg5hdipfpz174fxvl2wyd")))) + (base32 "0vw5drr077w9ks4crnw6pwa4735ycyjdcm54knc3w4in4x5027wr")))) (build-system python-build-system) - (arguments - `(#:tests? #f)) ; no tests + (native-inputs + `(("glib:bin" ,glib "bin"))) + (inputs + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("libsoup" ,libsoup) + ("python-idna" ,python-idna) + ("python-precis-i18n" ,python-precis-i18n) + ("python-pygobject" ,python-pygobject))) + (synopsis "Non-blocking XMPP Module") + (description "Python-nbxmpp is a Python library that provides a way for +Python applications to use the XMPP network. This library was initially a fork +of xmpppy.") (home-page "https://dev.gajim.org/gajim/python-nbxmpp") - (synopsis "Non-blocking Jabber/XMPP module") - (description - "The goal of this python library is to provide a way for Python -applications to use Jabber/XMPP networks in a non-blocking way. This library -was initially a fork of xmpppy, but uses non-blocking sockets.") (license license:gpl3+))) (define-public python2-nbxmpp @@ -726,132 +734,132 @@ was initially a fork of xmpppy, but uses non-blocking sockets.") (define-public gajim (package (name "gajim") - (version "1.1.3") - (source (origin - (method url-fetch) - (uri (string-append "https://gajim.org/downloads/" - (version-major+minor version) - "/gajim-" version ".tar.bz2")) - (sha256 - (base32 - "0bzxwcpdd4ydh6d6mzpr0gxwhcb0x9ympk55fpvm1hcw9d28a716")))) + (version "1.2.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://gajim.org/downloads/" + (version-major+minor version) + "/gajim-" version ".tar.gz")) + (sha256 + (base32 "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx")) + (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (build-system python-build-system) (arguments - `(#:phases + `(#:imported-modules + (,@%python-build-system-modules + (guix build glib-or-gtk-build-system)) + #:modules + ((guix build python-build-system) + ((guix build glib-or-gtk-build-system) + #:prefix glib-or-gtk:) + (guix build utils)) + #:phases (modify-phases %standard-phases - (add-after 'unpack 'add-plugin-dirs - (lambda _ - (substitute* "gajim/common/configpaths.py" - (("_paths\\['PLUGINS_USER'\\]\\]") - "_paths['PLUGINS_USER']] + \ -([os.getenv('GAJIM_PLUGIN_PATH')] \ -if os.getenv('GAJIM_PLUGIN_PATH') \ -and Path(os.getenv('GAJIM_PLUGIN_PATH')).is_dir() \ -else [])")) - #t)) (replace 'check (lambda _ - (invoke "python" "./setup.py" "test" "-s" "test.no_gui"))) - (add-after 'install 'wrap-gi-typelib-path + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + (invoke "dbus-launch" "python" "./setup.py" "test") + #t)) + (add-after 'install 'glib-or-gtk-compile-schemas + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) + (add-after 'install 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)) + (add-after 'install 'wrap-env (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (for-each (lambda (name) (let ((file (string-append out "/bin/" name)) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (wrap-program file - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) - ;; For translations - `("XDG_DATA_DIRS" ":" prefix - (,(string-append (assoc-ref outputs "out") "/share")))))) + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) '("gajim" "gajim-remote" "gajim-history-manager"))) - #t)) - (add-after 'install 'install-icons - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (adwaita (string-append - (assoc-ref inputs "adwaita-icon-theme") - "/share/icons/Adwaita")) - (hicolor (string-append - (assoc-ref inputs "hicolor-icon-theme") - "/share/icons/hicolor")) - (icons (string-append - out "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/gajim/data/icons"))) - (with-directory-excursion icons - (symlink adwaita "Adwaita") - (copy-recursively hicolor "hicolor"))) - #t)) - (add-after 'install-icons 'wrap-gsettings-schema-dir - (lambda* (#:key inputs outputs #:allow-other-keys) - (wrap-program (string-append (assoc-ref outputs "out") - "/bin/gajim") - ;; For GtkFileChooserDialog. - `("GSETTINGS_SCHEMA_DIR" = - (,(string-append (assoc-ref inputs "gtk+") - "/share/glib-2.0/schemas")))) #t))))) (native-search-paths - (list (search-path-specification - (variable "GAJIM_PLUGIN_PATH") - (separator #f) ;single entry - (files '("share/gajim/plugins"))) - ;; Gajim needs to use the propagated inputs of its plugins. - (search-path-specification - (variable "PYTHONPATH") - (files (list (string-append - "lib/python" - - ;; FIXME: Cannot use this expression as it would - ;; introduce a circular dependency at the top level. - ;; (version-major+minor (package-version python)) - "3.8" - - "/site-packages")))))) + (list + (search-path-specification + (variable "GAJIM_PLUGIN_PATH") + (separator #f) ;single entry + (files + (list + "share/gajim/plugins"))) + ;; Gajim needs to use the propagated inputs of its plugins. + (search-path-specification + (variable "PYTHONPATH") + (files + (list + (string-append + "lib/python" + ;; FIXME: Cannot use this expression as it would + ;; introduce a circular dependency at the top level. + ;; (version-major+minor (package-version python)) + "3.8" + "/site-packages")))))) (native-inputs - `(("intltool" ,intltool) - ("python-docutils" ,python-docutils) + `(("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))) (inputs - `(("adwaita-icon-theme" ,adwaita-icon-theme) + `(("avahi" ,avahi) + ("dbus" ,dbus) + ("farstream" ,farstream) + ("geoclue" ,geoclue) + ("glib" ,glib) + ("glib-networking" ,glib-networking) ("gnome-keyring" ,gnome-keyring) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gsound",gsound) + ("gspell" ,gspell) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) ("gtk+" ,gtk+) - ("gtkspell3" ,gtkspell3) - ("hicolor-icon-theme" ,hicolor-icon-theme) - ("libsecret" ,libsecret) - ("python-cssutils" ,python-cssutils) - ("python-dbus" ,python-dbus) - ("python-gnupg" ,python-gnupg) + ("gupnp-igd" ,gupnp-igd) + ("libsoup" ,libsoup) + ("libxss" ,libxscrnsaver) + ("network-manager" ,network-manager) + ("python-css-parser" ,python-css-parser) ("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) - ("python-qrcode" ,python-qrcode))) + ("python-pyopenssl" ,python-pyopenssl))) + (propagated-inputs + `(("dconf" ,dconf))) + (synopsis "Fully-featured XMPP client") + (description "Gajim aims to be an easy to use and fully-featured XMPP chat +client. It is extensible via plugins, supports end-to-end encryption (OMEMO +and OpenPGP) and available in 29 languages.") (home-page "https://gajim.org/") - (synopsis "Jabber (XMPP) client") - (description "Gajim is a feature-rich and easy to use Jabber/XMPP client. -Among its features are: a tabbed chat window and single window modes; support -for group chat (with Multi-User Chat protocol), invitation, chat to group chat -transformation; audio and video conferences; file transfer; TLS, GPG and -end-to-end encryption support; XML console.") (license license:gpl3))) (define-public gajim-omemo (package (name "gajim-omemo") - (version "2.7.7") - (source (origin - (method url-fetch/zipbomb) - (uri (string-append - "https://ftp.gajim.org/plugins_releases/omemo_" - version ".zip")) - (sha256 - (base32 - "17jl4blkq04ag3g0har6z1bmk36523d29s51g260wb1pywfb536h")))) + (version "2.6.80") + (source + (origin + (method url-fetch/zipbomb) + (uri + (string-append + "https://ftp.gajim.org/plugins_releases/omemo_" + version ".zip")) + (sha256 + (base32 "179hgx091c12258335znn1540jhp4z3n3wv5ksrgqq7l3jgc93d7")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -865,33 +873,69 @@ end-to-end encryption support; XML console.") (copy-recursively source share) #t)))) (propagated-inputs - `(("python-axolotl" ,python-axolotl))) + `(("python-axolotl" ,python-axolotl) + ("python-axolotl-curve25519" ,python-axolotl-curve25519) + ("python-cryptography" ,python-cryptography) + ("python-qrcode" ,python-qrcode))) + (synopsis "Gajim OMEMO plugin") + (description "Gajim-OMEMO is a plugin that adds support for the OMEMO +Encryption to Gajim. OMEMO is an XMPP Extension Protocol (XEP) for secure +multi-client end-to-end encryption.") (home-page "https://dev.gajim.org/gajim/gajim-plugins/-/wikis/OmemoGajimPlugin") - (synopsis "Gajim OMEMO plugin") - (description - "This package provides the Gajim OMEMO plugin. OMEMO is an XMPP -Extension Protocol (XEP) for secure multi-client end-to-end encryption based -on Axolotl and PEP.") + (license license:gpl3+))) + +(define-public gajim-openpgp + (package + (name "gajim-openpgp") + (version "1.2.14") + (source + (origin + (method url-fetch/zipbomb) + (uri + (string-append + "https://ftp.gajim.org/plugins_releases/openpgp_" + version ".zip")) + (sha256 + (base32 "0wdjpf1i4pvl4ha4plfpywwi9aw5n2mhrpv8mmbidpawxqfbd94b")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (share (in-vicinity out "share/gajim/plugins")) + (source (assoc-ref %build-inputs "source"))) + (mkdir-p share) + (copy-recursively source share) + #t)))) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-gnupg" ,python-gnupg))) + (synopsis "Gajim OpenPGP plugin") + (description "Gajim-OpenPGP is a plugin that adds support for the OpenPGP +Encryption to Gajim.") + (home-page "https://dev.gajim.org/gajim/gajim-plugins/-/wikis/OpenPGPplugin") (license license:gpl3+))) (define-public dino (package (name "dino") - (version "0.1.0") - (outputs '("out" "debug")) + (version "0.2.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/dino/dino/releases/download/v" - version "/dino-" version ".tar.gz")) + (uri + (string-append "https://github.com/dino/dino/releases/download/v" + version "/dino-" version ".tar.gz")) (sha256 - (base32 - "0dcq2jhpywgxrp9x1qqmrl2z50hazspqj547b9zz70apy3y4418h")))) + (base32 "0iigh7bkil6prf02dqcl6lmd89jxz685h8lqr3ni4x39zkcransn")))) (build-system cmake-build-system) + (outputs '("out" "debug")) (arguments `(#:tests? #f - #:parallel-build? #f ; not supported + #: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)) @@ -902,10 +946,21 @@ on Axolotl and PEP.") (modify-phases %standard-phases (add-after 'install 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config) + ("vala" ,vala))) (inputs - `(("libgee" ,libgee) - ("libsignal-protocol-c" ,libsignal-protocol-c) + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("gpgme" ,gpgme) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) ("libgcrypt" ,libgcrypt) + ("libgee" ,libgee) + ("libsignal-protocol-c" ,libsignal-protocol-c) ("libsoup" ,libsoup) ("qrencode" ,qrencode) ("sqlite" ,sqlite) @@ -913,15 +968,11 @@ on Axolotl and PEP.") ("gtk+" ,gtk+) ("glib-networking" ,glib-networking) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("glib" ,glib "bin") - ("vala" ,vala) - ("gettext" ,gettext-minimal))) + (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 +default.") (home-page "https://dino.im") - (synopsis "Graphical Jabber (XMPP) client") - (description "Dino is a Jabber (XMPP) client which aims to fit well into -a graphical desktop environment like GNOME.") (license license:gpl3+))) (define-public prosody @@ -1209,15 +1260,15 @@ instant messenger with audio and video chat capabilities.") (define-public qtox (package (name "qtox") - (version "1.17.2") + (version "1.17.3") (source (origin - (method url-fetch/tarbomb) + (method url-fetch) (uri (string-append "https://github.com/qTox/qTox/releases" "/download/v" version "/v" version ".tar.gz")) (sha256 (base32 - "0fmr3a0apil3rl32247qv2pqslp3knpbj5vhprdq0ixsvifrlhmh")) + "11n7si9wdpf80iwkvbspp14dh5jrwm7hxkj8vqhn5pkc48c5bh9j")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (arguments @@ -1863,7 +1914,7 @@ building the IRC clients and bots.") (define-public toxic (package (name "toxic") - (version "0.8.3") + (version "0.8.4") (source (origin (method git-fetch) @@ -1871,7 +1922,7 @@ building the IRC clients and bots.") (url "https://github.com/JFreegman/toxic") (commit (string-append "v" version)))) (sha256 - (base32 "09l2j3lwvrq7bf3051vjsnml9w63790ly3iylgf26gkrmld6k31w")) + (base32 "0p1cmj1kyp506y5xm04mhlznhf5wcylvgsn6b307ms91vjqs3fg2")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -2095,7 +2146,8 @@ There is support for: ("qtquickcontrols" ,qtquickcontrols) ("qtquickcontrols2" ,qtquickcontrols2) ("qtsvg" ,qtsvg) - ("qttools" ,qttools))) + ("qttools" ,qttools) + ("xdg-utils", xdg-utils))) (arguments `(#:tests? #f)) ; no tests (home-page "https://matrix.org/docs/projects/client/quaternion.html") @@ -2320,7 +2372,7 @@ support for high performance Telegram Bot creation.") (define-public chatty (package (name "chatty") - (version "0.1.16") + (version "0.1.17") (source (origin (method git-fetch) (uri (git-reference @@ -2329,7 +2381,7 @@ support for high performance Telegram Bot creation.") (file-name (git-file-name name version)) (sha256 (base32 - "085hb3ii1cy0jb3f0mim25v5r5w3gpfsdpjid5dmrpw4gi88aa2x")))) + "0ba1rw8a3vif9k3570hxjfm25vqys3vk3f6g8z5irklwq4bi6lmn")))) (build-system meson-build-system) (arguments '(#:phases |