nix-cl: avoid empty path segments in prefixed env variables

This commit is contained in:
Thomas Gerbet
2026-07-25 13:27:09 +02:00
parent 9bb5bf1ea8
commit 6bf6d4c64f

View File

@@ -365,18 +365,36 @@ let
nativeBuildInputs = [ pkgs.makeBinaryWrapper ];
installPhase = ''
mkdir -pv $out/bin
makeWrapper \
${o.pkg}/bin/${o.program} \
$out/bin/${o.program} \
--add-flags "${toString o.flags}" \
--set ASDF "${o.asdfFasl}/asdf.${o.faslExt}" \
--prefix CL_SOURCE_REGISTRY : "$CL_SOURCE_REGISTRY''${CL_SOURCE_REGISTRY:+:}" \
--prefix ASDF_OUTPUT_TRANSLATIONS : "$(echo $CL_SOURCE_REGISTRY | sed s,//:,::,g):" \
--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH" \
--prefix DYLD_LIBRARY_PATH : "$DYLD_LIBRARY_PATH" \
--prefix CLASSPATH : "$CLASSPATH" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix PATH : "${makeBinPath (o.propagatedBuildInputs or [ ])}"
wrapperArgs=(
"${o.pkg}/bin/${o.program}"
"$out/bin/${o.program}"
--add-flags "${toString o.flags}"
--set ASDF "${o.asdfFasl}/asdf.${o.faslExt}"
)
if [ -n "$CL_SOURCE_REGISTRY" ]; then
wrapperArgs+=(
--prefix CL_SOURCE_REGISTRY : "$CL_SOURCE_REGISTRY:"
--prefix ASDF_OUTPUT_TRANSLATIONS : "$(echo $CL_SOURCE_REGISTRY | sed s,//:,::,g):"
)
fi
if [ -n "$LD_LIBRARY_PATH" ]; then
wrapperArgs+=(--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH")
fi
if [ -n "$DYLD_LIBRARY_PATH" ]; then
wrapperArgs+=(--prefix DYLD_LIBRARY_PATH : "$DYLD_LIBRARY_PATH")
fi
if [ -n "$CLASSPATH" ]; then
wrapperArgs+=(--prefix CLASSPATH : "$CLASSPATH")
fi
if [ -n "$GI_TYPELIB_PATH" ]; then
wrapperArgs+=(--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH")
fi
${lib.optionalString ((o.propagatedBuildInputs or [ ]) != [ ]) ''
wrapperArgs+=(--prefix PATH : "${makeBinPath (o.propagatedBuildInputs or [ ])}")
''}
makeWrapper "''${wrapperArgs[@]}"
'';
});