+ (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)
+ ("lua5.1-sec" ,lua5.1-sec)))
+ (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)))