diff options
Diffstat (limited to 'gnu/packages/messaging.scm')
-rw-r--r-- | gnu/packages/messaging.scm | 132 |
1 files changed, 130 insertions, 2 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 120daacdc6..c1d4d93c32 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si> +;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,6 +49,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) @@ -68,8 +70,10 @@ #:use-module (gnu packages libcanberra) #:use-module (gnu packages libidn) #:use-module (gnu packages linux) + #:use-module (gnu packages logging) #:use-module (gnu packages lua) #:use-module (gnu packages man) + #:use-module (gnu packages markup) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages pcre) @@ -1634,14 +1638,14 @@ are both supported).") (define-public profanity (package (name "profanity") - (version "0.7.1") + (version "0.8.1") (source (origin (method url-fetch) (uri (string-append "https://profanity-im.github.io/profanity-" version ".tar.gz")) (sha256 (base32 - "0nxh81j8ky0fzv47pip1jb7rs5rrin3jx0f3h632bvpjiya45r1z")))) + "15yrx2ir2bilxpjfaxpjb93yjpvpvcvh5r7wbsjx6kmmy7qg2zvb")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1787,6 +1791,130 @@ implementation. Quaternion and libqmatrixclient together form the QMatrixClient project.") (license license:lgpl2.1+))) +(define-public mtxclient + (package + (name "mtxclient") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Nheko-Reborn/mtxclient.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pycznrvj57ff6gbwfn1xj943d2dr4vadl79hii1z16gn0nzxpmj")))) + (arguments + `(#:configure-flags + (list + ;; Disable example binaries (not installed) + "-DBUILD_LIB_EXAMPLES=OFF") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'disable-network-tests + (lambda _ + (substitute* "CMakeLists.txt" + (("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption)") + "# add_test")) + #t)) + (add-before 'configure 'set-home + (lambda _ + ;; Tries to create package registry file + ;; So, set HOME. + (setenv "HOME" "/tmp") + #t))))) + (build-system cmake-build-system) + (inputs + `(("boost" ,boost) + ("json-modern-cxx" ,json-modern-cxx) + ("libolm" ,libolm) + ("libsodium" ,libsodium) + ("openssl" ,openssl) + ("spdlog" ,spdlog) + ("zlib" ,zlib))) + (native-inputs + `(("googletest" ,googletest) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/Nheko-Reborn/mtxclient") + (synopsis "Client API library for the Matrix protocol") + (description "@code{mtxclient} is a C++ library that implements client API +for the Matrix protocol. It is built on to of @code{Boost.Asio}.") + (license license:expat))) + +(define-public nheko + (package + (name "nheko") + (version "0.6.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Nheko-Reborn/nheko.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm")))) + (arguments + `(#:tests? #f ;no test target + #:configure-flags + (list + "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_CXX_FLAGS=-fpermissive") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-Werror + (lambda _ + (substitute* "CMakeLists.txt" + (("-Werror") "")) + #t)) + (add-after 'unpack 'fix-determinism + (lambda _ + ;; Make Qt deterministic. + (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1") + #t))))) + (build-system qt-build-system) + (inputs + `(("boost" ,boost) + ("cmark" ,cmark) + ("json-modern-cxx" ,json-modern-cxx) + ("libolm" ,libolm) + ("lmdb" ,lmdb) + ("lmdbxx" ,lmdbxx) + ("mtxclient" ,mtxclient) + ("openssl" ,openssl) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) + ("qtmultimedia" ,qtmultimedia) + ("spdlog" ,spdlog) + ("tweeny" ,tweeny) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qtlinguist" ,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 +Matrix protocol that feels more like a mainstream chat app and less like an IRC +client. + +There is support for: +@itemize +@item E2E encryption (text messages only: attachments are currently sent unencrypted). +@item User registration. +@item Creating, joining & leaving rooms. +@item Sending & receiving invites. +@item Sending & receiving files and emoji. +@item Typing notifications. +@item Username auto-completion. +@item Message & mention notifications. +@item Redacting messages. +@item Read receipts. +@item Basic communities support. +@item Room switcher (@key{ctrl-K}). +@item Light, Dark & System themes. +@end itemize") + (license license:gpl3+))) + (define-public quaternion (package (name "quaternion") |