adoptium / adoptium/infrastructure
Linux available Locales affecting jdk-23+ reproduciblity across OS distributions
- Dominant language
- Python
- Stars
- 96
- Forks
- 106
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 13
Description
jdk23 changed to defaulting to C.UTF-8, or en_US.UTF-8 (as an acceptable fallback if C.UTF-8 not available).
The problem with en_US.UTF-8, is it is not language neutral for things like collation sequence across OS distributions. For example, the sorting of a resource property file containing Japanese characters will differ in en_US.UTF-8 between Ubtuntu and Centos. This means if an original build is built on Centos using en_US.UTF-8, then it is only 100% reproducible on Centos/Rhel.
Ideally, we should have C.UTF-8 available on all our Linux nodes, so we can use the preferred jdk-23+ locale.
The issue we have is C.UTF-8 is not available on Centos7.
**Ways forward for 100% reproducible builds:**
- Restrict jdk-23+ reproducible builds to Centos & Rhel, so as to match en_US.UTF-8 locale and collation of the original Centos7 build. (Note: Centos7 aarch64 image does not currently have en_US.UTF-8, so is actually defaulting to C currently, with a [configure Warning](https://github.com/adoptium/infrastructure/issues/3576))
- Move Temurin jdk-23+ builds to Centos8 or 9, so we can provide C.UTF-8 locale on all Linux architectures.
-
Contributor guide
Research direction
Start by comparing the available locales on the affected CentOS 7 and other Linux build nodes, then read the related infrastructure issue #3576 and the seven-comment discussion. Done means the project has an agreed, documented approach that provides consistent locale and collation behavior for JDK 23+ reproducible builds across the supported Linux distributions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- centos, java, linux
- Domain
- build-system, infrastructure, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100