jruby: fix shebang for binaries in JRuby

There are a variety of additional scripts that are included with the
JRuby installation that use JRuby itself.

For instance the `bin/gem` had the following contents:

```bash
❯ cat /nix/store/kglkqf56ii83yl6yrgcaj5r3s9m2fzr0-jruby-9.2.13.0/bin/gem

load File.join(File.dirname(__FILE__), 'jgem')
```

This is clearly wrong. Patchshebangs was not picking up the fix as part
of stdenv because the patch is not a build input but the final output
itself.

We have to rely on substituteInPlace so that we get the correct version.

```bash
❯ cat /nix/store/k4fnrn0dcsh2wzw81217r0ywsspb468f-jruby-9.2.13.0/bin/gem

```
This commit is contained in:
Farid Zakaria 2020-09-24 16:33:43 -07:00
parent 638c8cb2d5
commit 8da7bd63ca

View File

@ -40,6 +40,10 @@ jruby = stdenv.mkDerivation rec {
EOF
'';
postFixup = ''
PATH=$out/bin:$PATH patchShebangs $out/bin
'';
passthru = rec {
rubyEngine = "jruby";
gemPath = "lib/${rubyEngine}/gems/${rubyVersion.libDir}";