X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/246bc76a157b324b69412e5dd1e4ce22d45944da..2887700e4d6e9d43df97d9b11d9aba935951a3e8:/gnu/packages/messaging.scm diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 6471501a6b..72b89067f0 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1,9 +1,13 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014 Julien Lepiller ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Andreas Enge -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2016 ng0 +;;; Copyright © 2016 Andy Patterson +;;; Copyright © 2016 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,29 +25,32 @@ ;;; along with GNU Guix. If not, see . (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) @@ -57,22 +64,30 @@ #: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 (name "libotr") - (version "4.1.0") + (version "4.1.1") (source (origin (method url-fetch) (uri (string-append "https://otr.cypherpunks.ca/libotr-" version ".tar.gz")) (sha256 - (base32 "0c6rkh58s6wqzcrpccwdik5qs91qj6dgd60a340d72gc80cqknsg")))) + (base32 + "1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb")) + (patches (search-patches "libotr-test-auth-fix.patch")))) (build-system gnu-build-system) (propagated-inputs `(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h (inputs `(("libgpg-error" ,libgpg-error))) + (native-inputs `(("perl" ,perl))) ; for the test suite (synopsis "Off-the-Record (OTR) Messaging Library and Toolkit") (description "OTR allows you to have private conversations over instant messaging by @@ -85,29 +100,39 @@ correspondent is assured the messages he sees are authentic and 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)))) -(define-public libotr-3 - (package (inherit libotr) - (version "3.2.1") - (source (origin - (method url-fetch) - (uri (string-append "https://otr.cypherpunks.ca/libotr-" - version ".tar.gz")) - (sha256 - (base32 "1x6dd4rh499hdraiqfhz81igrj0a5rs0gjhc8l4sljwqhjjyla6l")))))) +;; 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") + (version "3.4.2") (source (origin (method url-fetch) - (uri (string-append "http://get.bitlbee.org/src/bitlbee-" + (uri (string-append "https://get.bitlbee.org/src/bitlbee-" version ".tar.gz")) (sha256 - (base32 "0plx4dryf8i6hz7vghg84z5f6w6rkw1l8ckl4c4wh5zxpd3ddfnf")) - (patches (list (search-patch "bitlbee-configure-doc-fix.patch"))))) + (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))) @@ -139,19 +164,19 @@ Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter 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))) @@ -163,17 +188,20 @@ identi.ca and status.net).") ("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 @@ -186,15 +214,16 @@ dictionaries. HexChat can be extended with multiple addons.") (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) @@ -203,7 +232,7 @@ dictionaries. HexChat can be extended with multiple addons.") '()))) (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))) @@ -238,12 +267,12 @@ dictionaries. HexChat can be extended with multiple addons.") "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) @@ -251,8 +280,8 @@ supports IPv6, SSL-protected connections as well as PAM for authentication.") 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) @@ -312,28 +341,28 @@ supports IPv6, SSL-protected connections as well as PAM for authentication.") 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."))))) (define-public pidgin-otr (package (name "pidgin-otr") - (version "4.0.1") + (version "4.0.2") (source (origin (method url-fetch) (uri (string-append "https://otr.cypherpunks.ca/" name "-" version ".tar.gz")) (sha256 (base32 - "02pkkf86fh5jvzsdn9y78impsgzj1n0p81kc2girvk3vq941yy0v")))) + "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -359,19 +388,19 @@ you. However, during a conversation, your correspondent is assured the 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.1") + (version "1.6.3") (source (origin (method url-fetch) - (uri (string-append "http://znc.in/releases/znc-" + (uri (string-append "http://znc.in/releases/archive/znc-" version ".tar.gz")) (sha256 (base32 - "0h61nv5kx9k8prmhsffxhlprf7gjcq8vqhjjmqr6v3glcirkjjds")))) + "09xqi5fs40x6nj9gq99bnw1a7saq96bvqxknxx0ilq7yfvg4c733")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; tries to download GoogleTest with wget @@ -393,7 +422,7 @@ compromised.") 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 @@ -416,9 +445,418 @@ simultaneously and therefore appear under the same nickname on IRC.") "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.6") + (source (origin + (method url-fetch) + (uri (string-append "https://gajim.org/downloads/" + (version-major+minor version) + "/gajim-" version ".tar.bz2")) + (sha256 + (base32 + "1p3qwzy07f0wkika9yigyiq167l2k6wn12flqa7x55z4ihbysmqk")))) + (build-system gnu-build-system) + (arguments + `(#: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))))) + (native-inputs + `(("intltool" ,intltool))) + (propagated-inputs + `(("python2-nbxmpp" ,python2-nbxmpp) + ("python2-pyopenssl" ,python2-pyopenssl) + ("python2-gnupg" ,python2-gnupg))) + (inputs + `(("python2-pygtk" ,python2-pygtk) + ("python" ,python-2))) + (home-page "https://gajim.org/") + (synopsis "Jabber (XMPP) client") + (description "Gajim is a feature-rich and easy to use Jabber/XMPP client. +Among its features are: a tabbed chat window and single window modes; support +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 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 . + ("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