aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorPimyn Girgis <pimyn@google.com>2025-11-27 15:19:52 +0000
committerTahuti <pimyn@google.com>2025-12-03 09:02:54 +0000
commit7cea5f2c6000fc39497806150333e1dacee708e6 (patch)
treed4914518651c88983381412d36daa6d68e99c948 /tools
parentd4611817041647831162ed6dedfa7bc0ad160387 (diff)
tools/docker: update to debian trixie
Update our docker containers to Debian Trixie. Fixes #6432
Diffstat (limited to 'tools')
-rw-r--r--tools/docker/env/Dockerfile32
-rw-r--r--tools/docker/syzbot/Dockerfile63
2 files changed, 45 insertions, 50 deletions
diff --git a/tools/docker/env/Dockerfile b/tools/docker/env/Dockerfile
index 5d466a9b3..88a453090 100644
--- a/tools/docker/env/Dockerfile
+++ b/tools/docker/env/Dockerfile
@@ -4,7 +4,7 @@
# See /tools/docker/README.md for details.
# Construct a /syzkaller folder.
-FROM debian:bookworm as syzkaller-folder
+FROM debian:trixie AS syzkaller-folder
WORKDIR /syzkaller
RUN apt-get update --allow-releaseinfo-change
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q curl
@@ -45,7 +45,7 @@ RUN curl https://storage.googleapis.com/syzkaller/fuchsia-toolchain.tar.gz | tar
RUN curl https://storage.googleapis.com/syzkaller/netbsd-toolchain.tar.gz | tar -C /syzkaller -xz
# Now build the actual syz-env container.
-FROM debian:bookworm
+FROM debian:trixie
LABEL homepage="https://github.com/google/syzkaller"
@@ -54,8 +54,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends
sudo make nano unzip curl ca-certificates binutils g++ \
g++-arm-linux-gnueabi g++-aarch64-linux-gnu g++-powerpc64le-linux-gnu \
g++-mips64el-linux-gnuabi64 g++-s390x-linux-gnu g++-riscv64-linux-gnu \
- libc6-dev-i386 libc6-dev-i386-amd64-cross lib32gcc-12-dev lib32stdc++-12-dev \
- python3 python-is-python3 git \
+ libc6-dev-i386 libc6-dev-i386-amd64-cross lib32gcc-14-dev lib32stdc++-14-dev \
+ python3 python-is-python3 python3-legacy-cgi git \
# These are needed to build Linux kernel:
flex bison bc libelf-dev libssl-dev \
# qemu-user is required to run alien arch binaries in pkg/cover tests.
@@ -77,17 +77,17 @@ ENV GOPATH /gopath
ENV GOMODCACHE /syzkaller/.cache/gomod
# Install clang.
-RUN apt-get install -y -q gnupg software-properties-common apt-transport-https
-RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
-RUN echo "deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-20 main" | sudo tee /etc/apt/sources.list.d/llvm-20.list
+RUN apt-get install -y -q gnupg apt-transport-https
+RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /usr/share/keyrings/llvm-snapshot.gpg
+RUN echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/trixie/ llvm-toolchain-trixie-21 main" | sudo tee /etc/apt/sources.list.d/llvm-21.list
RUN apt-get update --allow-releaseinfo-change
-RUN apt-get install -y -q --no-install-recommends clang-20 clang-format-20 clang-tidy-20 lld-20
+RUN apt-get install -y -q --no-install-recommends clang-21 clang-format-21 clang-tidy-21 lld-21
RUN apt-get install -y -q --no-install-recommends flatbuffers-compiler
-RUN sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 100
-RUN sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 100
-RUN sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-20 100
-RUN sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-20 100
-RUN sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/lld-20 100
+RUN sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 100
+RUN sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 100
+RUN sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 100
+RUN sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-21 100
+RUN sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/lld-21 100
RUN apt autoremove -y -q
# Install the Spanner emulator.
@@ -116,15 +116,13 @@ ENV SOURCEDIR_NETBSD /syzkaller/netbsd
ENV RUSTUP_HOME=/usr/local/rustup
ENV CARGO_HOME=/usr/local/cargo
ENV PATH=/usr/local/cargo/bin:$PATH
-ENV RUST_VERSION=1.87.0
+ENV RUST_VERSION=1.91.1
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $RUST_VERSION
RUN rustup component add rust-src
RUN cargo install --locked bindgen-cli
# Use the latest libdw-dev release, otherwise we get compilation error when CONFIG_RUST=y.
-RUN echo "deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" > /etc/apt/sources.list.d/bookworm-backports.list
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends libdw-dev/bookworm-backports libelf-dev/bookworm-backports
+RUN apt-get install -y --no-install-recommends libdw-dev libelf-dev
# Install node to pass act jobs (https://github.com/nektos/act)
RUN apt-get install -y -q nodejs
diff --git a/tools/docker/syzbot/Dockerfile b/tools/docker/syzbot/Dockerfile
index 04d42de87..298a08428 100644
--- a/tools/docker/syzbot/Dockerfile
+++ b/tools/docker/syzbot/Dockerfile
@@ -3,18 +3,18 @@
# See /tools/docker/README.md for details.
-FROM debian:bookworm
+FROM debian:trixie
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
# Build essentials:
gcc g++ binutils make ccache \
# Some common utilities:
- unzip curl sudo procps psmisc nano vim git bzip2 dh-autoreconf software-properties-common \
+ unzip curl sudo procps psmisc nano vim git bzip2 dh-autoreconf fdisk \
# These are needed to build Linux kernel:
flex bison bc gawk dwarves cpio texinfo texi2html lzop lbzip2 \
zlib1g-dev libncurses-dev libmpc-dev libssl-dev \
- apt-transport-https curl gnupg python-is-python3 \
+ apt-transport-https curl gnupg python-is-python3 python3-legacy-cgi \
# Needed for building Cuttlefish images.
rsync libarchive-tools \
# These are various fsck-like commands needed for prog/fsck:
@@ -25,7 +25,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
crossbuild-essential-amd64 crossbuild-essential-arm64 libbpf-dev
RUN test "$(uname -m)" != x86_64 && exit 0 || \
DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
- libc6-dev-i386 libc6-dev-i386-amd64-cross lib32gcc-12-dev lib32stdc++-12-dev \
+ libc6-dev-i386 libc6-dev-i386-amd64-cross lib32gcc-14-dev lib32stdc++-14-dev \
# Cross-compilation:
g++-arm-linux-gnueabi g++-aarch64-linux-gnu g++-powerpc64le-linux-gnu \
g++-mips64el-linux-gnuabi64 g++-s390x-linux-gnu g++-riscv64-linux-gnu
@@ -35,28 +35,31 @@ RUN test "$(uname -m)" != x86_64 && exit 0 || \
RUN curl https://dl.google.com/go/go1.24.4.linux-$(uname -m | sed 's/aarch64/arm64/;s/x86_64/amd64/').tar.gz | tar -C /usr/local -xz
ENV PATH /usr/local/go/bin:$PATH
-# The default clang-14 is too old, install the latest one.
-RUN apt-get install -y -q gnupg software-properties-common apt-transport-https
-RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
-RUN echo "deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-20 main" | sudo tee /etc/apt/sources.list.d/llvm-20.list
+# Install the latest clang
+RUN apt-get install -y -q gnupg apt-transport-https
+RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | tee /usr/share/keyrings/llvm-snapshot.gpg
+RUN echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/trixie/ llvm-toolchain-trixie-21 main" | tee /etc/apt/sources.list.d/llvm-21.list
RUN apt-get update --allow-releaseinfo-change
-RUN apt-get install -y -q --no-install-recommends llvm-20 clang-20 clang-format-20 clang-tidy-20 lld-20
+RUN apt-get install -y -q --no-install-recommends llvm-21 clang-21 clang-format-21 clang-tidy-21 lld-21
RUN apt autoremove -y -q
-RUN sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 100
-RUN sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 100
-RUN sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-20 100
-RUN sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-20 100
-RUN sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/lld-20 100
-RUN sudo update-alternatives --install /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-20 100
-RUN sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-20 100
-RUN sudo update-alternatives --install /usr/bin/llvm-objcopy llvm-objcopy /usr/bin/llvm-objcopy-20 100
-RUN sudo update-alternatives --install /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-20 100
-RUN sudo update-alternatives --install /usr/bin/llvm-addr2line llvm-addr2line /usr/bin/llvm-addr2line-20 100
-RUN sudo update-alternatives --install /usr/bin/llvm-readelf llvm-readelf /usr/bin/llvm-readelf-20 100
-RUN sudo update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-20 100
+RUN sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 100
+RUN sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 100
+RUN sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 100
+RUN sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-21 100
+RUN sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/lld-21 100
+RUN sudo update-alternatives --install /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-21 100
+RUN sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-21 100
+RUN sudo update-alternatives --install /usr/bin/llvm-objcopy llvm-objcopy /usr/bin/llvm-objcopy-21 100
+RUN sudo update-alternatives --install /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-21 100
+RUN sudo update-alternatives --install /usr/bin/llvm-addr2line llvm-addr2line /usr/bin/llvm-addr2line-21 100
+RUN sudo update-alternatives --install /usr/bin/llvm-readelf llvm-readelf /usr/bin/llvm-readelf-21 100
+RUN sudo update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-21 100
# Also install clang-15 to keep bisections alive.
-RUN apt-get install -y -q --no-install-recommends clang-15
+RUN echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-15 main" | sudo tee /etc/apt/sources.list.d/llvm-bookworm-15.list
+RUN apt-get update --allow-releaseinfo-change
+RUN apt-get install -y -q --no-install-recommends -t llvm-toolchain-bookworm-15 clang-15
+RUN apt-get install libelf-dev libdwarf-dev
# Not really GRTE, but it's enough to run some scripts that hardcode the path.
RUN mkdir -p /usr/grte/v5/bin && ln -s /usr/bin/python3 /usr/grte/v5/bin/python2.7
@@ -68,35 +71,29 @@ RUN curl -s https://api.github.com/repos/bazelbuild/bazelisk/releases/latest \
| curl -L -o /usr/local/bin/bazel -K - \
&& chmod +x /usr/local/bin/bazel
-# Install qemu from the backports.
-# The currently stable version (7.2) cannot properly run arm64-MTE kernels.
-RUN add-apt-repository "deb http://deb.debian.org/debian bookworm-backports main"
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -t bookworm-backports -y -q \
+RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
# This is required to run alien arch binaries in pkg/cover tests:
qemu-user
# QEMU packages required to run x86/arm64 kernels - install them for both x86 and arm64.
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -t bookworm-backports -y -q \
+RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
qemu-utils qemu-system-misc qemu-system-x86 qemu-system-arm qemu-system-aarch64
# Install QEMU packages for other arches on x86 machines only.
RUN test "$(uname -m)" != x86_64 && exit 0 || \
- DEBIAN_FRONTEND=noninteractive apt-get install -t bookworm-backports -y -q \
+ DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
qemu-system-s390x qemu-system-mips qemu-system-ppc
# Rust toolchain for kernel builds.
ENV RUSTUP_HOME=/usr/local/rustup
ENV CARGO_HOME=/usr/local/cargo
ENV PATH=/usr/local/cargo/bin:$PATH
-ENV RUST_VERSION=1.87.0
+ENV RUST_VERSION=1.91.1
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $RUST_VERSION
RUN rustup component add rust-src
RUN cargo install --locked bindgen-cli
-# Use the latest libdw-dev release, otherwise we get compilation error when CONFIG_RUST=y.
-RUN echo "deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" > /etc/apt/sources.list.d/bookworm-backports.list
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends libdw-dev/bookworm-backports libelf-dev/bookworm-backports
+RUN apt-get install -y --no-install-recommends libdw-dev libelf-dev
# Install gcloud https://cloud.google.com/sdk/docs/install#deb.
RUN apt-get install -y -q ca-certificates \