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.scm337
1 files changed, 223 insertions, 114 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index b03cb8f03a..e34f725a40 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -32,71 +32,72 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages messaging)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix utils)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix git-download)
- #:use-module (guix build-system gnu)
- #:use-module (guix build-system glib-or-gtk)
- #:use-module (guix build-system meson)
- #:use-module (guix build-system python)
- #:use-module (guix build-system perl)
- #:use-module (guix build-system cmake)
#:use-module (gnu packages)
+ #:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
#:use-module (gnu packages aspell)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
+ #:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages less)
#:use-module (gnu packages libcanberra)
- #:use-module (gnu packages man)
- #:use-module (gnu packages networking)
#:use-module (gnu packages libidn)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages lua)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages gnupg)
+ #:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
- #:use-module (gnu packages glib)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
- #:use-module (gnu packages pcre)
- #:use-module (gnu packages perl)
+ #:use-module (gnu packages python-web)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages readline)
#:use-module (gnu packages tcl)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages check)
- #:use-module (gnu packages admin)
- #:use-module (gnu packages linux)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
- #:use-module (gnu packages icu4c)
- #:use-module (gnu packages qt)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
- #:use-module (gnu packages audio)
- #:use-module (gnu packages bison)
- #:use-module (gnu packages fontutils)
- #:use-module (gnu packages bash)
- #:use-module (gnu packages guile)
- #:use-module (gnu packages less)
- #:use-module (gnu packages readline)
- #:use-module (gnu packages photo)
- #:use-module (gnu packages texinfo))
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system meson)
+ #:use-module (guix build-system perl)
+ #:use-module (guix build-system python)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix utils))
(define-public libotr
(package
@@ -249,14 +250,14 @@ access to servers running the Discord protocol.")
(define-public hexchat
(package
(name "hexchat")
- (version "2.14.1")
+ (version "2.14.2")
(source (origin
(method url-fetch)
(uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
version ".tar.xz"))
(sha256
(base32
- "18h3l34zmazjlfx3irg7k7swppa62ad9ffbl0j3ry8p2xfyf8cmh"))))
+ "064nq151nzsljv97dmkifyl162d2738vbgvm1phx7yv04pjvk4kp"))))
(build-system meson-build-system)
(native-inputs `(("gettext" ,gettext-minimal)
("perl" ,perl)
@@ -295,7 +296,7 @@ window shows the list of currently connected networks and their channels, the
current conversation and the list of users. It uses colors to differentiate
between users and to highlight messages. It checks spelling using available
dictionaries. HexChat can be extended with multiple addons.")
- (home-page "http://hexchat.net/")
+ (home-page "https://hexchat.net/")
(license license:gpl2+)))
(define-public ngircd
@@ -548,14 +549,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
(define-public python-nbxmpp
(package
(name "python-nbxmpp")
- (version "0.6.6")
+ (version "0.6.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbxmpp" version))
(sha256
(base32
- "0bp60syqc3qp2i28phvadxlpwizjbr6bxw4m363p9yn5fl687qnh"))))
+ "1iip8ijxp86fx4bl1h67p2lp02p2zm1ga2p3q43nv30smj54nawc"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; no tests
@@ -573,7 +574,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
(define-public gajim
(package
(name "gajim")
- (version "1.0.3")
+ (version "1.1.0")
(source (origin
(method url-fetch)
(uri (string-append "https://gajim.org/downloads/"
@@ -581,12 +582,13 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
"/gajim-" version ".tar.bz2"))
(sha256
(base32
- "0ds4rqwfrpj89a489w6yih8gx5zi7qa4ffgld950fk7s0qxvcfnb"))))
+ "1qis8vs7y7g1zn5i5dshwrszidc22qpflycwb4nixvp9lbmkq0va"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ `(#:test-target "test_nogui"
+ #:phases
(modify-phases %standard-phases
- (add-after 'install 'wrap-program
+ (add-after 'install 'wrap-gi-typelib-path
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each
@@ -597,20 +599,6 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
'("gajim" "gajim-remote" "gajim-history-manager")))
#t))
- (add-before 'check 'remove-test-resolver
- ;; This test requires network access.
- (lambda _
- (substitute* "test/runtests.py"
- (("'integration.test_resolver',") ""))
- #t))
- (add-before 'check 'start-xserver
- ;; Tests require a running X server.
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((xorg-server (assoc-ref inputs "xorg-server"))
- (display ":1"))
- (setenv "DISPLAY" display)
- (zero? (system (string-append xorg-server "/bin/Xvfb "
- display " &"))))))
(add-after 'install 'install-icons
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -628,16 +616,18 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
(symlink adwaita "Adwaita")
(copy-recursively hicolor "hicolor")))
#t))
- (add-after 'install-icons 'wrap-program
+ (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")))))))))
+ "/share/glib-2.0/schemas"))))
+ #t)))))
(native-inputs
`(("intltool" ,intltool)
+ ("python-docutils" ,python-docutils)
("xorg-server" ,xorg-server)))
(inputs
`(("adwaita-icon-theme" ,adwaita-icon-theme)
@@ -647,12 +637,13 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
("hicolor-icon-theme" ,hicolor-icon-theme)
("libsecret" ,libsecret)
("python-axolotl" ,python-axolotl)
+ ("python-cssutils" ,python-cssutils)
("python-dbus" ,python-dbus)
- ("python-docutils" ,python-docutils)
("python-gnupg" ,python-gnupg)
+ ("python-keyring" ,python-keyring)
("python-nbxmpp" ,python-nbxmpp)
("python-pillow" ,python-pillow)
- ("python-pyasn1" ,python-pyasn1)
+ ("python-precis-i18n" ,python-precis-i18n)
("python-pycairo" ,python-pycairo)
("python-pygobject" ,python-pygobject)
("python-pyopenssl" ,python-pyopenssl)
@@ -827,8 +818,8 @@ protocols.")
(license license:x11)))
(define-public libtoxcore
- (let ((revision "1")
- (commit "755f084e8720b349026c85afbad58954cb7ff1d4"))
+ (let ((revision "2")
+ (commit "bf69b54f64003d160d759068f4816b2d9b2e1e21"))
(package
(name "libtoxcore")
(version (string-append "0.0.0" "-"
@@ -841,26 +832,19 @@ protocols.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0ap1gvlyihnfivv235dbrgsxsiiz70bhlmlr5gn1027w3h5kqz8w"))))
+ "11lqra4yd7v293cp286ynff5lqz1pprzg8vn3wq6vryj08g88zqb"))))
(build-system gnu-build-system)
+ (arguments `(#:tests? #f)) ; FIXME: tests hang, some fail.
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
- ;; TODO: Add when test suite is capable of passing.
- ;; ("check" ,check)
+ ("check" ,check)
("pkg-config" ,pkg-config)))
(inputs
`(("libsodium" ,libsodium)
("opus" ,opus)
("libvpx" ,libvpx)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autoconf
- (lambda _
- (zero? (system* "autoreconf" "-vfi")))))
- #:tests? #f)) ; FIXME: Testsuite fails, reasons unspecific.
(synopsis "Library for the Tox encrypted messenger protocol")
(description
"C library implementation of the Tox encrypted messenger protocol.")
@@ -873,16 +857,17 @@ protocols.")
(define-public c-toxcore
(package
(name "c-toxcore")
- (version "0.2.6")
+ (version "0.2.8")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/TokTok/c-toxcore/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/TokTok/c-toxcore.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "04b3ifkj64yy06vph0hlq24mw9fh24zmq1qdf40fmj24vvgfmjpl"))))
+ "0xgnraysz25fbws5zwjk92mwnl8k1yih701qam8kgm3rxh50kyhm"))))
(arguments
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
; for now.
@@ -1135,7 +1120,7 @@ with several different talk daemons at the same time.")
(define-public gloox
(package
(name "gloox")
- (version "1.0.17")
+ (version "1.0.21")
(source
(origin
(method url-fetch)
@@ -1143,7 +1128,7 @@ with several different talk daemons at the same time.")
version ".tar.bz2"))
(sha256
(base32
- "09c01jr5nrm7f1ly42wg0pqqscmp48pv8y2fjx1vwbavjxdq59ri"))))
+ "1k57qgif1yii515m6jaqaibkdysfab6394bpawd2l67321f1a4rw"))))
(build-system gnu-build-system)
(inputs
`(("libidn" ,libidn)
@@ -1385,7 +1370,7 @@ protocol allows.")
(define-public mcabber
(package
(name "mcabber")
- (version "1.0.5")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
@@ -1393,7 +1378,7 @@ protocol allows.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "0ixdzk5b3s31a4bdfqgqrsiq7vbgdzhqr49p9pz9cq9bgn0h1wm0"))))
+ "1ggh865p1rf10ffsnf4g6qv9i8bls36dxdb1nzs5r9vdqci2rz04"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list "--enable-otr"
@@ -1472,15 +1457,16 @@ is also scriptable and extensible via Guile.")
(define-public libmesode
(package
(name "libmesode")
- (version "0.9.1")
+ (version "0.9.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/boothj5/libmesode/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/boothj5/libmesode.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0iaj56fkd5bjvqpvq3324ni895rmbj1akbfqipjydnghfwaym4z6"))))
+ "06f5nfaypvxrbsinxa1k2vrxrs7kqmg38g4wwwk5d63hpn1pj8ak"))))
(build-system gnu-build-system)
(inputs
`(("expat" ,expat)
@@ -1565,7 +1551,7 @@ using ncurses and libmesode, inspired by Irssi.")
(define-public libircclient
(package
(name "libircclient")
- (version "1.9")
+ (version "1.10")
(source
(origin
(method url-fetch)
@@ -1573,7 +1559,7 @@ using ncurses and libmesode, inspired by Irssi.")
version "/libircclient-" version ".tar.gz"))
(sha256
(base32
- "0r60i76jh4drjh2jgp5sx71chagqllmkaq49zv67nrhqwvp9ghw1"))))
+ "0b9wa0h3xc31wpqlvgxgnvqp5wgx3kwsf5s9432m5cj8ycx6zcmv"))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)))
@@ -1584,8 +1570,7 @@ using ncurses and libmesode, inspired by Irssi.")
"--enable-shared"
"--enable-ipv6"
"--enable-openssl")
- ;; no test suite
- #:tests? #f))
+ #:tests? #f)) ; no test suite
(home-page "https://www.ulduzsoft.com/libircclient/")
(synopsis "Library implementing the client IRC protocol")
(description "Libircclient is a library which implements the client IRC
@@ -1647,7 +1632,7 @@ notifications, and Python scripting support.")
(define-public libqmatrixclient
(package
(name "libqmatrixclient")
- (version "0.3.0.2")
+ (version "0.4.0")
(source
(origin
(method git-fetch)
@@ -1657,7 +1642,7 @@ notifications, and Python scripting support.")
(file-name (git-file-name name version))
(sha256
(base32
- "03pxmr4wa818fgqddkr2fkwz6pda538x3ic9yq7c40x98zqf55w5"))))
+ "1llzqjagvp91kcg26q5c4qw9aaz7wna3rh6k06rc3baivrjqf3cn"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)))
@@ -1675,7 +1660,7 @@ QMatrixClient project.")
(define-public quaternion
(package
(name "quaternion")
- (version "0.0.9.2")
+ (version "0.0.9.3")
(source
(origin
(method git-fetch)
@@ -1685,31 +1670,31 @@ QMatrixClient project.")
(file-name (git-file-name name version))
(sha256
(base32
- "0zrr4khbbdf5ziq65gi0cb1yb1d0y5rv18wld22w1x96f7fkmrib"))))
+ "1hr9zqf301rg583n9jv256vzj7y57d8qgayk7c723bfknf1s6hh3"))))
(build-system cmake-build-system)
(inputs
`(("libqmatrixclient" ,libqmatrixclient)
("qtbase" ,qtbase)
- ("qtdeclarative" ,qtdeclarative)))
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtquickcontrols" ,qtquickcontrols)
+ ("qtsvg" ,qtsvg)
+ ("qttools" ,qttools)))
(arguments
`(#:tests? #f ; No tests
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-libqmatrixclient-dynamic-linking
- ;; Upstream recommends statically linking with
- ;; libqmatrixclient. Patch the source so that we can dynamically
- ;; link instead. In a future release, when upstream moves to
- ;; dynamic linking, remove this phase.
- (lambda _
- (substitute* "CMakeLists.txt"
- (("^add_subdirectory\\(lib\\)" all)
- (string-append "#" all)))
- (for-each
- (lambda (file)
- (substitute* file
- (("#include \"lib/([^\"]*)\"" all header)
- (string-append "#include <" header ">"))))
- (find-files "client" "\\.(cpp|h)$"))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/quaternion")
+ `("QT_PLUGIN_PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "qtsvg")
+ "/lib/qt5/plugins")))
+ `("QML2_IMPORT_PATH" ":" prefix
+ ,(map (lambda (label)
+ (string-append (assoc-ref inputs label)
+ "/lib/qt5/qml"))
+ '("qtdeclarative" "qtquickcontrols"))))
#t)))))
(home-page "https://matrix.org/docs/projects/client/quaternion.html")
(synopsis "Graphical client for the Matrix instant messaging protocol")
@@ -1720,4 +1705,128 @@ QMatrixClient project.")
(license (list license:gpl3+ ; all source code
license:lgpl3+)))) ; icons/breeze
+(define-public hangups
+ (package
+ (name "hangups")
+ (version "0.4.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "hangups" version))
+ (sha256
+ (base32 "0mvpfd5dc3zgcvwfidcd2qyn59xl5biv728mxifw0ls5rzkc9chs"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'relax-dependencies
+ ;; Relax overly strict package version specifications.
+ (lambda _
+ (substitute* "setup.py"
+ (("==") ">="))
+ #t)))))
+ (propagated-inputs
+ `(("python-aiohttp" ,python-aiohttp)
+ ("python-appdirs" ,python-appdirs)
+ ("python-async-timeout" ,python-async-timeout)
+ ("python-configargparse" ,python-configargparse)
+ ("python-mechanicalsoup" ,python-mechanicalsoup)
+ ("python-protobuf" ,python-protobuf)
+ ("python-readlike" ,python-readlike)
+ ("python-reparser" ,python-reparser)
+ ("python-requests" ,python-requests)
+ ("python-urwid" ,python-urwid)))
+ (home-page "https://hangups.readthedocs.io/")
+ (synopsis "Instant messaging client for Google Hangouts")
+ (description
+ "Hangups is an instant messaging client for Google Hangouts. It includes
+both a Python library and a reference client with a text-based user interface.
+
+Hangups is implements a reverse-engineered version of Hangouts' proprietary,
+non-interoperable protocol, which allows it to support features like group
+messaging that aren’t available to clients that connect over XMPP.")
+ (license license:expat)))
+
+(define-public telegram-purple
+ (package
+ (name "telegram-purple")
+ (version "1.3.1")
+ (home-page "https://github.com/majn/telegram-purple")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (sha256
+ (base32
+ "0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "Makefile.in"
+ ;; By default these two directories point to Pidgin's own
+ ;; prefix.
+ (("^PLUGIN_DIR_PURPLE=.*")
+ (string-append
+ "exec_prefix := @exec_prefix@\n"
+ "PLUGIN_DIR_PURPLE := @libdir@/purple-2\n"))
+ (("^DATA_ROOT_DIR_PURPLE=.*")
+ "DATA_ROOT_DIR_PURPLE := @datarootdir@\n")
+
+ ;; Honor sysconfdir instead of trying to write to /etc.
+ (("DESTDIR\\)/etc/telegram-purple")
+ "DESTDIR)@sysconfdir@/telegram-purple"))
+ #t))
+ (patches (search-patches "telegram-purple-adjust-test.patch"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("pidgin" ,pidgin)
+ ("libgcrypt" ,libgcrypt)
+ ("libwebp" ,libwebp)
+ ("glib" ,glib)
+ ("gettext" ,gnu-gettext)
+ ("gtk+" ,gtk+-2)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; We're using release tag for repository checkout - let's prepare
+ ;; header defining GIT_COMMIT manually instead of running git to
+ ;; identify version which is being compiled. Git repository
+ ;; is removed anyway and only source code is kept.
+ (add-after 'unpack 'prepare-commit.h
+ (lambda _
+ (with-output-to-file "./commit.h"
+ (lambda ()
+ (display
+ (string-append "//generated by guix, use version instead of "
+ "commit\n"
+ "#ifndef GIT_COMMIT\n"
+ "# define GIT_COMMIT \"v"
+ ,version "\"\n"
+ "#endif\n"))))
+ #t))
+ (add-before 'configure 'set-SHELL-variables
+ ;; Set these environment variables so that 'tgl/configure' uses the
+ ;; right shell and not /bin/sh.
+ (lambda _
+ (let ((bash (which "bash")))
+ (setenv "SHELL" bash)
+ (setenv "CONFIG_SHELL" bash)
+ #t))))))
+ (synopsis "Telegram messaging support for Pidgin")
+ (description
+ "Telegram-purple is a plugin for Libpurple, the communication library
+used by the Pidgin instant messaging client, that adds support for the
+Telegram messenger.")
+
+ ;; Code under tgl/ (the Telegram library) is LGPLv2.1+, but the plugin
+ ;; itself is GPLv2+.
+ (license license:gpl2+)))
+
;;; messaging.scm ends here