git.delta.rocks / jrsonnet / refs/commits / a12d03f794be

difftreelog

source

nix/sjsonnet.nix2.7 KiBsourcehistory
1# This derivation uses released sjsonnet binary, which most users will use2# However, recommended way of using sjsonnet - is using a client-server model,3# for which there is no released binaries: https://github.com/databricks/sjsonnet/issues/514# TODO: Somehow build client-server version of sjsonnet, and use it in benchmarks5{6  stdenv,7  lib,8  fetchurl,9  jdk25_headless,10  makeWrapper,11  autoPatchelfHook,12  zlib,13  openssl,14  java ? jdk25_headless,15}:16let17  version = "0.6.2";18  baseUrl = "https://github.com/databricks/sjsonnet/releases/download/${version}";1920  nativePlatform =21    {22      x86_64-linux = "linux-x86_64";23      aarch64-linux = "linux-arm64";24      aarch64-darwin = "darwin-arm64";25      # Nobody cares about darwin on intel26    }27    .${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");2829  nativeSrc = fetchurl {30    url = "${baseUrl}/sjsonnet-${version}-${nativePlatform}";31    hash =32      {33        x86_64-linux = "sha256-r79Q6SovcPIomDDUYTGIP35/y5t9Xo5Z3ohP7pxsF8I=";34        aarch64-linux = "sha256-LxWR94u1Oncau57Kmtzj2UFEofWGT4+laDTbRDkwv08=";35        aarch64-darwin = "sha256-gNZ6XekMm+ebeD7UFeRfoapXw/90gHk8MoeGD86dzKk=";36      }37      .${stdenv.hostPlatform.system};38  };3940  graalvmSrc = fetchurl {41    url = "${baseUrl}/sjsonnet-graalvm-${version}-${nativePlatform}";42    hash =43      {44        x86_64-linux = "sha256-XNJCnQlwVFySrUevn1nLN/DY8UBGgvCFAitkedLB+yM=";45        aarch64-linux = "sha256-J+C3pmiBEmo8M00IDHp9jznonibXmHVRlhsvQ4apVWw=";46        aarch64-darwin = "sha256-TXNL52sS4NE3GjbOFtgf6aCP268qGKMFaoTwAfJfgGc=";47      }48      .${stdenv.hostPlatform.system};49  };50in51stdenv.mkDerivation {52  pname = "sjsonnet";53  inherit version;5455  src = fetchurl {56    url = "${baseUrl}/sjsonnet-${version}.jar";57    hash = "sha256-jvkrxY48d/UdMGRoB9SxCJU2JJirfhZNyNMSkMrrQ7w=";58  };5960  unpackPhase = "true";61  nativeBuildInputs = [62    makeWrapper63  ]64  ++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];65  buildInputs = [66    java67  ]68  ++ lib.optionals stdenv.hostPlatform.isLinux [69    zlib70    openssl71    stdenv.cc.cc.lib72  ];7374  installPhase = ''75    mkdir -p $out/bin $out/lib76    cp $src $out/lib/sjsonnet.jar77    makeWrapper ${java}/bin/java $out/bin/sjsonnet --add-flags "-Xss100m -XX:+UseStringDeduplication -jar $out/lib/sjsonnet.jar --max-stack 200000"7879    cp ${nativeSrc} $out/bin/sjsonnet-native80    chmod +x $out/bin/sjsonnet-native81    wrapProgram $out/bin/sjsonnet-native --add-flags "--max-stack 200000"8283    cp ${graalvmSrc} $out/bin/sjsonnet-graalvm84    chmod +x $out/bin/sjsonnet-graalvm85    wrapProgram $out/bin/sjsonnet-graalvm --add-flags "--max-stack 200000"86  '';87  separateDebugInfo = false;88}