mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 12:29:02 +02:00
exhibitor: convert to mavenfod
This commit is contained in:
parent
50847470ba
commit
2118d0b250
|
@ -1,41 +1,36 @@
|
||||||
{ fetchFromGitHub, maven, jdk, makeWrapper, lib, stdenv, ... }:
|
{ lib, javaPackages, fetchFromGitHub, maven, makeWrapper, jdk }:
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
|
javaPackages.mavenfod rec {
|
||||||
pname = "exhibitor";
|
pname = "exhibitor";
|
||||||
version = "1.5.6";
|
version = "1.5.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "soabase";
|
owner = "soabase";
|
||||||
repo = "exhibitor";
|
repo = "exhibitor";
|
||||||
sha256 = "07vikhkldxy51jbpy3jgva6wz75jksch6bjd6dqkagfgqd6baw45";
|
rev = "v${version}";
|
||||||
rev = "5fcdb411d06e8638c2380f7acb72a8a6909739cd";
|
hash = "sha256-PZRT2C4CfYCbaHE9tEnwpyzEsJ6ZaS//zUDweR4YKrI=";
|
||||||
};
|
|
||||||
mavenDependenciesSha256 = "sha256-oGd8PFF1Z9BElNsgqbC/llQm8j/T+T01VwvSw3tTU0E=";
|
|
||||||
# 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
|
# 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
|
# 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
|
# (given the state of Maven support in Nix). We're not actually building any java
|
||||||
# source here.
|
# source here.
|
||||||
pomFileDir = "exhibitor-standalone/src/main/resources/buildscripts/standalone/maven";
|
sourceRoot = "source/exhibitor-standalone/src/main/resources/buildscripts/standalone/maven";
|
||||||
|
mvnFetchExtraArgs = {
|
||||||
|
inherit sourceRoot;
|
||||||
|
};
|
||||||
|
mvnHash = "sha256-xhLnjtaF5eFUuBo5aHdp0j2sPfxYhFEZYJwVQlkqARs=";
|
||||||
|
|
||||||
nativeBuildInputs = [ maven makeWrapper ];
|
nativeBuildInputs = [ maven makeWrapper ];
|
||||||
buildPhase = ''
|
|
||||||
cd ${pomFileDir}
|
installPhase = ''
|
||||||
mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
|
mkdir -p $out/bin
|
||||||
|
mkdir -p $out/share/java
|
||||||
|
filename=$(basename target/*.jar)
|
||||||
|
mv target/$filename $out/share/java/
|
||||||
|
makeWrapper ${jdk}/bin/java $out/bin/startExhibitor.sh --add-flags "-jar $out/share/java/$filename" --suffix PATH : ${lib.makeBinPath [ jdk ]}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "ZooKeeper co-process for instance monitoring, backup/recovery, cleanup and visualization";
|
description = "ZooKeeper co-process for instance monitoring, backup/recovery, cleanup and visualization";
|
||||||
homepage = "https://github.com/soabase/exhibitor";
|
homepage = "https://github.com/soabase/exhibitor";
|
||||||
|
@ -44,12 +39,4 @@ stdenv.mkDerivation rec {
|
||||||
mainProgram = "startExhibitor.sh";
|
mainProgram = "startExhibitor.sh";
|
||||||
platforms = platforms.unix;
|
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 : ${lib.makeBinPath [ jdk ]}
|
|
||||||
'';
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue