mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-22 05:19:00 +02:00
elixir: make mix interpreter path absolute
Remove the implicit dependency on `elixir` being somewhere in `PATH`. Before: ``` $ nix build '.#elixir_1_15' $ ./result/bin/mix --version env: ‘elixir’: No such file or directory ``` After: ``` $ nix build '.#elixir_1_15' $ ./result/bin/mix --version Erlang/OTP 25 [erts-13.2.2.2] [source] [64-bit] [smp:10:10] [ds:10:10:10] [async-threads:1] [jit] Mix 1.15.2 (compiled with Erlang/OTP 25) ``` This was caused by the shebang interpreter directive being set to `${coreutils}/bin/env elixir`, whereas now the `elixir` part is replaced with the full path to the interpreter. We can't get rid of the `${coreutils}/bin/env` part, because without it all scripts are interpreted as shell scripts.
This commit is contained in:
parent
e17114622d
commit
c118bb4f9a
|
@ -50,14 +50,14 @@ stdenv.mkDerivation ({
|
||||||
# to PATH so the scripts can run without problems.
|
# to PATH so the scripts can run without problems.
|
||||||
|
|
||||||
for f in $out/bin/*; do
|
for f in $out/bin/*; do
|
||||||
b=$(basename $f)
|
b=$(basename $f)
|
||||||
if [ "$b" = mix ]; then continue; fi
|
if [ "$b" = mix ]; then continue; fi
|
||||||
wrapProgram $f \
|
wrapProgram $f \
|
||||||
--prefix PATH ":" "${lib.makeBinPath [ erlang coreutils curl bash ]}"
|
--prefix PATH ":" "${lib.makeBinPath [ erlang coreutils curl bash ]}"
|
||||||
done
|
done
|
||||||
|
|
||||||
substituteInPlace $out/bin/mix \
|
substituteInPlace $out/bin/mix \
|
||||||
--replace "/usr/bin/env elixir" "${coreutils}/bin/env elixir"
|
--replace "/usr/bin/env elixir" "${coreutils}/bin/env $out/bin/elixir"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
pos = builtins.unsafeGetAttrPos "sha256" args;
|
pos = builtins.unsafeGetAttrPos "sha256" args;
|
||||||
|
|
Loading…
Reference in a new issue