-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
jdk: point attributes without version suffix to latest #89731
Conversation
I wonder if it's smart to default jdk to 14. I suspect that several java depended packages will break. Maybe it would make sense to introduce some kind of lts (java 11) and legacy (java 8) aliases. |
The current plan is to do something similar to what was done at #89264 :
The goal of part (2) is to make ofborg label the PR as With ffmeg it was a
The point is that whatever is called |
I agree it'd be great to have I also agree that this is the right approach, to just do the rename and make sure it doesn't cause any rebuilds. Then we can gradually replace all the resulting Sadly I don't have much time right now to help with this effort, but if that changes I'll jump in as I can. |
For too long `jdk` was pointing to the legacy, unmaintained openjdk8 and too many apps are using it just because it works.
Thanks 💚 @gebner . |
I wanted to do this as well because of https://discourse.nixos.org/t/remove-hardcoded-dependency-of-sbt-on-jdk8/9053 I've rebased this PR to master and evaluation almost passes. Many packages fail to evaluate because |
Now I remember why I stopped working on this - What bothered me even more then the attributes' names was that later jdk versions here in Nixpkgs weren't split packages. Still the work you are putting is absolutely valuable. |
IMO, having the versioned package as an argument in the derivation really is a step backwards. It makes overriding much less intuitive. JREs are generally backwards compatible, so if you want a newer version, you have to write strange thing like:
as oposed to
Or if you want a newer CUDA version for some machine learning library (if we'd use the same pattern as here):
So, to override any Java derivation, one would first need to read it to discover what jdk version is used. What is even worse, if e.g. the default version is changed from |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/package-version-arguments-vs-generic-package-arguments/9071/1 |
Discourse is probably a better place to discuss this, so opened a Discourse topic. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/remove-hardcoded-dependency-of-sbt-on-jdk8/9053/5 |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/retirement-of-old-openjdk-releases/9929/8 |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/package-version-arguments-vs-generic-package-arguments/9071/8 |
Clojure officially only supports Java LTS releases. Related to NixOS#89731. As discussed in https://discourse.nixos.org/t/package-version-arguments-vs-generic-package-arguments/9071 seems that the preferred way to set the jdk version is on `all-packages.nix`
* update two explicit references to jdk14 to just jdk, which no longer points at jdk8 after NixOS#89731. * patch an explicit -XX:+UseConcMarkSweepGC to -XX:UseG1GC, as the former now throws an error (after having been deprecated since jdk 9)
Most of them are: * separate packages for different openmodelica components, * qt4 -> qt5, * patches to instruct the OMEdit wrapper with stdenv executables location, * adoption of NixOS#89731 and NixOS#109595, * openblas -> blas, lapack according to NixOS#83888, * parallel building, * getting rid of spurious build phases, * correct the license, * cross-compilation, * forcing compiler to clang++ according to OM build recommendations, * drop of pangox_compat according to NixOS#75909 and NixOS#76412, * better dependencies, and more.
Co-authored-by: Jaakko Luttinen <jaakko.luttinen@iki.fi> Most of changes are: * separate packages for different openmodelica components, * qt4 -> qt5, * patches to instruct the OMEdit wrapper with stdenv executables location, * adoption of NixOS#89731 and NixOS#109595, * openblas -> blas, lapack according to NixOS#83888, * parallel building, * getting rid of spurious build phases, * correct the license, * cross-compilation, * forcing compiler to clang++ according to OM build recommendations, * drop of pangox_compat according to NixOS#75909 and NixOS#76412, * better dependencies, and more.
For too long
jdk
was pointing to the legacy, unmaintainedopenjdk8
and too many apps are using it just because it works. This PR aims at making all apps that have jdk in their inputs to use jdk8 explicitly. The end goal is to get from ofborg the "0:rebuild-linux" label, that's why it's still a draft.Motivation for this change
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)