aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/messaging.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/messaging.scm')
-rw-r--r--gnu/packages/messaging.scm235
1 files changed, 180 insertions, 55 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index d50732dfc4..de33d737e2 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
@@ -1647,7 +1648,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 +1658,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 +1676,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 +1686,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 +1721,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