Instructions on applying Switch of default OpenJDK to 17 for Z-stream branches.
Steps need to be done in the order in this document.
Most of the time applying changes from the branch rhel-9.4.0 is needed but with different references to Jira issues and release bumps.
Some changes are split in a different manner than as in the branch rhel-9.4.0.
For most packages there needs to be an additional change.
It will be reffered to later when to apply it.
The change is adding the following line below BuildArch: noarch in the .spec file of a particular package:
ExclusiveArch: aarch64 ppc64le s390x x86_64 noarch
javapackages-tools (will be reffered to as JPT)
-
In a single commit:
-
Apply
javapackages-config.jsonchange from the commit28435e28a237fa98231bba86e2d8f3d1c1fff226 -
Add patch from commit
6d8a0324d17f1880939e6de1b7e123fe18674103and switch to using%autosetup.
DO NOT editRequires. -
Put
Resolves:in the commit message corresponding to the Jira issue:javapackages-tools: Make auto-requires work with java-21-headless. -
Push the change.
-
-
Create a side tag with
rhpkg --release rhel-9.${N}.0-z request-gated-side-tag. -
Build JPT in that side tag:
rhpkg build --target ${side_tag_name}.
Ant
-
Apply changes from
rhel-9.4.0branch. -
Also apply
ExclusiveArchchange. -
Make sure JPT has been built in the side tag and tagged %%
brew waitrepo?%%. -
Build Ant in the same side tag as JPT.
JPT
-
Apply the rest of changes from the
rhel-9.4.0branch and squash them. -
This commit
Resolves:the issue corresponding to:javapackages-tools: Make OpenJDK 17 default JRE/JDK.
Ant / Maven
Now the runtime dependencies of Ant / Maven need to be rebuilt using the newly built JPT.
antlr apache-commons-logging apache-commons-net assertj-core bcel bsf byte-buddy hamcrest jakarta-activation jakarta-mail jakarta-oro jdepend jsch junit junit5 jzlib objectweb-asm opentest4j regexp univocity-parsers xerces-j2 xml-commons-apis xml-commons-resolver xz-java
apache-commons-cli apache-commons-codec apache-commons-io apache-commons-lang3 atinject cdi-api google-guice guava httpcomponents-client httpcomponents-core jakarta-annotations jansi jsoup jsr-305 maven-resolver maven-shared-utils maven-wagon plexus-cipher plexus-classworlds plexus-containers plexus-interpolation plexus-sec-dispatcher plexus-utils sisu slf4j
JPT, Ant and Maven and their dependencies can not be built in a single side tag due to a limitation of maximum 50 builds per side tag.
Ant
-
For each Ant dependency apply changes from
rhel-9.4.0squashed in a single commit and release bump.-
Commit must mention
Related:Ant Jira issue. -
Apply
ExclusiveArchchange in all packages exceptantlr, it has a differentExclusiveArchalready in the commit.
-
-
Build Ant dependencies in the same tag as JPT and Ant. The dependencies can all be built at the same time.
-
Bump Ant and rebuild it in the same side tag.
-
Commit message must contain
Resolves:Ant Jira issue.
-
Maven
-
Create a separate side tag.
-
Tag the second build of JPT into this side tag.
-
For each Maven dependency apply changes from
rhel-9.4.0squashed in a single commit and release bump.-
Commit must mention
Related:Maven issue:maven: Suggest maven-openjdk17. -
Apply
ExclusiveArchchange in all packages exceptjansi, it has a differentExclusiveArchalready in the commit.
-
-
Build Maven dependencies in this new side tag. The dependencies can all be built at the same time.
-
In Maven:
-
Backport commits up until commit
51c7596fa54b1ebe2598cd9ed5426850788469c0excluding it.-
Squash them and use a single release bump.
-
Write
Related:Maven issue:maven: Add maven-openjdk21.
-
-
Apply commit
51c7596fa54b1ebe2598cd9ed5426850788469c0with correctResolves. -
Apply the rest of commits in
rhel-9.4.0and squash them.-
Resolves:Maven issue:maven: Suggest maven-openjdk17.
-
-
-
Build Maven in the same side tag, no need to wait for other builds.
Gating
Most issues should be resolved, in case of errors the people to contact with tests:
-
leapp.brew-build.upgrade.distro-vsokolon#team-rhel-upgrades -
osci-*-msrbon#help-osci -
Other tests:
mkoncekormizdebsk
%% bootstrap? %%
Errata
-
Single Erratum for JPT per RHEL release.
-
Single Ant Erratum per RHEL release containing the builds of Ant and all its dependencies.
-
Single Maven Erratum per RHEL release containing the builds of Ant and all its dependencies.
You will need to manually drop all the automatically created errata of the Ant / Maven dependencies.