~ruther/guix-local

1ae27aac4cec9c16c878dbce85eef9e00c8e4240 — Ricardo Wurmus 9 years ago d62dc2a
gnu: Add prosody.

* gnu/packages/messaging.scm (prosody): New variable.
1 files changed, 76 insertions(+), 2 deletions(-)

M gnu/packages/messaging.scm
M gnu/packages/messaging.scm => gnu/packages/messaging.scm +76 -2
@@ 3,7 3,7 @@
;;; 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>
;;;
;;; This file is part of GNU Guix.


@@ 24,7 24,7 @@
(define-module (gnu packages messaging)
  #:use-module ((guix licenses)
                #:select (gpl3+ gpl2+ gpl2 lgpl2.1 lgpl2.0+ bsd-2 non-copyleft
                          asl2.0))
                          asl2.0 x11))
  #:use-module (guix utils)
  #:use-module (guix packages)
  #:use-module (guix download)


@@ 45,6 45,7 @@
  #:use-module (gnu packages xdisorg)
  #:use-module (gnu packages libcanberra)
  #: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)


@@ 492,4 493,77 @@ transformation; audio and video conferences; file transfer; TLS, GPG and
end-to-end encryption support; XML console.")
    (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
       #: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 x11)))

;;; messaging.scm ends here