Subject: [PATCH 1/2] gnu: Add rabbitmq.

From: Christopher Baines <[email-masked]>
Date: Sun, 20 May 2018 21:39:57 +0100

* gnu/packages/rabbitmq.scm: New file.
* gnu/local.mk: Add gnu/packages/rabbitmq.scm.
---
 gnu/local.mk              |  1 +
 gnu/packages/rabbitmq.scm | 90 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+)
 create mode 100644 gnu/packages/rabbitmq.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index fbdb30989..22aad6d7e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -359,6 +359,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/toys.scm				\
   %D%/packages/tryton.scm			\
   %D%/packages/qt.scm				\
+  %D%/packages/rabbitmq.scm			\
   %D%/packages/ragel.scm			\
   %D%/packages/rails.scm			\
   %D%/packages/ratpoison.scm			\
diff --git a/gnu/packages/rabbitmq.scm b/gnu/packages/rabbitmq.scm
new file mode 100644
index 000000000..d453dfe10
--- /dev/null
+++ b/gnu/packages/rabbitmq.scm
@@ -0,0 +1,90 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Christopher Baines <[email-masked]>
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages rabbitmq)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages rsync)
+  #:use-module (gnu packages erlang)
+  #:use-module (gnu packages elixir)
+  #:use-module (gnu packages python))
+
+(define-public rabbitmq
+  (package
+    (name "rabbitmq")
+    (version "3.7.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/rabbitmq/rabbitmq-server/releases/download/v"
+                    version
+                    "/rabbitmq-server-" version ".tar.xz"))
+              (file-name (string-append name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0y3c3kmj2jnfic4rzfn5x0raigkgscxv94fn3ijnnk535b209iw8"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "deps/rabbit_common/src/vm_memory_monitor.erl"
+               (("getconf") (string-append (assoc-ref inputs "glibc")
+                                           "/bin/getconf")))
+             #t))
+         (delete 'configure)
+         (delete 'check)
+         (add-after 'install 'patch-scripts
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (substitute* (string-append out "/sbin/rabbitmq-server")
+                 (("uname") (which "uname"))
+                 (("mkdir") (which "mkdir"))
+                 (("cp ") (string-append (which "cp") " "))
+                 (("\\$\\{ERL\\_DIR\\}") (string-append (dirname (which "erl"))
+                                                        "/"))
+                 (("dirname") (which "dirname")))
+               (substitute* (string-append out "/sbin/rabbitmq-env")
+                 (("dirname") (which "dirname"))
+                 (("\\$\\{ERL\\_DIR\\}") (string-append (dirname (which "erl"))
+                                                        "/"))
+                 (("\\| tr") (string-append "| " (which "tr")))
+                 (("basename") (which "basename"))
+                 (("sed") (which "sed")))
+               #t))))
+       #:make-flags
+       (list (string-append "RMQ_ERLAPP_DIR=" (assoc-ref %outputs "out")))))
+    (native-inputs
+     `(("erlang" ,erlang)
+       ("elixir" ,elixir)
+       ("python" ,python-wrapper)
+       ("libxslt" ,libxslt)
+       ("rsync" ,rsync)
+       ("glibc",glibc)
+       ("zip" ,zip)))
+    (home-page "http://www.rabbitmq.com/")
+    (synopsis "TODO")
+    (description "TODO")
+    (license "TODO")))
+
-- 
2.17.0