From: Simon Glass <simon.glass@canonical.com> Pin trace-cmd dependencies to avoid libtraceevent 1.9+ which requires BTF kernel headers newer than Jammy's 5.15: - libtraceevent: b3f5849 (pre-BTF) - libtracefs: 1.8.1 - trace-cmd: 364faec Install libtraceevent/libtracefs with prefix=/usr and ldconfig for cross-platform library path compatibility (arm64 vs amd64). Update coreboot from 24.08 to 24.12 since Intel took down the ACPICA download used by 24.08. Make a few other changes to bring us in line with upstream commit d75998b476de ("Docker, CI: Add vexpress_fvp / vexpress_fvp_bloblist support") Update .gitlab-ci.yml to use the new image tag. Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- .gitlab-ci.yml | 2 +- tools/docker/Dockerfile | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0b6ca99a8ba..648c3f52c44 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,7 +27,7 @@ default: - ${DEFAULT_TAG} # Grab our configured image. The source for this is found # in the u-boot tree at tools/docker/Dockerfile - image: ${MIRROR_DOCKER}/sjg20/u-boot-gitlab-ci-runner:jammy-20250404-24Oct2025p1 + image: ${MIRROR_DOCKER}/sjg20/u-boot-gitlab-ci-runner:jammy-20250404-19feb26 services: - name: container-$(CI_JOB_ID) command: ["--rm"] diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 71932e5433c..90ad3708101 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -64,6 +64,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ binutils-dev \ bison \ build-essential \ + byacc \ cgpt \ clang-18 \ coreutils \ @@ -74,8 +75,10 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ e2fsprogs \ efitools \ erofs-utils \ + exfatprogs \ expect \ fakeroot \ + fdisk \ flex \ gawk \ gdisk \ @@ -281,24 +284,30 @@ RUN git clone https://github.com/stefanberger/swtpm /tmp/swtpm && \ rm -rf /tmp/swtpm # Build trace-cmd +# Pin to commits from Oct 2025 to avoid libtraceevent 1.9+ BTF dependency +# which requires kernel headers newer than Jammy's 5.15 RUN mkdir /tmp/trace && \ git clone https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git /tmp/trace/libtraceevent && \ cd /tmp/trace/libtraceevent && \ + git checkout b3f5849 && \ make -j$(nproc) && \ - sudo make install && \ - git clone https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git /tmp/trace/libtracefs && \ + sudo make install prefix=/usr && \ + sudo ldconfig && \ + git clone --branch libtracefs-1.8.1 --depth 1 https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git /tmp/trace/libtracefs && \ cd /tmp/trace/libtracefs && \ make -j$(nproc) && \ - sudo make install && \ + sudo make install prefix=/usr && \ + sudo ldconfig && \ git clone https://github.com/rostedt/trace-cmd.git /tmp/trace/trace-cmd && \ cd /tmp/trace/trace-cmd && \ + git checkout 364faec && \ make -j$(nproc) && \ sudo make install && \ rm -rf /tmp/trace # Build coreboot -RUN wget -O - https://coreboot.org/releases/coreboot-24.08.tar.xz | tar -C /tmp -xJ && \ - cd /tmp/coreboot-24.08 && \ +RUN wget -O - https://coreboot.org/releases/coreboot-24.12.tar.xz | tar -C /tmp -xJ && \ + cd /tmp/coreboot-24.12 && \ make crossgcc-i386 CPUS=$(nproc) && \ make -C payloads/coreinfo olddefconfig && \ make -C payloads/coreinfo && \ @@ -308,7 +317,8 @@ RUN wget -O - https://coreboot.org/releases/coreboot-24.08.tar.xz | tar -C /tmp make olddefconfig && \ make -j $(nproc) && \ sudo mkdir /opt/coreboot && \ - sudo cp build/coreboot.rom build/cbfstool /opt/coreboot/ + sudo cp build/coreboot.rom build/cbfstool /opt/coreboot/ && \ + rm -rf /tmp/coreboot-24.08 # Create our user/group RUN echo uboot ALL=NOPASSWD: ALL > /etc/sudoers.d/uboot @@ -330,6 +340,7 @@ ENV PATH="/home/uboot/.cargo/bin:${PATH}" # COPY / ADD directives don't work as we need them to. RUN wget -O /tmp/pytest-requirements.txt https://source.denx.de/u-boot/u-boot/-/raw/master/test/py/requirements.txt RUN wget -O /tmp/sphinx-requirements.txt https://source.denx.de/u-boot/u-boot/-/raw/master/doc/sphinx/requirements.tx... +RUN wget -O /tmp/binman-requirements.txt https://source.denx.de/u-boot/u-boot/-/raw/master/tools/binman/requirements.... RUN wget -O /tmp/buildman-requirements.txt https://source.denx.de/u-boot/u-boot/-/raw/master/tools/buildman/requirement... RUN wget -O /tmp/patman-requirements.txt https://source.denx.de/u-boot/u-boot/-/raw/master/tools/patman/requirements.... RUN wget -O /tmp/u_boot_pylib-requirements.txt https://source.denx.de/u-boot/u-boot/-/raw/master/tools/u_boot_pylib/require... @@ -337,6 +348,7 @@ RUN python3 -m venv /tmp/venv && \ . /tmp/venv/bin/activate && \ pip install -r /tmp/pytest-requirements.txt \ -r /tmp/sphinx-requirements.txt \ + -r /tmp/binman-requirements.txt \ -r /tmp/buildman-requirements.txt \ -r /tmp/patman-requirements.txt \ -r /tmp/u_boot_pylib-requirements.txt && \ -- 2.43.0