diff options
Diffstat (limited to 'gnu/packages/messaging.scm')
-rw-r--r-- | gnu/packages/messaging.scm | 300 |
1 files changed, 272 insertions, 28 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index fa4515c768..5a618c2742 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016 ng0 <ngillmann@runbox.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,12 +23,11 @@ ;;; 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 x11)) + #: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) @@ -35,6 +35,7 @@ #: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 documentation) @@ -44,6 +45,7 @@ #: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) @@ -59,7 +61,12 @@ #: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 @@ -90,7 +97,7 @@ 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)))) ;; These patches together fix https://github.com/bitlbee/bitlbee/pull/55, are ;; already upstream, and should be unnecessary when the next bitlbee comes @@ -154,19 +161,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.12.0") + (version "2.12.1") (source (origin (method url-fetch) (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" version ".tar.xz")) (sha256 (base32 - "17fncwza5r80z9r6j1lrh7h375hp4w6pay08zgnfc3qca6bjy1y2")))) + "0svwz9ldrry1sn35jywgpacjj1cf3xl3k74ynwn8rjvxs73b00aj")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) @@ -178,17 +185,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 @@ -208,8 +218,9 @@ dictionaries. HexChat can be extended with multiple addons.") (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) @@ -218,7 +229,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))) @@ -253,7 +264,7 @@ 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 @@ -327,14 +338,14 @@ 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."))))) @@ -374,7 +385,7 @@ 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 @@ -408,7 +419,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 @@ -431,7 +442,7 @@ 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)) @@ -491,7 +502,7 @@ 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 gpl3+))) + (license license:gpl3+))) (define-public prosody (package @@ -507,6 +518,7 @@ end-to-end encryption support; XML console.") (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) @@ -564,6 +576,238 @@ 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 x11))) + (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 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 |