From e1c79ccfe4076fe4ac8d61aaf87565c7582bfd2e Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Thu, 6 Jan 2022 19:47:44 -0300 Subject: [PATCH] clojure-lsp: fix build on macOS Instead of setting the environment variable using Nix, use `preBuild` hook to inject the value `DTLV_LIB_EXTRACT_DIR` on directly to `nativeImageBuildArgs`. This will allow us to use a dynamically value generated with `mktemp -d`. Fix issue #153765. --- pkgs/development/tools/misc/clojure-lsp/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index 5e3c750852df..2e11ad9f8add 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -17,10 +17,14 @@ buildGraalvmNativeImage rec { }; # https://github.com/clojure-lsp/clojure-lsp/blob/2021.11.02-15.24.47/graalvm/native-unix-compile.sh#L18-L27 - DTLV_LIB_EXTRACT_DIR = "/tmp"; + # Needs to be inject on `nativeImageBuildArgs` inside shell environment, + # otherwise we can't expand to the value set in `mktemp -d` call + preBuild = '' + export DTLV_LIB_EXTRACT_DIR="$(mktemp -d)" + nativeImageBuildArgs+=("-H:CLibraryPath=$DTLV_LIB_EXTRACT_DIR") + ''; extraNativeImageBuildArgs = [ - "-H:CLibraryPath=${DTLV_LIB_EXTRACT_DIR}" "--no-fallback" "--native-image-info" ];