jruby: Fix JAVA_HOME to support proper jmod support

This is investigation I've done in support of
https://github.com/jruby/jruby/issues/6608 where I noticed some funky
issues with JRuby and module loading.

Looks like that JRuby expects JAVA_HOME to have a directory called
`jmod`, which is consistent with the Java Module system.

Unfortunately, the top level directory for the `jre` or `jdk` /nix/store
entry is not a valid JAVA_HOME since it is missing that directory.

Instead it's set within `lib/openjdk`, and there is a passthru variable
set accordingly.

This fixes JRuby and follows many other derivations.
A simple search in the code-base shows that there are many other
packages that suffer this same bug.
This commit is contained in:
Farid Zakaria 2021-03-11 15:59:12 -08:00
parent 0867f62742
commit bfcd4b0e2a

View File

@ -23,7 +23,7 @@ jruby = stdenv.mkDerivation rec {
for i in $out/bin/jruby{,.bash}; do
wrapProgram $i \
--set JAVA_HOME ${jre}
--set JAVA_HOME ${jre.home}
done
ln -s $out/bin/jruby $out/bin/ruby