temurin-build icon indicating copy to clipboard operation
temurin-build copied to clipboard

Prepare for CentOS7 EOL

Open sxa opened this issue 9 months ago • 2 comments

We are currently using CentOS6/7 containers to build Temurin most of our major Linux platforms. CentOS7 (the last one still in support is being stopped atht end of June 2024. Sine this is the final versions it is entirely possible that some extra cleanup will occur which may also affect the CentOS6 images we build on. Some bullet points:

  • We currently adjust out CentOS6 dockerfile to use vault.centos.org as the packages were moved there. It seems likely from this blog post that this will happen for 7 too The packages will be archived on vault.centos.org after May 31, 2024. As a minimum we'll have to do a similar switch of the location that we have for CentOS6 (PR)
  • As a precaution we could look at archiving the CentOS/RHEL rpm files that we require for the devkit creation.
  • We should consider the possibility that the docker images at dockerhub may disappear and perhaps archive those for each architecture locally (including RHEL7 for s390x) so we can continue to base our docker images builds on that.

sxa avatar May 07 '24 15:05 sxa

PMC agenda:

  • Centos7 rpms are likely to be archived to vault.centos.org, but as a precaution should we archive them locally? These are needed to build the Linux DevKit
  • dockerhub centos7 images may dissappear, meaning we would be unable to re-build the adoptopenjdk/centos7_build_image. Should we store these images locally?
  • Is there anything else that might be affected?

andrew-m-leonard avatar May 15 '24 10:05 andrew-m-leonard

CentOS RPMs are used for building the devkit on x64, aarch64, and ppc64le. The versions from 7.6.1810 (since they are not the latest CentOS 7.9 release) are already being pulled vault.centos.org during the devkit build:

  • https://vault.centos.org/centos/7.6.1810/os/x86_64/Packages/
  • https://vault.centos.org/altarch/7.6.1810/os/aarch64/Packages/
  • https://vault.centos.org/altarch/7.6.1810/os/ppc64le/Packages/

Download with:

  • yum install -y git patch make wget findutils
  • git clone https://github.com/adoptium/ci-jenkins-pipelines
  • cd ci-jenkins-pipelines/pipelines/build/devkit
  • ./make_devkit.sh jdk21u $(uname -m) Centos 7.6.1810 (It will currently stop just afterwards when it tries to do the signature checks on the noarch rpms, but the downloads will be complete)
  • RPMs will be in jdk21u/build/devkit/download/rpms/*-linux-gnu-Centos7.6.1810

s390x uses the RHEL ones obtained via yum reinstall --downloadonly --downloaddir=$PWD <package names> using the list in https://github.com/adoptium/ci-jenkins-pipelines/blob/03479cd8cb8c10169a3b8cc5efec7bf9224f5985/pipelines/build/devkit/make_devkit.sh#L51

The checksums for the packages required by the devkit for Linux are at linuxdevkitprereqshasums.tar.gz and I've taken a mirror of the files for each architecture under userContent/devkit/rpms which should protect us from bullet point 1. This should allow us to create a devkit and use it on later distributions if required.

On the second bullet point we have verified this week that we can build using the devkit on a Fedora system and have binary identical builds (See https://github.com/adoptium/temurin-build/issues/3847#issuecomment-2163150499). Our existing adoptium/centos7_build_image is also not a risk, however any change to remove the upstream centos7 package will affect our ability to do a rebuild. We should consider building on another platform such as UBI with the devkit now that we've verified that it can produce identical builds.

sxa avatar Jun 19 '24 12:06 sxa