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.scm164
1 files changed, 52 insertions, 112 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 061e2fe236..f075d28e0a 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -18,7 +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>
+;;; Copyright © 2020, 2021 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>
@@ -1836,79 +1836,6 @@ including psyced.")
(synopsis "PSYC library in C")
(license license:agpl3+)))
-;; This commit removes the historic bundled pcre and makes psyclpc reproducible.
-(define-public psyclpc
- (let* ((commit "61cf9aa81297085e5c40170fd01221c752f8deba")
- (revision "2"))
- (package
- (name "psyclpc")
- (version (string-append "20160821-" revision "." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://git.psyced.org/git/psyclpc")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1viwqymbhn3cwvx0zl58rlzl5gw47zxn0ldg2nbi55ghm5zxl1z5"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f ; There are no tests/checks.
- #:configure-flags
- ;; If you have questions about this part, look at
- ;; "src/settings/psyced" and the ebuild.
- (list
- "--enable-use-tls=yes"
- "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled.
- (string-append "--prefix="
- (assoc-ref %outputs "out"))
- ;; src/Makefile: Set MUD_LIB to the directory which contains
- ;; the mud data. defaults to MUD_LIB = @libdir@
- (string-append "--libdir="
- (assoc-ref %outputs "out")
- "/opt/psyced/world")
- (string-append "--bindir="
- (assoc-ref %outputs "out")
- "/opt/psyced/bin")
- ;; src/Makefile: Set ERQ_DIR to directory which contains the
- ;; stuff which ERQ can execute (hopefully) savely. Was formerly
- ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@
- (string-append "--libexecdir="
- (assoc-ref %outputs "out")
- "/opt/psyced/run"))
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'chdir-to-src
- ;; We need to pass this as env variables
- ;; and manually change the directory.
- (lambda _
- (chdir "src")
- (setenv "CONFIG_SHELL" (which "sh"))
- (setenv "SHELL" (which "sh"))
- #t)))
- #:make-flags (list "install-all")))
- (inputs
- `(("zlib" ,zlib)
- ("openssl" ,openssl-1.0)
- ("pcre" ,pcre)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("bison" ,bison)
- ("gettext" ,gettext-minimal)
- ("help2man" ,help2man)
- ("autoconf" ,autoconf)
- ("automake" ,automake)))
- (home-page "http://lpc.psyc.eu/")
- (synopsis "psycLPC is a multi-user network server programming language")
- (description
- "LPC is a bytecode language, invented to specifically implement
-multi user virtual environments on the internet. This technology is used for
-MUDs and also the psyced implementation of the Protocol for SYnchronous
-Conferencing (PSYC). psycLPC is a fork of LDMud with some new features and
-many bug fixes.")
- (license license:gpl2))))
-
(define-public loudmouth
(package
(name "loudmouth")
@@ -2297,7 +2224,7 @@ QMatrixClient project.")
(define-public mtxclient
(package
(name "mtxclient")
- (version "0.3.1")
+ (version "0.5.1")
(source
(origin
(method git-fetch)
@@ -2306,7 +2233,7 @@ QMatrixClient project.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x"))))
+ (base32 "1xznfx2bhw0ahwmkxm0rs05vz05ijk5k4190rj6qp3bvb9byiajh"))))
(arguments
`(#:configure-flags
(list
@@ -2319,12 +2246,6 @@ QMatrixClient project.")
(substitute* "CMakeLists.txt"
(("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption|Pushrules)")
"# 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
@@ -2347,7 +2268,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.")
(define-public nheko
(package
(name "nheko")
- (version "0.7.2")
+ (version "0.8.2")
(source
(origin
(method git-fetch)
@@ -2356,30 +2277,60 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s"))))
+ (base32 "0362hkbprc6jqlgmvzwxyvify4b1ldjakyqdz55m25xsypbpv2f3"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "third_party")))))
(arguments
`(#:tests? #f ;no test target
#:configure-flags
- (list
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_CXX_FLAGS=-fpermissive")
+ '("-DCMAKE_BUILD_TYPE=Release"
+ "-DBUILD_DOCS=ON"
+ ;; Fix required because we are using a static SingleApplication
+ "-DCMAKE_CXX_FLAGS= \"-DQAPPLICATION_CLASS=QApplication\" "
+ ;; Compile Qml will make Nheko faster, but you will need to recompile
+ ;; it, when you update Qt. That's fine for us.
+ "-DCOMPILE_QML=ON")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'remove-Werror
- (lambda _
- (substitute* "CMakeLists.txt"
- (("-Werror") ""))
- #t))
+ (add-after 'unpack 'unbundle-dependencies
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((single-app (assoc-ref inputs "single-application")))
+ (substitute* "CMakeLists.txt"
+ ;; Remove include and source dirs,replace with the correct one
+ (("third_party/blurhash/blurhash.cpp") "")
+ (("third_party/cpp-httplib-0.5.12")
+ (string-append "\"" single-app "/include\""))
+ (("add_subdirectory.*third_party/SingleApplication.*") "")
+ ;; Link using the correct static/shared libs
+ (("SingleApplication::SingleApplication")
+ (string-append
+ ;; Dynamic libraries
+ "httplib" "\n" "blurhash" "\n"
+ ;; Static library
+ single-app "/lib/libSingleApplication.a"))))))
(add-after 'unpack 'fix-determinism
(lambda _
;; Make Qt deterministic.
- (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
- #t)))))
+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+ (wrap-program (string-append out "/bin/nheko")
+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))))))))
(build-system qt-build-system)
(inputs
`(("boost" ,boost)
+ ("blurhash" ,blurhash)
+ ("cpp-httplib" ,cpp-httplib)
("cmark" ,cmark)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("gst-plugins-bad" ,gst-plugins-bad) ; sdp & webrtc for voip
+ ("gst-plugins-good" ,gst-plugins-good) ; rtpmanager for voip
("json-modern-cxx" ,json-modern-cxx)
+ ("libnice" ,libnice) ; for voip
("libolm" ,libolm)
("lmdb" ,lmdb)
("lmdbxx" ,lmdbxx)
@@ -2387,15 +2338,18 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.")
("openssl" ,openssl)
("qtbase" ,qtbase-5)
("qtdeclarative" ,qtdeclarative)
+ ("qtkeychain" ,qtkeychain)
("qtgraphicaleffects" ,qtgraphicaleffects)
("qtmultimedia" ,qtmultimedia)
("qtquickcontrols2" ,qtquickcontrols2)
("qtsvg" ,qtsvg)
("spdlog" ,spdlog)
- ("tweeny" ,tweeny)
+ ("single-application" ,single-application-qt5)
("zlib" ,zlib)))
(native-inputs
- `(("pkg-config" ,pkg-config)
+ `(("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)
+ ("pkg-config" ,pkg-config)
("qtlinguist" ,qttools)))
(home-page "https://github.com/Nheko-Reborn/nheko")
(synopsis "Desktop client for Matrix using Qt and C++14")
@@ -2403,22 +2357,8 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.")
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")
+Many matrix features are supported, including user registration, rooms, typing
+notification, emojis, E2E encryption, and voip calls.")
(license license:gpl3+)))
(define-public quaternion