;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2015, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016, 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; 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 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#: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)
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
+ #:use-module (gnu packages mpd)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages pcre)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (guix packages)
#:use-module (guix utils))
+(define-public poezio
+ (package
+ (name "poezio")
+ (version "0.13.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://lab.louiz.org/poezio/poezio.git")
+ (commit
+ (string-append "v" version))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "setup.py"
+ (("'CC', 'cc'")
+ "'CC', 'gcc'"))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python-setuptools" ,python-setuptools)
+ ("python-sphinx" ,python-sphinx)))
+ (inputs
+ `(("python-mpd2" ,python-mpd2)
+ ("python-potr" ,python-potr)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-pyasn1-modules" ,python-pyasn1-modules)
+ ("python-pygments" ,python-pygments)
+ ("python-pyinotify" ,python-pyinotify)
+ ;("python" ,python)
+ ("python-qrcode" ,python-qrcode)
+ ("python-slixmpp" ,python-slixmpp)))
+ (synopsis "Console Jabber/XMPP Client")
+ (description "Poezio is a free console XMPP client (the protocol on which
+the Jabber IM network is built).
+Its goal is to let you connect very easily (no account creation needed) to the
+network and join various chatrooms, immediately. It tries to look like the
+most famous IRC clients (weechat, irssi, etc). Many commands are identical and
+you won't be lost if you already know these clients. Configuration can be
+made in a configuration file or directly from the client.
+You'll find the light, fast, geeky and anonymous spirit of IRC while using a
+powerful, standard and open protocol.")
+ (home-page "https://poez.io/en/")
+ (license license:zlib)))
+
(define-public libotr
(package
(name "libotr")
(name "libsignal-protocol-c")
(version "2.3.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/WhisperSystems/"
- "libsignal-protocol-c/archive/v" version
- ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/WhisperSystems/libsignal-protocol-c")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0380hl6fw3ppf265fg897pyrpqygpx4m9j8ifq118bim8lq6z0pk"))))
+ "1qj2w4csy6j9jg1jy66n1qwysx7hgjywk4n35hlqcnh1kpa14k3p"))))
(arguments
`(;; Required for proper linking and for tests to run.
#:configure-flags '("-DBUILD_SHARED_LIBS=on" "-DBUILD_TESTING=1")))
(home-page "https://www.bitlbee.org/")
(license (list license:gpl2+ license:bsd-2))))
+(define-public bitlbee-purple
+ ;; This variant uses libpurple, which provides support for more protocols at
+ ;; the expense of a much bigger closure.
+ (package/inherit bitlbee
+ (name "bitlbee-purple")
+ (synopsis "IRC to instant messaging gateway (using Pidgin's libpurple)")
+ (inputs `(("purple" ,pidgin)
+ ,@(package-inputs bitlbee)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments bitlbee)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (replace 'configure ;add "--purple=1"
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "./configure"
+ (string-append "--prefix="
+ (assoc-ref outputs "out"))
+ "--otr=1" "--purple=1")))))
+ ((#:tests? _ #t)
+ ;; XXX: Tests fail to link, and ./configure says that it's "supported
+ ;; on a best-effort basis" anyway.
+ #f)))))
+
(define-public bitlbee-discord
(package
(name "bitlbee-discord")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/sm00th/bitlbee-discord.git")
+ (url "https://github.com/sm00th/bitlbee-discord")
(commit version)))
(file-name (git-file-name name version))
(sha256
("bitlbee" ,bitlbee) ; needs bitlbee headers
("bash" ,bash)))
(synopsis "Discord plugin for Bitlbee")
- (description "Bitlbee-discord is a plugin for Bitlbee witch provides
+ (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+)))
+(define-public purple-mattermost
+ ;; The latest release (1.2) only supports Mattermost's /api/v3. Choose a
+ ;; commit that supports /api/v4.
+ (let ((commit "158ce2052af9aaf3d1f6f045f0cfba276e0e91cf")
+ (revision "0"))
+ (package
+ (name "purple-mattermost")
+ (version (git-version "1.2" revision commit))
+ (home-page "https://github.com/EionRobb/purple-mattermost")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1481zm20pnfq52ncg7hxayjq8cw3a6yh9m4jm1m5s8chsq04015l"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Adjust the makefile to install files in the right
+ ;; place.
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("MATTERMOST_DEST = .*")
+ (string-append "MATTERMOST_DEST = " out
+ "/lib/purple-2\n")) ;XXX: hardcoded
+ (("MATTERMOST_ICONS_DEST = .*")
+ (string-append "MATTERMOST_ICONS_DEST = "
+ out
+ "/share/pixmaps/pidgin/protocols\n")))
+ #t))))
+ #:make-flags (list "CC=gcc"
+ ,(string-append "PLUGIN_VERSION=" version))
+ #:tests? #f))
+ (inputs `(("glib" ,glib)
+ ("json-glib" ,json-glib)
+ ("discount" ,discount)
+ ("pidgin" ,pidgin)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (synopsis "Purple plug-in to access Mattermost instant messaging")
+ (description
+ "Purple-Mattermost is a plug-in for Purple, the instant messaging library
+used by Pidgin and Bitlbee, among others, to access
+@uref{https://mattermost.com/, Mattermost} servers.")
+ (license license:gpl3+))))
+
(define-public hexchat
(package
(name "hexchat")
(define-public ngircd
(package
(name "ngircd")
- (version "25")
+ (version "26")
(source (origin
(method url-fetch)
(uri (string-append "https://arthur.barton.de/pub/ngircd/ngircd-"
version ".tar.xz"))
(sha256
(base32
- "0kpf5qi98m9f833r4rx9n6h9p31biwk798jwc1mgzmix7sp7r6f4"))
+ "1ijmv18fa648y7apxb9vp4j9iq6fxq850kz5v36rysaq614cdp2n"))
(patches (search-patches "ngircd-handle-zombies.patch"))))
(build-system gnu-build-system)
;; Needed for the test suite.
(native-inputs `(("procps" ,procps)
("expect" ,expect)
- ("inetutils" ,inetutils)))
+ ("inetutils" ,inetutils)
+ ("openssl" ,openssl)))
;; XXX Add libident.
(inputs `(("zlib" ,zlib)
("libwrap" ,tcp-wrappers)
version "/pidgin-" version ".tar.bz2"))
(sha256
(base32 "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7"))
- (patches (search-patches "pidgin-add-search-path.patch"))))
+ (patches (search-patches "pidgin-add-search-path.patch"
+ ;; Remove the snippet and bootstrapping
+ ;; native-inputs together with this patch.
+ "pidgin-libnm.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove stale generated file after applying pidgin-libnm.patch.
+ (delete-file "configure")
+ #t))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)
("gconf" ,gconf)
("python" ,python-2)
- ("doxygen" ,doxygen)))
+ ("doxygen" ,doxygen)
+
+ ;; For bootstrapping after applying pidgin-libnm.patch.
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
(inputs
`(("gtk+" ,gtk+-2)
("libgcrypt" ,libgcrypt)
(define-public znc
(package
(name "znc")
- (version "1.7.5")
+ (version "1.8.2")
(source (origin
(method url-fetch)
- (uri (string-append "http://znc.in/releases/archive/znc-"
+ (uri (string-append "https://znc.in/releases/archive/znc-"
version ".tar.gz"))
(sha256
(base32
- "08a7yb2xs85hyyz8dpzfbsfjwj2r6kcii022lj3l4rf8hl9ix558"))))
+ "03fyi0j44zcanj1rsdx93hkdskwfvhbywjiwd17f9q1a7yp8l8zz"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
("perl" ,perl)
("python" ,python)
("zlib" ,zlib)))
- (home-page "https://znc.in")
+ (home-page "https://wiki.znc.in/ZNC")
(synopsis "IRC network bouncer")
(description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can
detach the client from the actual IRC server, and also from selected channels.
(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
(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"))))
(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 _
#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.7"
-
- "/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.6.29")
- (source (origin
- (method url-fetch/zipbomb)
- (uri (string-append
- "https://ftp.gajim.org/plugins_releases/omemo_"
- version ".zip"))
- (sha256
- (base32
- "1mif5qkrvxclqbqmq6njini4laznbs5nn82w2f1hkl8c1284dvgi"))))
+ (version "2.7.9")
+ (source
+ (origin
+ (method url-fetch/zipbomb)
+ (uri
+ (string-append
+ "https://ftp.gajim.org/plugins_releases/omemo_"
+ version ".zip"))
+ (sha256
+ (base32 "19si2v5yrxpn2m0f684npsg0iiyl2h3r5hbxyrxv4k3acmfmhb3z"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
(copy-recursively source share)
#t))))
(propagated-inputs
- `(("python-axolotl" ,python-axolotl)))
- (home-page
- "https://dev.gajim.org/gajim/gajim-plugins/wikis/OmemoGajimPlugin")
+ `(("python-axolotl" ,python-axolotl)
+ ("python-axolotl-curve25519" ,python-axolotl-curve25519)
+ ("python-cryptography" ,python-cryptography)
+ ("python-qrcode" ,python-qrcode)))
(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.")
+ (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")
+ (license license:gpl3+)))
+
+(define-public gajim-openpgp
+ (package
+ (name "gajim-openpgp")
+ (version "1.3.5")
+ (source
+ (origin
+ (method url-fetch/zipbomb)
+ (uri
+ (string-append
+ "https://ftp.gajim.org/plugins_releases/openpgp_"
+ version ".zip"))
+ (sha256
+ (base32 "1jvpl2gjl5xxvsgxpmvh3mn2mm142dg2hknakkc32swb7l1fqx5m"))))
+ (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"))
(source
(origin
(method url-fetch)
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/irungentoo/toxcore.git")
+ (url "https://github.com/irungentoo/toxcore")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(define-public c-toxcore
(package
(name "c-toxcore")
- (version "0.2.9")
+ (version "0.2.12")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/TokTok/c-toxcore.git")
+ (url "https://github.com/TokTok/c-toxcore")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0aljr9hqybla6p61af6fdkv0x8gph7c2wacqqa9hq2z9w0p4fs5j"))))
+ "0a6sqpm00d2rn0nviqfz4gh9ck1wzci6rxgmqmcyryl5ca19ffvp"))))
(arguments
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
; for now.
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/uTox/uTox.git")
+ (url "https://github.com/uTox/uTox")
(commit (string-append "v" version))
(recursive? #t))) ;; Needed for 'minini' git submodule.
(file-name (string-append name "-" version "-checkout"))
(define-public qtox
(package
(name "qtox")
- (version "1.16.3")
+ (version "1.17.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/qTox/qTox/archive/v"
- version ".tar.gz"))
+ (method url-fetch/tarbomb)
+ (uri (string-append "https://github.com/qTox/qTox/releases"
+ "/download/v" version
+ "/v" version ".tar.gz"))
(sha256
(base32
- "10n3cgw9xaqin9la8wpd8v83bkjmimicgbyp5ninsdgsrgky4hmq"))
+ "0fmr3a0apil3rl32247qv2pqslp3knpbj5vhprdq0ixsvifrlhmh"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
(("__TIME__") "\"\"")
(("TIMESTAMP") "\"\""))
#t))
+ (add-after 'unpack 'disable-network-tests
+ (lambda _
+ ;; These tests require network access.
+ (substitute* "cmake/Testing.cmake"
+ (("auto_test\\(core core\\)") "# auto_test(core core)")
+ (("auto_test\\(net bsu\\)") "# auto_test(net bsu)"))
+ #t))
;; Ensure that icons are found at runtime.
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Bitmessage/PyBitmessage.git")
+ (url "https://github.com/Bitmessage/PyBitmessage")
(commit version)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(define-public gloox
(package
(name "gloox")
- (version "1.0.23")
+ (version "1.0.24")
(source
(origin
(method url-fetch)
(uri (string-append "https://camaya.net/download/gloox-"
version ".tar.bz2"))
(sha256
- (base32 "12jz8glg9zmyk0iyv1ywf5i0hq93dfq8lvn6lyjgy8730w66mjwp"))))
+ (base32 "1jgrd07qr9jvbb5hcmhrqz4w4lvwc51m30jls1fgxf1f5az6455f"))))
(build-system gnu-build-system)
(inputs
`(("libidn" ,libidn)
(define-public mcabber
(package
(name "mcabber")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://mcabber.com/files/"
name "-" version ".tar.bz2"))
(sha256
- (base32
- "1ggh865p1rf10ffsnf4g6qv9i8bls36dxdb1nzs5r9vdqci2rz04"))))
+ (base32 "0ngrcc8nzpzk4vw36ni3w073149zsi0yjh922xy9cy5a7srwx2fp"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list "--enable-otr"
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/boothj5/libmesode.git")
+ (url "https://github.com/boothj5/libmesode")
(commit version)))
(file-name (git-file-name name version))
(sha256
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/strophe/libstrophe.git")
+ (url "https://github.com/strophe/libstrophe")
(commit version)))
(file-name (git-file-name name version))
(sha256
(define-public profanity
(package
(name "profanity")
- (version "0.8.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://profanity-im.github.io/profanity-"
- version ".tar.gz"))
- (sha256
- (base32
- "15yrx2ir2bilxpjfaxpjb93yjpvpvcvh5r7wbsjx6kmmy7qg2zvb"))))
- (build-system gnu-build-system)
+ (version "0.9.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://profanity-im.github.io/profanity-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "00j9l9v62rz9hprgiy1vrz8v3v59ph18h8kskqxr31fgqvjv5xr3"))))
+ (build-system glib-or-gtk-build-system)
(arguments
- '(#:configure-flags
- (list "--enable-c-plugins"
- "--enable-otr"
- "--enable-omemo"
- "--enable-pgp"
- "--enable-icons"
- "--enable-notifications")))
+ `(#:configure-flags
+ (list
+ "--enable-notifications"
+ "--enable-python-plugins"
+ "--enable-c-plugins"
+ "--enable-plugins"
+ "--enable-otr"
+ "--enable-pgp"
+ "--enable-omemo"
+ "--enable-icons-and-clipboard")))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("autoconf-archive" ,autoconf-archive)
+ ("automake" ,automake)
+ ("cmocka" ,cmocka)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("expat" ,expat)
("glib" ,glib)
("gpgme" ,gpgme)
+ ("gtk+" ,gtk+-2)
("libmesode" ,libmesode)
+ ("libnotify" ,libnotify)
("libotr" ,libotr)
+ ("libsignal-protocol-c" ,libsignal-protocol-c)
("ncurses" ,ncurses)
("openssl" ,openssl)
- ("readline" ,readline)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("autoconf-archive" ,autoconf-archive)
- ("automake" ,automake)
- ("cmocka" ,cmocka)
- ("gtk+" ,gtk+-2)
- ("libnotify" ,libnotify)
- ("libtool" ,libtool)
- ("libsignal-protocol-c" ,libsignal-protocol-c)
- ("pkg-config" ,pkg-config)))
+ ("python" ,python-wrapper)
+ ("readline" ,readline)
+ ("sqlite" ,sqlite)))
(synopsis "Console-based XMPP client")
(description "Profanity is a console based XMPP client written in C
using ncurses and libmesode, inspired by Irssi.")
(define-public toxic
(package
(name "toxic")
- (version "0.8.3")
+ (version "0.8.4")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/JFreegman/toxic.git")
+ (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
(delete 'configure)
(add-before 'build 'enable-python-scripting
(lambda _
+ ;; XXX: For compatibility with Python 3.8, adjust python3-config
+ ;; invokation to include --embed; see
+ ;; <https://github.com/JFreegman/toxic/issues/533>.
+ (substitute* "cfg/checks/python.mk"
+ (("python3-config --ldflags")
+ "python3-config --ldflags --embed"))
(setenv "ENABLE_PYTHON" "1")
#t)))))
(inputs
(define-public libqmatrixclient
(package
(name "libqmatrixclient")
- (version "0.5.2")
+ (version "0.5.3.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/QMatrixClient/libqmatrixclient")
+ (url "https://github.com/quotient-im/libQuotient")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1bhlqfs7251fss4icx794ka614npr6zyrpp4qwc4q5408ykfm7lr"))))
+ (base32 "0gkwr3yw6k2m0j8cc085b5p2q788rf5nhp1p5hc5d55pc7mci2qs"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)
(define-public mtxclient
(package
(name "mtxclient")
- (version "0.2.1")
+ (version "0.3.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Nheko-Reborn/mtxclient.git")
+ (url "https://github.com/Nheko-Reborn/mtxclient")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0pycznrvj57ff6gbwfn1xj943d2dr4vadl79hii1z16gn0nzxpmj"))))
+ (base32 "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x"))))
(arguments
`(#:configure-flags
(list
(add-before 'configure 'disable-network-tests
(lambda _
(substitute* "CMakeLists.txt"
- (("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption)")
+ (("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption|Pushrules)")
"# add_test"))
#t))
(add-before 'configure 'set-home
(define-public nheko
(package
(name "nheko")
- (version "0.6.4")
+ (version "0.7.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Nheko-Reborn/nheko.git")
+ (url "https://github.com/Nheko-Reborn/nheko")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm"))))
+ (base32 "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s"))))
(arguments
`(#:tests? #f ;no test target
#:configure-flags
("mtxclient" ,mtxclient)
("openssl" ,openssl)
("qtbase" ,qtbase)
- ("qtsvg" ,qtsvg)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtgraphicaleffects" ,qtgraphicaleffects)
("qtmultimedia" ,qtmultimedia)
+ ("qtquickcontrols2" ,qtquickcontrols2)
+ ("qtsvg" ,qtsvg)
("spdlog" ,spdlog)
("tweeny" ,tweeny)
("zlib" ,zlib)))
(define-public quaternion
(package
(name "quaternion")
- (version "0.0.9.4c")
+ (version "0.0.9.4e")
+ (outputs '("out" "debug"))
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/QMatrixClient/Quaternion")
+ (url "https://github.com/quotient-im/Quaternion")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0gpv6b3nn3lsyym8809kiqkpdszfasldqjpk5s542zyn41gdlql4"))))
+ (base32 "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv"))))
(build-system qt-build-system)
(inputs
`(("libqmatrixclient" ,libqmatrixclient)
(define-public hangups
(package
(name "hangups")
- (version "0.4.10")
+ (version "0.4.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "hangups" version))
(sha256
- (base32 "0ww9z9kcb02pwnr8q1ll31wkzspc1fci1ly8ifrwzxysp4rxy3j5"))))
+ (base32 "165lravvlsgkv6pp3vgg785ihycvs43qzqxw2d2yygrc6pbhqlyv"))))
(build-system python-build-system)
(arguments
`(#:phases
(license license:gpl2+)))
(define-public tdlib
- (let ((commit "278c7acdec83c5ac17d8e1ed0bb2cacbcea62460")
+ (let ((commit "f45d80fe16f99d112d545b7cd74ce46342fe3437")
(revision "0")
- (version "1.6.0"))
+ (version "1.6.6"))
(package
(name "tdlib")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/tdlib/td.git")
+ (url "https://github.com/tdlib/td")
(commit commit)))
(sha256
(base32
- "0zlzpl6fgszg18kwycyyyrnkm255dvc6fkq0b0y32m5wvwwl36cv"))
+ "1q8zw26mqhpdzvqbgc7fmn8rzwm5amb8m7s6impin4342wj7h6nr"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
(home-page "https://core.telegram.org/tdlib")
(license license:boost1.0))))
+(define-public purple-mm-sms
+ (package
+ (name "purple-mm-sms")
+ (version "0.1.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://source.puri.sm/Librem5/purple-mm-sms.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1daf7zl8bhhm1szkgxflpqql69f2w9i9nlgf1n4p1nynxifz1bim"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ ;; Fix hardcoded paths
+ (list (string-append "PREFIX=" out)
+ (string-append "PLUGIN_DIR_PURPLE=" out "/lib/purple-2")
+ (string-append "DATA_ROOT_DIR_PURPLE=" out "/share")))
+ #:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("modem-manager" ,modem-manager)
+ ("pidgin" ,pidgin)))
+ (synopsis "Libpurple plugin for SMS via ModemManager")
+ (description "Plugin for libpurple to allow sending SMS using ModemManager.")
+ (home-page "https://source.puri.sm/Librem5/purple-mm-sms")
+ (license license:gpl2+)))
+
+(define-public chatty
+ (package
+ (name "chatty")
+ (version "0.1.16")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://source.puri.sm/Librem5/chatty.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "085hb3ii1cy0jb3f0mim25v5r5w3gpfsdpjid5dmrpw4gi88aa2x"))))
+ (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.*") ""))
+ #t)))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("feedbackd" ,feedbackd)
+ ("folks" ,folks)
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("libgcrypt" ,libgcrypt)
+ ("libgee" ,libgee)
+ ("libhandy" ,libhandy-0.0)
+ ("pidgin" ,pidgin)
+ ("purple-mm-sms" ,purple-mm-sms)
+ ("sqlite" ,sqlite)))
+ (propagated-inputs
+ `(("adwaita-icon-theme" ,adwaita-icon-theme)
+ ("evolution-data-server" ,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
+as well as on desktop platforms. It's based on libpurple and ModemManager.")
+ (home-page "https://source.puri.sm/Librem5/chatty")
+ (license license:gpl3+)))
+
+(define-public mosquitto
+ (package
+ (name "mosquitto")
+ (version "1.6.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://mosquitto.org/files/source/mosquitto-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1yq7y329baa1ly488rw125c3mvsnsa7kjkik602xv1xpkz8p73al"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("openssl" ,openssl)))
+ (synopsis "Message broker")
+ (description "This package provides Eclipse Mosquitto, a message broker
+that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto
+is lightweight and is suitable for use on all devices from low power single
+board computers to full servers.
+
+The MQTT protocol provides a lightweight method of carrying out messaging
+using a publish/subscribe model. This makes it suitable for Internet of
+Things messaging such as with low power sensors or mobile devices such
+as phones, embedded computers or microcontrollers.")
+ (home-page "https://mosquitto.org/")
+ ;; Dual licensed.
+ (license (list license:epl1.0 license:edl1.0))))
+
;;; messaging.scm ends here