Browse Source

Merge topic 'ci-locale'

5f9bcdceb8 ci: Use a UTF-8 locale on Linux and macOS jobs
3a68a0c75c ci: Add locales to the Debian and Fedora base images
bac8aa3df9 ci: Update NVIDIA CUDA package keyring for Debian 13
f6f8ebb987 ci: configure 'typos' to tolerate a NSIS command

Acked-by: Kitware Robot <[email protected]>
Merge-request: !11672
Brad King 3 weeks ago
parent
commit
7eac0bed01

+ 1 - 1
.gitlab/ci/docker/debian13-aarch64/Dockerfile

@@ -3,7 +3,7 @@
 ARG BASE_IMAGE=arm64v8/debian:13
 
 FROM ${BASE_IMAGE} AS cuda-keyring
-ADD https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/cuda-keyring_1.1-1_all.deb /root/
+ADD https://developer.download.nvidia.com/compute/cuda/repos/debian13/sbsa/cuda-keyring_1.1-1_all.deb /root/
 RUN --mount=type=tmpfs,target=/var/log \
     apt-get update \
  && apt-get -y install ca-certificates \

+ 2 - 0
.gitlab/ci/docker/debian13-aarch64/deps_packages.lst

@@ -1,3 +1,5 @@
+locales
+
 # Install build requirements.
 libssl-dev
 

+ 4 - 0
.gitlab/ci/docker/debian13-aarch64/install_deps.sh

@@ -3,3 +3,7 @@
 set -e
 
 apt-get install -y $(grep '^[^#]\+$' /root/deps_packages.lst)
+
+# Add locales.
+sed -i -E '/^# en_US[ .](ISO-8859-1|UTF-8)( |$)/ s/^# //' /etc/locale.gen
+dpkg-reconfigure --frontend=noninteractive locales

+ 2 - 0
.gitlab/ci/docker/debian13-x86_64/deps_packages.lst

@@ -1,3 +1,5 @@
+locales
+
 # Install build requirements.
 libssl-dev
 

+ 4 - 0
.gitlab/ci/docker/debian13-x86_64/install_deps.sh

@@ -4,6 +4,10 @@ set -e
 
 apt-get install -y $(grep '^[^#]\+$' /root/deps_packages.lst)
 
+# Add locales.
+sed -i -E '/^# en_US[ .](ISO-8859-1|UTF-8)( |$)/ s/^# //' /etc/locale.gen
+dpkg-reconfigure --frontend=noninteractive locales
+
 curl -L -O https://github.com/IronLanguages/ironpython3/releases/download/v3.4.0/ironpython_3.4.0.deb
 echo '7dcd10b7a0ec0342bd7e20eebb597a96bb15267eb797d59358a3b1cfaa3e1adc  ironpython_3.4.0.deb' > ironpython.sha256sum
 sha256sum --check ironpython.sha256sum

+ 2 - 0
.gitlab/ci/docker/fedora43/deps_packages.lst

@@ -1,3 +1,5 @@
+glibc-locale-source
+
 # Install build requirements.
 ncurses-devel
 openssl-devel

+ 4 - 0
.gitlab/ci/docker/fedora43/install_deps.sh

@@ -4,6 +4,10 @@ set -e
 
 dnf install -y $(grep '^[^#]\+$' /root/deps_packages.lst)
 
+# Add locales.
+localedef --no-archive --inputfile=en_US --charmap=ISO-8859-1 en_US.ISO-8859-1
+localedef --no-archive --inputfile=en_US --charmap=UTF-8 en_US.UTF-8
+
 # Remove tests for Python packages
 for v in 3.14; do
     find /usr/lib64/python${v}/site-packages -type d -a -name tests -exec rm -rf {} +

+ 11 - 0
.gitlab/ci/env.sh

@@ -19,10 +19,21 @@ if test -n "$CMAKE_CI_IN_SYMLINK_TREE"; then
   test "$(git -C "$CI_PROJECT_DIR/work/cmake" rev-parse HEAD)" = "$(git -C "$CI_PROJECT_DIR" rev-parse HEAD)"
 fi
 
+# Default to a UTF-8 locale.  The per-job environment may override it.
+locales="$(locale -a 2>/dev/null)"
+if echo "$locales" | grep -qE '^C\.(UTF-8|utf8)$'; then
+  export LANG=C.UTF-8
+elif echo "$locales" | grep -qE '^en_US\.(UTF-8|utf8)$'; then
+  export LANG=en_US.UTF-8
+fi
+
 if test -r ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh"; then
   source ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh"
 fi
 
+# Report the selected locale.
+echo "locale: $(locale | grep '^LANG=') with $(locale -k charmap)"
+
 case "$(uname -s)-$(uname -m)" in
     Linux-*)
         # Remove superuser tools from PATH.

+ 3 - 3
.gitlab/os-linux.yml

@@ -58,7 +58,7 @@
 ### Debian
 
 .debian13:
-    image: "kitware/cmake:ci-debian13-x86_64-2025-11-11"
+    image: "kitware/cmake:ci-debian13-x86_64-2026-02-08"
 
     variables:
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -73,7 +73,7 @@
         CMAKE_CI_NO_INSTALL: 1
 
 .debian13_aarch64:
-    image: "kitware/cmake:ci-debian13-aarch64-2025-11-11"
+    image: "kitware/cmake:ci-debian13-aarch64-2026-02-08"
 
     variables:
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -82,7 +82,7 @@
 ### Fedora
 
 .fedora43:
-    image: "kitware/cmake:ci-fedora43-x86_64-2026-01-27"
+    image: "kitware/cmake:ci-fedora43-x86_64-2026-02-08"
 
     variables:
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"

+ 2 - 0
.typos.toml

@@ -42,6 +42,8 @@ restat = "restat"
 Spectre = "Spectre"
 # Identifier used in source code (`GlobalTargetInfo`)
 gti = "gti"
+# StrCpy in NSIS input.
+Cpy = "Cpy"
 
 [files]
 ignore-hidden = false