;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
+;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages messaging)
- #:use-module ((guix licenses)
- #:select (gpl3+ gpl2+ gpl2 lgpl2.1 lgpl2.0+ bsd-2 non-copyleft
- asl2.0))
+ #: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 python)
#:use-module (gnu packages)
+ #:use-module (gnu packages aidc)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages check)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
- #:use-module (gnu packages doxygen)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages libidn)
+ #:use-module (gnu packages lua)
#:use-module (gnu packages xml)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages admin)
#:use-module (gnu packages linux)
#:use-module (gnu packages tls)
- #:use-module (gnu packages icu4c))
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages fontutils))
(define-public libotr
(package
(sha256
(base32
"1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb"))
- (patches
- (list (search-patch "libotr-test-auth-fix.patch")))))
+ (patches (search-patches "libotr-test-auth-fix.patch"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h
unmodified. (4) Perfect forward secrecy: If you lose control of your private
keys, no previous conversation is compromised.")
(home-page "https://otr.cypherpunks.ca/")
- (license (list lgpl2.1 gpl2))))
+ (license (list license:lgpl2.1 license:gpl2))))
+
+;; These patches together fix https://github.com/bitlbee/bitlbee/pull/55, are
+;; already upstream, and should be unnecessary when the next bitlbee comes
+;; out.
+(define %bitlbee-buddy-nick-change-patch
+ (origin
+ (method url-fetch)
+ (uri "https://github.com/bitlbee/bitlbee/commit/a42fda42.patch")
+ (sha256
+ (base32
+ "1mzjhcdn0rxir5mzgqz9kv142ai38p1iq2lajqx89wb7x0bp51zx"))))
+(define %bitlbee-always-use-nicks-patch
+ (origin
+ (method url-fetch)
+ (uri "https://github.com/bitlbee/bitlbee/commit/3320d6d9.patch")
+ (sha256
+ (base32
+ "14d9kb5zdzh5hzakdvrbviz83rix0j2lq9rzb58b2fn92fp8yixd"))))
(define-public bitlbee
(package
(name "bitlbee")
- (version "3.4.1")
+ (version "3.4.2")
(source (origin
(method url-fetch)
(uri (string-append "https://get.bitlbee.org/src/bitlbee-"
version ".tar.gz"))
(sha256
- (base32 "1qf0ypa9ba5jvsnpg9slmaran16hcc5fnfzbb1sdch1hjhchn2jh"))))
+ (base32 "0mza8lnfwibmklz8hdzg4f7p83hblf4h6fbf7d732kzpvra5bj39"))
+ (patches
+ (list %bitlbee-buddy-nick-change-patch
+ %bitlbee-always-use-nicks-patch))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("check" ,check)))
microblogging network (plus all other Twitter API compatible services like
identi.ca and status.net).")
(home-page "http://www.bitlbee.org/")
- (license (list gpl2+ bsd-2))))
+ (license (list license:gpl2+ license:bsd-2))))
(define-public hexchat
(package
(name "hexchat")
- (version "2.10.1")
+ (version "2.12.2")
(source (origin
(method url-fetch)
(uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
version ".tar.xz"))
(sha256
(base32
- "1ag9rmfisv0hsbk05jq4f1rnap7kwg90vgbmkr9zklkh6imfxk7z"))))
+ "1xnclfbrgbkqndxygi5f27q00jd7yy54jbd1061jmhxa6wzpibbd"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
("libcanberra" ,libcanberra)
("libnotify" ,libnotify)
("openssl" ,openssl)
- ("perl-xml-parser" ,perl-xml-parser) ;for addons
- ("python-2" ,python-2))) ;for addons
+
+ ;; Bindings for add-on scripts.
+ ("luajit" ,luajit)
+ ("perl-xml-parser" ,perl-xml-parser)
+ ("python-2" ,python-2)))
(synopsis "Graphical IRC Client")
(description
- "HexChat lets you connect to multiple IRC networks at once. The main 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
+ "HexChat lets you connect to multiple IRC networks at once. The main
+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/")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public ngircd
(package
(sha256
(base32
"17k3g9qd9d010czk5846qxvzkmw4fihv8l6m2a2287crbxm3xhd4"))
- (patches (list (search-patch "ngircd-no-dns-in-tests.patch")
- (search-patch "ngircd-handle-zombies.patch")))))
+ (patches (search-patches "ngircd-no-dns-in-tests.patch"
+ "ngircd-handle-zombies.patch"))))
(build-system gnu-build-system)
;; Needed for the test suite.
(native-inputs `(("procps" ,procps)
("expect" ,expect)
("inetutils" ,inetutils)))
- ;; XXX Add libident, libwrap.
+ ;; XXX Add libident.
(inputs `(("zlib" ,zlib)
+ ("libwrap" ,tcp-wrappers)
("gnutls" ,gnutls)
,@(if (string-suffix? "-linux"
(or (%current-target-system)
'())))
(arguments
`(#:configure-flags
- '("--with-gnutls" "--with-iconv" "--enable-ipv6"
+ '("--with-gnutls" "--with-iconv" "--enable-ipv6" "--with-tcp-wrappers"
,@(if (string-suffix? "-linux"
(or (%current-target-system)
(%current-system)))
"ngIRCd is a lightweight Internet Relay Chat server for small or private
networks. It is easy to configure, can cope with dynamic IP addresses, and
supports IPv6, SSL-protected connections as well as PAM for authentication.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public pidgin
(package
(name "pidgin")
- (version "2.10.11")
+ (version "2.11.0")
(source
(origin
(method url-fetch)
version "/" name "-" version ".tar.bz2"))
(sha256
(base32
- "01s0q30qrjlzj7kkz6f8lvrwsdd55a9yjh2xjjwyyxzw849j3bpj"))
- (patches (list (search-patch "pidgin-add-search-path.patch")))))
+ "0crkggjj6y07v1kdwil9vw532b0vrs6p33nmlvdkpnl60m2169pp"))
+ (patches (search-patches "pidgin-add-search-path.patch"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
chat protocols.")
(license
(list
- gpl2+ ; Most of the code
- lgpl2.1 ; GG protocol plugin (libpurple/protocols/gg/lib)
- lgpl2.0+ ; OSCAR protocol plugin (libpurple/protocols/oscar)
+ license:gpl2+ ; Most of the code
+ license:lgpl2.1 ; GG protocol plugin (libpurple/protocols/gg/lib)
+ license:lgpl2.0+ ; OSCAR protocol plugin (libpurple/protocols/oscar)
;; The following licenses cover the zephyr protocol plugin:
- (non-copyleft
+ (license:non-copyleft
"file://libpurple/protocols/zephyr/mit-copyright.h"
"See libpurple/protocols/zephyr/mit-copyright.h in the distribution.")
- (non-copyleft
+ (license:non-copyleft
"file://libpurple/protocols/zephyr/mit-sipb-copyright.h"
"See libpurple/protocols/zephyr/mit-sipb-copyright.h in the distribution.")))))
messages he sees are authentic and unmodified. (4) Perfect forward secrecy:
If you lose control of your private keys, no previous conversation is
compromised.")
- (license gpl2)))
+ (license license:gpl2)))
(define-public znc
(package
(name "znc")
- (version "1.6.2")
+ (version "1.6.3")
(source (origin
(method url-fetch)
(uri (string-append "http://znc.in/releases/archive/znc-"
version ".tar.gz"))
(sha256
(base32
- "14q5dyr5zg99hm6j6g1gilcn1zf7dskhxfpz3bnkyhy6q0kpgwgf"))))
+ "09xqi5fs40x6nj9gq99bnw1a7saq96bvqxknxx0ilq7yfvg4c733"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tries to download GoogleTest with wget
client from the actual IRC server, and also from selected channels. Multiple
clients from different locations can connect to a single ZNC account
simultaneously and therefore appear under the same nickname on IRC.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public python-nbxmpp
(package
"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 is using non-blocking sockets.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public python2-nbxmpp
(package-with-python2 python-nbxmpp))
(define-public gajim
(package
(name "gajim")
- (version "0.16.5")
+ (version "0.16.6")
(source (origin
(method url-fetch)
(uri (string-append "https://gajim.org/downloads/"
"/gajim-" version ".tar.bz2"))
(sha256
(base32
- "14fhcqnkqygh91132dnf1idayj4r3iqbwb44sd3mxv20n6ribh55"))))
+ "1p3qwzy07f0wkika9yigyiq167l2k6wn12flqa7x55z4ihbysmqk"))))
(build-system gnu-build-system)
(arguments
- `(;; The only check done by gajim-0.16.x is to check that the
- ;; translations are up-to-date, and in 0.16.5 they are not, so
- ;; "make check" fails. Therefore, we disable tests for now.
- ;;
- ;; XXX TODO Try re-enabling tests in gajim-0.16.6 or later.
- ;;
- #:tests? #f
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-program
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Make sure all Python scripts run with the correct PYTHONPATH.
- (let ((out (assoc-ref outputs "out"))
- (path (getenv "PYTHONPATH")))
- (for-each (lambda (name)
- (let ((file (string-append out "/bin/" name)))
- ;; Wrapping destroys identification of intended
- ;; application, so we need to override "APP".
- (substitute* file
- (("APP=`basename \\$0`")
- (string-append "APP=" name)))
- (wrap-program file
- `("PYTHONPATH" ":" prefix (,path)))))
- '("gajim" "gajim-remote" "gajim-history-manager")))
- #t)))))
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Make sure all Python scripts run with the correct PYTHONPATH.
+ (let ((out (assoc-ref outputs "out"))
+ (path (getenv "PYTHONPATH")))
+ (for-each (lambda (name)
+ (let ((file (string-append out "/bin/" name)))
+ ;; Wrapping destroys identification of intended
+ ;; application, so we need to override "APP".
+ (substitute* file
+ (("APP=`basename \\$0`")
+ (string-append "APP=" name)))
+ (wrap-program file
+ `("PYTHONPATH" ":" prefix (,path)))))
+ '("gajim" "gajim-remote" "gajim-history-manager")))
+ #t)))))
(native-inputs
`(("intltool" ,intltool)))
(propagated-inputs
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 gpl3+)))
+ (license license:gpl3)))
+
+(define-public prosody
+ (package
+ (name "prosody")
+ (version "0.9.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://prosody.im/downloads/source/"
+ "prosody-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0bv6s5c0iizz015hh1lxlwlw1iwvisywajm2rcrbdfyrskzfwdj8"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no "check" target
+ #:configure-flags (list "--no-example-certs")
+ #:modules ((ice-9 match)
+ (srfi srfi-1)
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-configure-script
+ (lambda _
+ ;; The configure script aborts when it encounters unexpected
+ ;; arguments. Make it more tolerant.
+ (substitute* "configure"
+ (("exit 1") ""))
+ #t))
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Make sure all executables in "bin" find the required Lua
+ ;; modules at runtime.
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/"))
+ (deps (delete #f (map (match-lambda
+ ((label . directory)
+ (if (string-prefix? "lua" label)
+ directory #f)))
+ inputs)))
+ (path (string-join
+ (map (lambda (path)
+ (string-append path "/share/lua/5.1/?.lua;"
+ path "/share/lua/5.1/?/?.lua"))
+ (cons out deps))
+ ";"))
+ (cpath (string-join
+ (map (lambda (path)
+ (string-append path "/lib/lua/5.1/?.so;"
+ path "/lib/lua/5.1/?/?.so"))
+ (cons out deps))
+ ";")))
+ (for-each (lambda (file)
+ (wrap-program file
+ `("LUA_PATH" ";" = (,path))
+ `("LUA_CPATH" ";" = (,cpath))))
+ (find-files bin ".*"))
+ #t))))))
+ (inputs
+ `(("libidn" ,libidn)
+ ("openssl" ,openssl)
+ ("lua" ,lua-5.1)
+ ("lua5.1-expat" ,lua5.1-expat)
+ ("lua5.1-socket" ,lua5.1-socket)
+ ("lua5.1-filesystem" ,lua5.1-filesystem)
+ ;; See <https://prosody.im/doc/depends#luasec>.
+ ("lua5.1-sec" ,lua5.1-sec-0.5)))
+ (home-page "https://prosody.im/")
+ (synopsis "Jabber (XMPP) server")
+ (description "Prosody is a modern XMPP communication server. It aims to
+be easy to set up and configure, and efficient with system resources.
+Additionally, for developers it aims to be easy to extend and give a flexible
+system on which to rapidly develop added functionality, or prototype new
+protocols.")
+ (license license:x11)))
+
+(define-public libtoxcore
+ (let ((revision "1")
+ (commit "755f084e8720b349026c85afbad58954cb7ff1d4"))
+ (package
+ (name "libtoxcore")
+ (version (string-append "0.0.0" "-"
+ revision "."(string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/irungentoo/toxcore.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0ap1gvlyihnfivv235dbrgsxsiiz70bhlmlr5gn1027w3h5kqz8w"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ;; TODO: Add when test suite is capable of passing.
+ ;; ("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.")
+ (license license:gpl3+)
+ (home-page "https://tox.chat"))))
+
+(define-public utox
+ (package
+ (name "utox")
+ (version "0.9.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/GrayHatter/uTox/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "13hfqbwzcgvfbvf9yjm62aqsvxnpqppb50c88sys43m7022yqcsy"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list (string-append "PREFIX=" %output)
+ "CC=gcc")
+ #:tests? #f ; No tests
+ #:phases
+ (modify-phases %standard-phases
+ ;; No configure script
+ (delete 'configure))))
+ (inputs
+ `(("dbus" ,dbus)
+ ("filteraudio" ,filteraudio)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("libsodium" ,libsodium)
+ ("libtoxcore" ,libtoxcore)
+ ("libvpx" ,libvpx)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxrender" ,libxrender)
+ ("openal" ,openal)
+ ("v4l-utils" ,v4l-utils)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (synopsis "Lightweight Tox client")
+ (description "A lightweight Tox client. Tox is a distributed and secure
+instant messenger with audio and video chat capabilities.")
+ (home-page "http://utox.org/")
+ (license license:gpl3)))
+
+(define-public qtox
+ (package
+ (name "qtox")
+ (version "1.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/qTox/qTox/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0y15mc39x54k1kz36cw9412kl1p1p6nzlx97gagv4gg3vybfhbjv"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+-2)
+ ("libsodium" ,libsodium)
+ ("libtoxcore" ,libtoxcore)
+ ("libvpx" ,libvpx)
+ ("libxscrnsaver" ,libxscrnsaver)
+ ("libx11" ,libx11)
+ ("openal" ,openal)
+ ("qrencode" ,qrencode)
+ ("qt" ,qt)
+ ("sqlcipher" ,sqlcipher)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("qmake" ,qt)))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-reproducibility-issues
+ (lambda _
+ (substitute* "src/main.cpp"
+ (("__DATE__") "\"\"")
+ (("__TIME__") "\"\"")
+ (("TIMESTAMP") "\"\""))
+ #t))
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero?
+ (system* "qmake"
+ (string-append "PREFIX="
+ (assoc-ref outputs "out")))))))))
+ (home-page "https://qtox.github.io/")
+ (synopsis "Tox chat client using Qt")
+ (description "qTox is a Tox client that follows the Tox design
+guidelines. It provides an easy to use application that allows you to
+connect with friends and family without anyone else listening in.")
+ (license license:gpl3+)))
+
+(define-public pybitmessage
+ (package
+ (name "pybitmessage")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Bitmessage/"
+ "PyBitmessage/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ffj7raxpp277kphj98190fxrwfx16vmbspk7k3azg3bh5f5idnf"))))
+ (inputs
+ `(("python" ,python-2)
+ ("python:tk" ,python-2 "tk")
+ ("openssl" ,openssl)
+ ("sqlite" ,sqlite)
+ ("qt" ,qt-4)
+ ("python2-pyqt-4" ,python2-pyqt-4)
+ ("python2-sip" ,python2-sip)
+ ("python2-pysqlite" ,python2-pysqlite)
+ ("python2-pyopenssl" ,python2-pyopenssl)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:imported-modules ((guix build python-build-system)
+ ,@%gnu-build-system-modules)
+ #:make-flags (list (string-append "PREFIX="
+ (assoc-ref %outputs "out")))
+ #:tests? #f ; no test target
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-makefile
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("mkdir -p \\$\\{DESTDIR\\}/usr") "")
+ (("/usr/local") "")
+ (("/usr") "")
+ (("#!/bin/sh") (string-append "#!" (which "bash")))
+ (("python2") (which "python"))
+ (("/opt/openssl-compat-bitcoin/lib/")
+ (string-append (assoc-ref inputs "openssl") "/lib/")))
+ #t))
+ (add-after 'unpack 'fix-unmatched-python-shebangs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/bitmessagemain.py"
+ (("#!/usr/bin/env python2.7")
+ (string-append "#!" (which "python"))))
+ (substitute* "src/bitmessagecli.py"
+ (("#!/usr/bin/env python2.7.x")
+ (string-append "#!" (which "python"))))
+ #t))
+ (add-after 'unpack 'fix-depends
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/depends.py"
+ (("libcrypto.so")
+ (string-append (assoc-ref inputs "openssl")
+ "/lib/libcrypto.so")))
+ #t))
+ (add-after 'unpack 'fix-local-files-in-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "src/proofofwork.py"
+ (("bitmsghash.so")
+ (string-append (assoc-ref outputs "out")
+ "/lib/bitmsghash.so")))
+ #t))
+ (add-after 'unpack 'fix-pyelliptic
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/pyelliptic/openssl.py"
+ (("libcrypto.so")
+ (string-append (assoc-ref inputs "openssl")
+ "/lib/libcrypto.so"))
+ (("libssl.so")
+ (string-append (assoc-ref inputs "openssl")
+ "/lib/libssl.so")))
+ #t))
+ ;; XXX: Make does not build and install bitmsghash, do it
+ ;; and place it in /lib.
+ (add-before 'build 'build-and-install-bitmsghash
+ (lambda* (#:key outputs #:allow-other-keys)
+ (chdir "src/bitmsghash")
+ (system* "make")
+ (chdir "../..")
+ (install-file "src/bitmsghash/bitmsghash.so"
+ (string-append (assoc-ref outputs "out") "/lib"))
+ #t))
+ (add-after 'install 'wrap
+ (@@ (guix build python-build-system) wrap)))))
+ (license license:expat)
+ (description
+ "Distributed and trustless peer-to-peer communications protocol
+for sending encrypted messages to one person or many subscribers.")
+ (synopsis "Distributed peer-to-peer communication")
+ (home-page "https://bitmessage.org/")))
+
+(define-public ytalk
+ (package
+ (name "ytalk")
+ (version "3.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "ftp://ftp.ourproject.org/pub/ytalk/ytalk-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (home-page "http://ytalk.ourproject.org")
+ (synopsis "Multi-user chat program")
+ (description "Ytalk is a replacement for the BSD talk program. Its main
+advantage is the ability to communicate with any arbitrary number of users at
+once. It supports both talk protocols (\"talk\" and \"ntalk\") and can communicate
+with several different talk daemons at the same time.")
+ (license license:gpl2+)))
+
+(define-public gloox
+ (package
+ (name "gloox")
+ (version "1.0.17")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://camaya.net/download/gloox-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "09c01jr5nrm7f1ly42wg0pqqscmp48pv8y2fjx1vwbavjxdq59ri"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libidn" ,libidn)
+ ("gnutls" ,gnutls)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (synopsis "Portable high-level Jabber/XMPP library for C++")
+ (description
+ "gloox is a full-featured Jabber/XMPP client library,
+written in ANSI C++. It makes writing spec-compliant clients easy
+and allows for hassle-free integration of Jabber/XMPP functionality
+into existing applications.")
+ (home-page "https://camaya.net/gloox")
+ (license license:gpl3)))
;;; messaging.scm ends here