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
Remove Java 7 and Java 9, bootstrap JDK 10 via JDK 10 #38097
Conversation
./bin/java now apparently requires zlib.so, otherwise the whole thing is busted. This is even required in the minimal configuration. Unfortunately this impiles a rebuild of *all* OpenJDK packages and their downstream dependencies. Signed-off-by: Austin Seipp <aseipp@pobox.com>
This is now required to build JDK 10 with JDK 10, so we're a bit stuck on this one. Signed-off-by: Austin Seipp <aseipp@pobox.com>
JDK 10 can only be bootstrapped by version 9 or 10, but we want to now get rid of version 9. Signed-off-by: Austin Seipp <aseipp@pobox.com>
Java 9 is EOL, and we no longer need it with JDK 10 builds bootstrapped via JDK 10. Signed-off-by: Austin Seipp <aseipp@pobox.com>
This is the only package that still needs ECJ and has no dependencies. It's ancient and unmaintained and should just be removed. Signed-off-by: Austin Seipp <aseipp@pobox.com>
Nobody has stepped up to keep maintaining this and it's several years old, and the last strict Java 7 dependency, as it won't work with newer versions without an update. Signed-off-by: Austin Seipp <aseipp@pobox.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
JDK 7 was technically EOL'd a while ago, although RedHat etc are still doing updates I believe. However, JDK 8 is the default in the tree and really used everywhere, and JDK 7 isn't seeing many updates by current maintainers, so dropping it seems appropriate. Signed-off-by: Austin Seipp <aseipp@pobox.com>
Success on aarch64-linux (full log) Attempted: diffoscope The following builds were skipped because they don't evaluate on aarch64-linux: openjdk10 Partial log (click to expand)
|
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Success on aarch64-linux (full log) Attempted: diffoscope The following builds were skipped because they don't evaluate on aarch64-linux: openjdk, openjdk10, openjdk8 Partial log (click to expand)
|
Success on x86_64-linux (full log) Attempted: diffoscope, openjdk10 Partial log (click to expand)
|
Failure on x86_64-linux (full log) Attempted: diffoscope, openjdk, openjdk10, openjdk8 Partial log (click to expand)
|
@thoughtpolice Any idea about the build failure here? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall LGTM. Will upload tarballs when this is otherwise completely ready, would like to understand the build failure and give some time for people to object to the removals first.
Apparently the doc building failed or something? But I have no clue how!
The only thing I can think of is if b2b98b8 somehow has changed something, but I can't really imagine how, since otherwise I don't think any JDK 8 rebuild would have happened at all! Maybe it had an OOM? |
@GrahamcOfBorg build openjdk8 |
No attempt on aarch64-linux (full log) The following builds were skipped because they don't evaluate on aarch64-linux: openjdk8 Partial log (click to expand)
|
Success on x86_64-linux (full log) Attempted: openjdk8 Partial log (click to expand)
|
Success on x86_64-darwin (full log) Attempted: openjdk8 Partial log (click to expand)
|
@thoughtpolice OK, looks good to me. Any more changes pending besides the URL update? |
I suppose at least the removals are suitable for 18.03 before we announce it – but you surely know the java stuff better than me... |
I agree, probably best to backport these removals to 18.03 as well. |
Yes, I think we should backport this; I can do that. @shlevy I think this is otherwise ready to go if you're willing to upload the tarballs. I can adjust the URLs and merge. |
👍 Java 9, the one nobody ever used xD |
@thoughtpolice |
I rebased this into I'll be porting these to 18.03 soon. |
Many thanks to @shlevy for doing this migration of the old and new tarballs. Closes NixOS#38097. Signed-off-by: Austin Seipp <aseipp@pobox.com>
@thoughtpolice: you haven't got to look at this for 18.03, right? (I don't know the Java ecosystem.) |
Sorry I missed this @vcunat -- yes, I thought I had pushed these changes a while back, but had not it seems! I'll look into fixing this... |
Motivation for this change
This bootstraps the JDK 10 builds using a pre-existing JDK 10 binary bootstrap tarball, created using
pkgs/development/compilers/make-bootstrap.nix
. The bootstrapping images for i686 and x86_64 are both compiled to a fixed point: I compiled the original images with JDK 9, producing a minimal JDK 10 bootstrap image, and used it to build a minimal JDK 10 again, and packaged that as the final image. So this is JDK10 compiled by JDK10.With this in place, we can remove the constraint on Java9 as the JDK 10 bootstrap method, and proceed to eliminate it.
I also took the liberty to take this time to remove some ancient packages that were still relying on JDK 7, and eliminate that too. Technically I believe Red Hat is still supporting it (it was EOL'd years ago otherwise by Oracle), but honestly I see little reason to keep building it; less packages for Hydra are always better.
To do this however, I had to eliminate some older packages nobody is maintaining anymore it seems: ECJ (the Eclipse Java Compiler), GNU classpath, and an ancient version of
processing
2.0. I hope this is OK; I have no need for these packages and nobody seems to have touched them in years, really, other than tree-wide changes. So I think they should go, too.With this, Nixpkgs only offers JDK 8 and JDK 10, which is a much easier support window (especially for my upcoming plans, such as the Shenandoah previews).
Things done
build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)tarballs.nixos.org
and off Dropbox and my personal server; @shlevy will handle this.