Building `openjfx11` or `openjfx12` on a machine with many cores can consume huge amounts of RAM. With 24 cores, the memory usage exceeded `25GB` per build for me.
Using `NIX_BUILD_CORES` to reduce the number of parallel tasks doesn't help, because a script invoking `cmake` does not respect `NIX_BUILD_CORES` and passes `-j <number of cores>`.
Setting `NUMBER_OF_PROCESSORS` overrides the automatic core count detection in the script.
https://github.com/search?q=repo%3Aopenjdk%2Fjfx%20NUMBER_OF_PROCESSORS&type=code
Co-authored-by: Fabian Möller <fabianm88@gmail.com>
buildFlags doesn't properly take and need to be manually applied in postBuild,
in some cases.. harfbuzz is also unreliantly thrown.
Mark 1{3,4} as broken.
Since Java 15, ZGC is a default JVM feature and therefore does not need to be
enabled explicitly. The platforms it is available on automatically include it,
rendering the explicit flag obsolete.
Without the change `openjdk` build fails on `staging-next` as:
> installing
> mv: missing destination file operand after '/nix/store/pwgvafi1xwa6l0dygmcyr1sl27dhpy67-openjdk-19.0.2+7/lib/openjdk'
> Try 'mv --help' for more information.
Without the change `openjdk` build fails on `staging-next` as:
> installing
> mv: missing destination file operand after '/nix/store/pwgvafi1xwa6l0dygmcyr1sl27dhpy67-openjdk-19.0.2+7/lib/openjdk'
> Try 'mv --help' for more information.
Without the change `openjdk` build fails on `staging-next` as:
> installing
> mv: missing destination file operand after '/nix/store/pwgvafi1xwa6l0dygmcyr1sl27dhpy67-openjdk-19.0.2+7/lib/openjdk'
> Try 'mv --help' for more information.
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper
this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
JavaFX is an optional component of Java since version 11, not used by
most applications and also a source of many security issues (i.e.: it
bundles both media codecs and WebKit). Also, it is only available in
some platforms.
So this commit will disable JavaFX by default, that will allow us to
reduce the closure size significantly and reduce the attack surface of
Java applications for most users. Derivations that needs it can always
override the parameter themselves.
JavaFX is an optional component of Java since version 11, not used by
most applications and also a source of many security issues (i.e.: it
bundles both media codecs and WebKit). Also, it is only available in
some platforms.
So this commit will disable JavaFX by default, that will allow us to
reduce the closure size significantly and reduce the attack surface of
Java applications for most users. Derivations that needs it can always
override the parameter themselves.