adoptium / adoptium/infrastructure

Linux available Locales affecting jdk-23+ reproduciblity across OS distributions

Open
#4,284 7 comments 0 reactions 0 assignees View on GitHub
ansible
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.