diff options
author | Joel Thompson <joel@jthompson.io> | 2017-07-11 10:56:58 -0400 |
---|---|---|
committer | Joel Thompson <joel@jthompson.io> | 2017-07-21 09:45:37 -0400 |
commit | 4b42fc4b8a969dc4621c76d556309021591a17a2 (patch) | |
tree | d917e44b3f47bc6197b689157a97b129f80b545f /pkgs/servers | |
parent | 91dc81156647c5d28e77dfd20d5c2f4b7253c742 (diff) | |
download | nixlib-4b42fc4b8a969dc4621c76d556309021591a17a2.tar nixlib-4b42fc4b8a969dc4621c76d556309021591a17a2.tar.gz nixlib-4b42fc4b8a969dc4621c76d556309021591a17a2.tar.bz2 nixlib-4b42fc4b8a969dc4621c76d556309021591a17a2.tar.lz nixlib-4b42fc4b8a969dc4621c76d556309021591a17a2.tar.xz nixlib-4b42fc4b8a969dc4621c76d556309021591a17a2.tar.zst nixlib-4b42fc4b8a969dc4621c76d556309021591a17a2.zip |
exhibitor: init at 3.4.9
Initial Exhibitor nix package and nixos module for Netflix's Exhibitor, which is a manager for Apache Zookeeper.
Diffstat (limited to 'pkgs/servers')
-rw-r--r-- | pkgs/servers/exhibitor/default.nix | 54 | ||||
-rw-r--r-- | pkgs/servers/zookeeper/default.nix | 7 |
2 files changed, 59 insertions, 2 deletions
diff --git a/pkgs/servers/exhibitor/default.nix b/pkgs/servers/exhibitor/default.nix new file mode 100644 index 000000000000..445f52e360bc --- /dev/null +++ b/pkgs/servers/exhibitor/default.nix @@ -0,0 +1,54 @@ +{ fetchFromGitHub, buildMaven, maven, jdk, makeWrapper, stdenv, ... }: +stdenv.mkDerivation rec { + name = "exhibitor-${version}"; + version = "1.5.6"; + + src = fetchFromGitHub { + owner = "soabase"; + repo = "exhibitor"; + sha256 = "07vikhkldxy51jbpy3jgva6wz75jksch6bjd6dqkagfgqd6baw45"; + rev = "5fcdb411d06e8638c2380f7acb72a8a6909739cd"; + }; + mavenDependenciesSha256 = "00r69n9hwvrn5cbhxklx7w00sjmqvcxs7gvhbm150ggy7bc865qv"; + # This is adapted from https://github.com/volth/nixpkgs/blob/6aa470dfd57cae46758b62010a93c5ff115215d7/pkgs/applications/networking/cluster/hadoop/default.nix#L20-L32 + fetchedMavenDeps = stdenv.mkDerivation { + name = "exhibitor-${version}-maven-deps"; + inherit src nativeBuildInputs; + buildPhase = '' + cd $pomFileDir; + while timeout --kill-after=21m 20m mvn package -Dmaven.repo.local=$out/.m2; [ $? = 124 ]; do + echo "maven hangs while downloading :(" + done + ''; + installPhase = ''find $out/.m2 -type f \! -regex '.+\(pom\|jar\|xml\|sha1\)' -delete''; # delete files with lastModified timestamps inside + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = mavenDependenciesSha256; + }; + + # The purpose of this is to fetch the jar file out of public Maven and use Maven + # to build a monolithic, standalone jar, rather than build everything from source + # (given the state of Maven support in Nix). We're not actually building any java + # source here. + pomFileDir = "exhibitor-standalone/src/main/resources/buildscripts/standalone/maven"; + nativeBuildInputs = [ maven ]; + buildInputs = [ makeWrapper ]; + buildPhase = '' + cd $pomFileDir + mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 + ''; + meta = with stdenv.lib; { + homepage = "https://github.com/soabase/exhibitor"; + description = "ZooKeeper co-process for instance monitoring, backup/recovery, cleanup and visualization"; + license = licenses.asl20; + platforms = platforms.unix; + }; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/java + mv target/$name.jar $out/share/java/ + makeWrapper ${jdk}/bin/java $out/bin/startExhibitor.sh --add-flags "-jar $out/share/java/$name.jar" --suffix PATH : ${stdenv.lib.makeBinPath [ jdk ]} + ''; + +} diff --git a/pkgs/servers/zookeeper/default.nix b/pkgs/servers/zookeeper/default.nix index 16807a6571cd..b3a9ad444849 100644 --- a/pkgs/servers/zookeeper/default.nix +++ b/pkgs/servers/zookeeper/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, jre, makeWrapper, bash }: +{ stdenv, fetchurl, jre, makeWrapper, bash, coreutils }: stdenv.mkDerivation rec { name = "zookeeper-${version}"; @@ -17,12 +17,15 @@ stdenv.mkDerivation rec { mkdir -p $out cp -R conf docs lib ${name}.jar $out mkdir -p $out/bin - cp -R bin/{zkCli,zkCleanup,zkEnv}.sh $out/bin + cp -R bin/{zkCli,zkCleanup,zkEnv,zkServer}.sh $out/bin for i in $out/bin/{zkCli,zkCleanup}.sh; do wrapProgram $i \ --set JAVA_HOME "${jre}" \ --prefix PATH : "${bash}/bin" done + substituteInPlace $out/bin/zkServer.sh \ + --replace /bin/echo ${coreutils}/bin/echo \ + --replace "/usr/bin/env bash" ${bash}/bin/bash chmod -x $out/bin/zkEnv.sh mkdir -p $out/share/zooinspector |