temurin-build
temurin-build copied to clipboard
Prepare for CentOS7 EOL
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 tooThe 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.
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?
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 thenoarch
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.