-
-
Notifications
You must be signed in to change notification settings - Fork 80
Description
Temurin SDKs as non-system JDKs in Fedora
The goal is to get rid of redundant maintenance of legacy JDKs in Fedora. And to keep legacy jdk support via temurin repositories https://adoptium.net/installation/linux/
This may be prequel to doing similar in RHELs
Prequel
JDK8 is slowly but surely disappearing. On enforced bytecode compatibility level, jdk21 - current system jdk in fedora - is the last one which supports jdk8 bytecode level. For jdk22 minimal bytecode level corresponds to jdk9. Next system jdk - 25 will be bytecode level compatible with jdk12. In addition, jdk11 and 17, do not carry the burden of backward compatibility as jdk8 does, and we can happily claim jdk21 would do.
All distribution people around OpenJDK have slowly moved towards the current reference implementation - Eclipse Adoptium Temurin JDK. Eclipse foundation is providing ecosystem for all possible distributions of JDK, from rpms and deb packages, over portable static tarballs to containers. As it is, it is win win for both users and developers. That includes also support tools like javaws or mission control (openjfx?)
Since jdk21, there is no room for any package to depend on jdk8, 11 and in year or so also on 17.
Thus we would like to continue to maintain future LTS - all STS java packages in rolling java-latest-openjdk, system JDK, and for short transition time previous STS (now 17), but we would lijke to drop all older jdks. Where there should be no lost for users, for developers, a comfortable dnf install java* is quite cool feature, and thus we would like to support this via eclipse temurin rpm repositories as an counter weight to SDKMAN and similar tools.
Known showstoppers
- Versionless provides
- Each temurin RPM now has so-called version-less provides. Eg java or java-devel. In fedora and rhel, versionless provides are allowed only for system jdk. The jdk against which java-stack is built, and run, unless the maintainer or user says differently. JAVA_HOME should be always honoured (via javapackages-support). Alternatives are not honoured (javapackages-tools intentionally walk around alternatives setup)
- Proposed solution is to create a metapackage which will be providing the version-less provides. Such a package will not be shipped to repos offered to Fedora, but will be offered in current Temurin repos.
- Eclipse Adoptium GB must agree with this apriory (possible work on their side, review headless subpackages, mera apckages, repo withtou version full metapackages…)
Known regressions
- Headless subpackage is missing
- The headless subpackage do not depend on X stack, and are missing some jdk’s X libraries.
- Its functionality is verified by test-headless-components test
- Its creation in Temurin rpms should be easy.
- **Disadvantage - **the filtering of files is manual work in spec files
- It is not a goal to create whole standalone (and TCKed) release of Temurins. To split final repacked JDK in specfile is the goal. When all the rpms are installed, TCK are passing (because repacked binary passed) and thus legal issues should be gone.
- Architecture support
6. Recently was added risc5 support to jdk11+ (on spec level)
7. I’m not sure if Adotpium can cover all architectures.
* But I think it don't matter
Proposed offering to fedora 41 system wide change
We will get rid of all non-system fedora/rpms/java-xy-openjdk once they stop being system JDK. As a start, we will discontinue JDKs 8 and 11 as follows:
- We will simply orphan them, anybody can pick them up
- Kicks - as jdk 6 and 7 proved, it is impossible for single maintainer, even if deep in jdk development, seriously maintain OpenJDK packages
- They have to run TCK, otherwise there may come troubles
- We will kill them, the rpms will make themselves obsolete by dummy readme or similar, and we will update fedora java page by “install temurin by adding this repo”
- The rpms will replace themselves with repository file, and there will be proper obsolescence, so Temurin JDK(s) of proper versions will get transparently installed
This decision will flow up from the fedora-devel list and from fesco decision. If both will be strongly for the opinion (1), and indeed a strong maintainer would step in, and will prove themselves, then then we can add Temurins as secondary JDKs. This will be part of the proposal.
(3) is the preferred way to go, but we are not yet there.
To install 3rd party repository have exact rules:
- Nothing is allowed to depend on it
- Not the one who is proposing the change, but FESCO will contact the owners of the 3rd party repos
Metadata
Metadata
Assignees
Labels
Type
Projects
Status