bazel: Fix python stub template

The shebang in the python stub template was incorrectly patched to
```
<store-path>/bin/env python
```
instead of
```
<store-path>/bin/python
```

The reason was that `patchShebangs` was called with `--replace` which is
an unknown argument.
```
patching script interpreter paths in src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt --replace /usr/bin/env python /nix/store/w7gsq8v86hni4ynaqgwwlnlny115ylng-python3-3.7.4/bin/python
find: unknown predicate `--replace'
```

Using `substituteInPlace` instead resolves that issue.

The wrong shebang caused failures of `py_binary` targets due to `python`
not being in `PATH` in certain circumstances.
This commit is contained in:
Andreas Herrmann 2019-08-16 14:10:27 +02:00 committed by Profpatsch
parent 332a46b125
commit f426173e30

View file

@ -323,7 +323,7 @@ stdenv.mkDerivation rec {
genericPatches = ''
# Substitute python's stub shebang to plain python path. (see TODO add pr URL)
# See also `postFixup` where python is added to $out/nix-support
patchShebangs src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt \
substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt \
--replace "#!/usr/bin/env python" "#!${python3}/bin/python"
# md5sum is part of coreutils