ci: Bump APT_LLVM_V-based task configs to Ubuntu 26.04
What changed, and why it matters
This commit updates several Bitcoin Core automated testing scripts to use a newer version of the underlying Linux container image (Ubuntu 26.04 instead of Ubuntu 24.04 or Debian testing). The compiler version is kept the same, and the change only affects internal continuous integration (CI) environments, not the Bitcoin software users run. There is no indication this fixes or introduces a security vulnerability.
No security action required. Treat as routine CI maintenance. If deploying Ubuntu 26.04 images, verify the new base image is available and that CI jobs pass, but this is an operational concern, not a security patch.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies six CI setup scripts under ci/test/ to change CI_IMAGE_NAME_TAG to mirror.gcr.io/ubuntu:26.04 (with one script switching from debian:trixie). All scripts pin APT_LLVM_V=22 (or related LLVM 22 variants), so the clang/LLVM toolchain version remains unchanged. The commit message states the practical effect is newer cmake, C++ standard library, and Python versions in those CI jobs. No runtime code, consensus code, networking, cryptography, or wallet logic is touched.
Changed components
ci/test/00_setup_env_freebsd_cross.shci/test/00_setup_env_native_fuzz.shci/test/00_setup_env_native_fuzz_with_msan.shci/test/00_setup_env_native_iwyu.shci/test/00_setup_env_native_msan.shci/test/00_setup_env_native_tidy.shInspect captured patch +6 / −6
diff --git a/ci/test/00_setup_env_freebsd_cross.sh b/ci/test/00_setup_env_freebsd_cross.sh
index da7304d1..1be28a22 100755
--- a/ci/test/00_setup_env_freebsd_cross.sh
+++ b/ci/test/00_setup_env_freebsd_cross.sh
@@ -7,7 +7,7 @@
export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_freebsd_cross
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export APT_LLVM_V="22"
export FREEBSD_VERSION=15.0
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} lld"
diff --git a/ci/test/00_setup_env_native_fuzz.sh b/ci/test/00_setup_env_native_fuzz.sh
index cdfe2a0d..276ce08d 100755
--- a/ci/test/00_setup_env_native_fuzz.sh
+++ b/ci/test/00_setup_env_native_fuzz.sh
@@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export CONTAINER_NAME=ci_native_fuzz
export APT_LLVM_V="22"
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev libevent-dev libboost-dev libsqlite3-dev libcapnp-dev capnproto"
diff --git a/ci/test/00_setup_env_native_fuzz_with_msan.sh b/ci/test/00_setup_env_native_fuzz_with_msan.sh
index 82d9044a..c35a9362 100755
--- a/ci/test/00_setup_env_native_fuzz_with_msan.sh
+++ b/ci/test/00_setup_env_native_fuzz_with_msan.sh
@@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export APT_LLVM_V="22"
LIBCXX_DIR="/cxx_build/"
export MSAN_FLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O1 -fno-optimize-sibling-calls"
diff --git a/ci/test/00_setup_env_native_iwyu.sh b/ci/test/00_setup_env_native_iwyu.sh
index 27b1e02b..3a26be56 100755
--- a/ci/test/00_setup_env_native_iwyu.sh
+++ b/ci/test/00_setup_env_native_iwyu.sh
@@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie" # To build codegen, CMake must be 3.31 or newer.
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04" # To build codegen, CMake must be 3.31 or newer.
export CONTAINER_NAME=ci_native_iwyu
export IWYU_LLVM_V="22"
export APT_LLVM_V="${IWYU_LLVM_V}"
diff --git a/ci/test/00_setup_env_native_msan.sh b/ci/test/00_setup_env_native_msan.sh
index 4a10bf96..1d005abb 100755
--- a/ci/test/00_setup_env_native_msan.sh
+++ b/ci/test/00_setup_env_native_msan.sh
@@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export APT_LLVM_V="22"
LIBCXX_DIR="/cxx_build/"
export MSAN_FLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O1 -fno-optimize-sibling-calls"
diff --git a/ci/test/00_setup_env_native_tidy.sh b/ci/test/00_setup_env_native_tidy.sh
index b3cda17e..5cebb8cd 100755
--- a/ci/test/00_setup_env_native_tidy.sh
+++ b/ci/test/00_setup_env_native_tidy.sh
@@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export CONTAINER_NAME=ci_native_tidy
export TIDY_LLVM_V="22"
export APT_LLVM_V="${TIDY_LLVM_V}"
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.