summary refs log tree commit diff
path: root/gnu/packages/messaging.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/messaging.scm')
-rw-r--r--gnu/packages/messaging.scm300
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