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

From: Christopher Baines <[email-masked]>
Date: Tue, 13 Mar 2018 19:17:26 +0000

* gnu/packages/databases.scm (elasticsearch-2.4.6, elasticsearch): New
  variables.
---
 gnu/packages/databases.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 87f65404f..661ee3a3e 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -69,6 +69,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages time)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libevent)
@@ -355,6 +356,69 @@ ElasticSearch server")
     (home-page "https://github.com/patientslikeme/es_dump_restore")
     (license license:expat)))
 
+(define-public elasticsearch-2.4.6
+  (package
+   (name "elasticsearch")
+   (version "2.4.6")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-"
+           version ".tar.gz"))
+     (sha256
+      (base32 "0vzw9kpyyyv3f1m5sy9zara6shc7xkgi5xm5qbzvfywijavlnzjz"))))
+   (build-system gnu-build-system)
+   (inputs
+    `(("jre" ,icedtea)
+      ("coreutils" ,coreutils)
+      ("inetutils" ,inetutils)
+      ("util-linux" ,util-linux)
+      ("grep" ,grep)))
+   (arguments
+    `(#:phases
+      (modify-phases %standard-phases
+        (delete 'check)
+        (delete 'configure)
+        (delete 'build)
+        (replace 'install
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (for-each
+               (lambda (dir)
+                 (copy-recursively dir (string-append out "/" dir)
+                                   #:log (%make-void-port "w")))
+               '("bin" "config" "lib" "modules"))
+              (for-each
+               (lambda (dir)
+                 (mkdir (string-append out "/" dir)))
+               '("plugins"))
+              (for-each
+               delete-file
+               (find-files
+                (string-append out "/lib")
+                (lambda (name stat)
+                  (or (string-contains name "freebsd")
+                      (string-contains name "solaris")))))
+              (wrap-program
+                  (string-append out "/bin/elasticsearch")
+                `("PATH" = (,(string-append (assoc-ref inputs "util-linux")
+                                            "/bin")
+                            ,(string-append (assoc-ref inputs "coreutils")
+                                            "/bin")
+                            ,(string-append (assoc-ref inputs "inetutils")
+                                            "/bin")
+                            ,(string-append (assoc-ref inputs "grep")
+                                            "/bin")))
+                `("JAVA_HOME" = (,(assoc-ref inputs "jre"))))
+              #t))))))
+   (home-page "")
+   (synopsis "")
+   (description "")
+   (license "")))
+
+(define-public elasticsearch elasticsearch-2.4.6)
+
 (define-public leveldb
   (package
     (name "leveldb")
-- 
2.16.2