ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / ma / maelstrom-clj / package.nix
blob3f6a700e0bdc9ca7087c36f967e60e7ed3bc5c8b
1 { stdenv
2 , lib
3 , fetchurl
4 , makeWrapper
5 , git
6 , coreutils
7 , jdk
8 , gnuplot
9 , graphviz
11 stdenv.mkDerivation rec {
12   pname = "maelstrom";
13   version = "0.2.3";
15   src = fetchurl {
16     url = "https://github.com/jepsen-io/maelstrom/releases/download/v${version}/maelstrom.tar.bz2";
17     hash = "sha256-ISS2qma139Jz9eDxLJvULkqDZeu1vyx9ot4uO0LIVho=";
18   };
20   installPhase = ''
21     runHook preInstall
23     mkdir $out
24     cp -R lib $out/lib
26     # see https://github.com/jepsen-io/maelstrom/blob/b91beef83ee40add17dfe0baf2df272869e144cf/pkg/maelstrom
27     makeWrapper ${jdk}/bin/java $out/bin/maelstrom \
28       --add-flags -Djava.awt.headless=true \
29       --add-flags "-jar $out/lib/maelstrom.jar" \
30       --set PATH ${lib.makeBinPath runtimeDependencies}
32     runHook postInstall
33   '';
35   nativeBuildInputs = [
36     makeWrapper
37   ];
39   runtimeDependencies = [
40     git
41     coreutils
42     jdk
43     gnuplot
44     graphviz
45   ];
47   meta = with lib; {
48     description = "Workbench for writing toy implementations of distributed systems";
49     homepage = "https://github.com/jepsen-io/maelstrom";
50     changelog = "https://github.com/jepsen-io/maelstrom/releases/tag/${version}";
51     mainProgram = "maelstrom";
52     sourceProvenance = [ sourceTypes.binaryBytecode ];
53     license = licenses.epl10;
54     maintainers = [ maintainers.emilioziniades ];
55     platforms = platforms.linux ++ platforms.darwin;
56   };