Skip to content

Install IBM Semeru Open JRE for s390x cp-base-java(-micro) builds#1754

Open
Prince Raheja (rahejaprince) wants to merge 1 commit into
8.3.xfrom
praheja-s390x-semeru-cp-base-java-8.3.x
Open

Install IBM Semeru Open JRE for s390x cp-base-java(-micro) builds#1754
Prince Raheja (rahejaprince) wants to merge 1 commit into
8.3.xfrom
praheja-s390x-semeru-cp-base-java-8.3.x

Conversation

@rahejaprince
Copy link
Copy Markdown
Member

Summary

cp-base-java and cp-base-java-micro install IBM Semeru Open JRE 25 on s390x builds. amd64 and arm64 builds continue to install Eclipse Temurin 25 from the Adoptium yum repo. Selection is driven by the existing arch.type Maven property already set in .semaphore/{semaphore,cp_dockerfile_build}.yml.

How it works

  • On s390x, the new conditional in both Dockerfile.ubi9 files:
    • curls the Semeru tarball from the ibmruntimes/semeru25-binaries GitHub release
    • sha256-verifies the download against a pom-pinned hash
    • extracts to /opt/java/openjdk (preserving the legal/ tree for GPLv2+CPE attribution)
    • symlinks /usr/bin/java so downstream apps work identically to the RPM path
  • On amd64/arm64, the existing Adoptium RPM install path runs unchanged.
  • cp-base-java-micro additionally adds libstdc++ to the dnf install into /microdir. The final stage of -micro is ubi9-micro, which doesn't bundle the C++ stdlib that Semeru's libjvm.so links against; the rootfs-copy stage now explicitly carries it.

New pom properties

Property Value Notes
semeru-25-jre.version 25.0.3.0 URL template uses this for both the GitHub release tag and the asset filename
semeru-25-jre.s390x.sha256 5f24293d… SHA256 of ibm-semeru-open-jre_s390x_linux_25.0.3.0.tar.gz
ubi9.libstdc__plus____plus__.version 11.5.0-11.el9 XML element names disallow +; __plus__ encoding pairs with the decoder in the paired cp-build-release PR

Paired PR

confluentinc/cp-build-release#577 — adds the __plus__ decoder to the dependency-update automation so future scheduled runs can resolve ubi9.libstdc__plus____plus__.version to libstdc++. That PR should land first or alongside this one.

Test plan

  • Local s390x build via QEMU on amd64 (-Darch.type=.s390x -Ddocker.buildx.platforms=linux/s390x): both cp-base-java (178 MB) and cp-base-java-micro (152 MB) build successfully; java -version returns IBM Semeru / Eclipse OpenJ9 on Linux s390x-64-Bit.
  • Local amd64 build (-Darch.type=.amd64): cp-base-java still installs Eclipse Temurin via Adoptium RPM, /opt/java/openjdk does not exist, /usr/bin/java resolves to /usr/lib/jvm/java-25-temurin-jre/bin/java (existing path unchanged).
  • Sanity: GPLv2+CPE legal/ directory preserved under /opt/java/openjdk/legal/; update-crypto-policies runs unchanged.
  • CI s390x build pipeline (this PR).
  • Downstream component team smoke test on s390x once images are promoted.

@rahejaprince Prince Raheja (rahejaprince) requested a review from a team as a code owner May 14, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant