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.json change from the commit 28435e28a237fa98231bba86e2d8f3d1c1fff226

    • Add patch from commit 6d8a0324d17f1880939e6de1b7e123fe18674103 and switch to using %autosetup.
      DO NOT edit Requires.

    • 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.0 branch.

  • Also apply ExclusiveArch change.

  • 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.0 branch 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.

Ant dependencies
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
Maven dependencies
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.0 squashed in a single commit and release bump.

    • Commit must mention Related: Ant Jira issue.

    • Apply ExclusiveArch change in all packages except antlr, it has a different ExclusiveArch already 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.0 squashed in a single commit and release bump.

    • Commit must mention Related: Maven issue: maven: Suggest maven-openjdk17.

    • Apply ExclusiveArch change in all packages except jansi, it has a different ExclusiveArch already 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 51c7596fa54b1ebe2598cd9ed5426850788469c0 excluding it.

      • Squash them and use a single release bump.

      • Write Related: Maven issue: maven: Add maven-openjdk21.

    • Apply commit 51c7596fa54b1ebe2598cd9ed5426850788469c0 with correct Resolves.

    • Apply the rest of commits in rhel-9.4.0 and 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 - vsokol on #team-rhel-upgrades

  • osci-* - msrb on #help-osci

  • Other tests: mkoncek or mizdebsk

%% 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.