What changed, and why it matters
This commit simply swaps the Linux distribution used in Bitcoin Core's automated testing environment from Debian Trixie to Ubuntu 26.04. It updates container image names and a comment in a Valgrind suppression file. There is no change to the Bitcoin software itself, no bug fix, and no security-relevant behavior change.
No security action needed. Review as normal CI maintenance if desired.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit modifies five CI-related files: four shell scripts that set CI_IMAGE_NAME_TAG from mirror.gcr.io/debian:trixie to mirror.gcr.io/ubuntu:26.04, and a comment in test/sanitizer_suppressions/valgrind.supp noting the tested OS. This is a pure CI infrastructure change with no code, build system, or runtime logic modifications.
Changed components
ci/test/00_setup_env_i686_no_ipc.shci/test/00_setup_env_native_fuzz_with_valgrind.shci/test/00_setup_env_native_valgrind.shci/test/00_setup_env_s390x.shtest/sanitizer_suppressions/valgrind.suppInspect captured patch +5 / −5
diff --git a/ci/test/00_setup_env_i686_no_ipc.sh b/ci/test/00_setup_env_i686_no_ipc.sh
index 93d5ab74..2d2fe26b 100755
--- a/ci/test/00_setup_env_i686_no_ipc.sh
+++ b/ci/test/00_setup_env_i686_no_ipc.sh
@@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_no_multiprocess
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export CI_IMAGE_PLATFORM="linux/amd64"
export CI_CONTAINER_CAP="--security-opt seccomp=unconfined"
export PACKAGES="llvm clang g++-multilib"
diff --git a/ci/test/00_setup_env_native_fuzz_with_valgrind.sh b/ci/test/00_setup_env_native_fuzz_with_valgrind.sh
index ed84ae84..8020ea43 100755
--- a/ci/test/00_setup_env_native_fuzz_with_valgrind.sh
+++ b/ci/test/00_setup_env_native_fuzz_with_valgrind.sh
@@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export CONTAINER_NAME=ci_native_fuzz_valgrind
export PACKAGES="clang llvm libclang-rt-dev libevent-dev libboost-dev libsqlite3-dev valgrind libcapnp-dev capnproto"
export NO_DEPENDS=1
diff --git a/ci/test/00_setup_env_native_valgrind.sh b/ci/test/00_setup_env_native_valgrind.sh
index 0ca02f77..ba9d5b40 100755
--- a/ci/test/00_setup_env_native_valgrind.sh
+++ b/ci/test/00_setup_env_native_valgrind.sh
@@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export CONTAINER_NAME=ci_native_valgrind
export PACKAGES="clang llvm libclang-rt-dev valgrind python3-zmq libevent-dev libboost-dev libzmq3-dev libsqlite3-dev libcapnp-dev capnproto python3-pip"
export PIP_PACKAGES="--break-system-packages pycapnp"
diff --git a/ci/test/00_setup_env_s390x.sh b/ci/test/00_setup_env_s390x.sh
index d1e34070..a7c59d76 100755
--- a/ci/test/00_setup_env_s390x.sh
+++ b/ci/test/00_setup_env_s390x.sh
@@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
export HOST=s390x-linux-gnu
export PACKAGES="python3-zmq"
export CONTAINER_NAME=ci_s390x
-export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie"
+export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export CI_IMAGE_PLATFORM="linux/s390x"
# bind tests excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export TEST_RUNNER_EXTRA="--exclude rpc_bind --exclude feature_bind_extra"
diff --git a/test/sanitizer_suppressions/valgrind.supp b/test/sanitizer_suppressions/valgrind.supp
index 8bcad914..27bbce83 100644
--- a/test/sanitizer_suppressions/valgrind.supp
+++ b/test/sanitizer_suppressions/valgrind.supp
@@ -12,7 +12,7 @@
# --error-limit=no build/bin/test_bitcoin
#
# Note that suppressions may depend on OS and/or library versions.
-# Tested on Debian Trixie system libs,
+# Tested on Ubuntu 26.04 system libs,
# * using clang (only x86_64, see https://bugs.kde.org/show_bug.cgi?id=485276),
# * and GCC (only -O1, see https://bugs.kde.org/show_bug.cgi?id=472329),
# without gui (because it only passes with a DEBUG=1 depends build).
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.