{ stdenv, fetchurl, makeWrapper, jre, utillinux, getopt }: with stdenv.lib; stdenv.mkDerivation rec { version = "2.3.1"; name = "elasticsearch-${version}"; src = fetchurl { url = "https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/${version}/${name}.tar.gz"; sha256 = "1fqf24bv4jfxai507jh91zm94dp1j8kmygljvpy7414f0drjw2gh"; }; patches = [ ./es-home-2.x.patch ]; buildInputs = [ makeWrapper jre ] ++ (if (!stdenv.isDarwin) then [utillinux] else [getopt]); installPhase = '' mkdir -p $out cp -R bin config lib $out # don't want to have binary with name plugin mv $out/bin/plugin $out/bin/elasticsearch-plugin wrapProgram $out/bin/elasticsearch ${if (!stdenv.isDarwin) then ''--prefix PATH : "${utillinux}/bin/"'' else ''--prefix PATH : "${getopt}/bin"''} \ --set JAVA_HOME "${jre}" wrapProgram $out/bin/elasticsearch-plugin --set JAVA_HOME "${jre}" ''; meta = { description = "Open Source, Distributed, RESTful Search Engine"; license = licenses.asl20; platforms = platforms.unix; maintainers = [ maintainers.offline maintainers.markWot ]; }; }