Hello fellow java package maintainers!
We are planning to bump the JDK from java-11-openjdk to java-17-openjdk for f36. Please
see
https://fedoraproject.org/wiki/Changes/Java17
Short Story:
* if you have some java package, be aware that we are bumping JDK in rawhide
* Ensure your package builds and runs fine with java-17-openjdk (see the
https://copr.fedorainfracloud.org/coprs/jvanek/java17/builds/ )
* there is special tooling ready for this, before mass rebuild is launched
** See
https://fedoraproject.org/wiki/Changes/Java17#copr_preliminary_rebuild
* If you do not want Fedora rotten with java-11-openjdk for ever, continue reading
Long Story:
We ran a preliminary mass rebuild of javastack in copr repo
https://copr.fedorainfracloud.org/coprs/jvanek/java17/builds/ (select "all"
instead of "25" at the bottom), on packages requiring java,javac, java-devel,
maven-local, ant, ivy &
comp. for build. You can see, the result was quite :
497 total; attempted to rebuild
107 failed; from those 75 are trivial failures (but if you fix it, there is no guarantee
real troubles are not hidden behind that)
390 succeeded
2 not even srpm rebuilt - orphan? dead? (but orpahns and dead ones should be already
excluded)
I would kindly ask you to search yourself in this list:
https://github.com/judovana/FedoraSystemJdkBump/blob/main/scritps/fillCop...
If you are here, please check status of your package in
https://github.com/judovana/FedoraSystemJdkBump/blob/main/scritps/spammer...
(pain text of
https://copr.fedorainfracloud.org/coprs/jvanek/java17/builds/).
* If all your packages are "succeeded", congratulations nothing to do, and
just keep en eye on JDK bump
* If there is "failed" but contains "- -" then even srpm built
failes. If you wish to resurrect it, please ensure it runs against java-17-openjdk (see
lower)
* If there is "failed" but failed in "seconds", then those packages
failed so quickly, that the build was in initial phases. That usually mean that you build
with source/target/release lower then 1.7. java-17-openjdk supports 1.7 and up.
We recommend to bump the source/target to 1.8, to allow existence of compact 1.8 packages
alongside main javastack. See
https://fedoraproject.org/wiki/Changes/Java17#Wrong_source.2Ftarget_version. Don't
forget to upstream the patch, or
maybe it is enough to update to more fresh upstream release which supports
java-17-openjdk? it may happen, that after the fix, your build will fail in more terrible
way (see below)
* If there is "failed", and its none of above, then your package simply
failed. Very often the scary error may be fixed by bump to latest upstream version.
java-17-openjdk is out shortly, but changes against java-11-openjdk are minimal,
and upstreams keep an track. Please, try to fix the package. Don't hesitate to ask on
devel(a)fedoraproject.org or java-devel(a)fedoraproject.org or directly to me
jvanek(a)redhat.com. If you fix the fail, feel free to share your fix, it may help
others.
We are trying to gather the most common issues at
https://fedoraproject.org/wiki/Changes/Java17#common_issues_packagers_can...
. Feel free to enhance the page, or write us your case (possibly both with solution and
without) so we can add it here.
If your package is missing, and you wish it here, I will gladly add it! Just let me know
- jvanek(a)redhat.com
Debugging Your failures.
The copr repo we maintain, contains builds of java-17-openjdk as system JDK,
javapackages-tools, maven & comp. honoring that, and java-11-openjdk as non system
JDK. Also it contains successfully rebuilt packages. You can directly use this
copr repo in several ways.
* first glance on error. On
https://copr.fedorainfracloud.org/coprs/jvanek/java17/builds/ find your build (select
"all" instead of "25" at the bottom),
** Click its number, select chroot (currently fedora-rawhide-x86_64 ) and check the
logs. Main log is build.log.gz.
* anything you push to rawhide, will automatically rebuild here in fedora-rawhide-x86_64
chroot.
** It is the best approach. If you can fix your package in rawhide directly, without
breaking the rawhide too much, go for it
** If yo need to experiment, I have a mock config for you (generated from copr-cli
mock-config jvanek/java17 fedora-rawhide-x86_64) which you can copy to your /etc/mock and
use -
https://github.com/judovana/FedoraSystemJdkBump/blob/main/scritps/spammer...
. Eg:
# as root, globally
sudo wget
https://raw.githubusercontent.com/judovana/FedoraSystemJdkBump/main/scrit...
-O /etc/mock/jvanek-java17-fedora-rawhide-x86_64.cfg
# or as user, locally (after creating ~/.config/mock/)
wget
https://raw.githubusercontent.com/judovana/FedoraSystemJdkBump/main/scrit...
-O ~/.config/mock/jvanek-java17-fedora-rawhide-x86_64.cfg
# change spec, bump sources, apply patches
fedpkg srpm
mock -r jvanek-java17-fedora-rawhide-x86_64 *.src.rpm
Or any other packaging workflow you use, and you can use against the copr repo.
Thank you very much for your help, there are 107 failures, and 270 java packagers, but
only 2 active members of java sig. Without your help, the JDK bump will be very hard.
Thank You!
J.