:p
atchew
Login
Hi, These series continues the refresh of the CI containers after[0], focusing on the remaining Debian 12 containers. The containers now build and run as a non-root user, use heredocs for readability, and use apt-get --no-install-recommends to minimize the installation of unnecessary packages. The Debian 12 x86_64 and arm64v8 containers required additional modifications to the test scripts to enable test execution as a non-root user, so I did them in their own patch at the end of the series. The updated containers have been tested in https://gitlab.com/xen-project/people/javimerino/xen/-/pipelines/1509304440 [0] https://lore.kernel.org/xen-devel/cover.1729170005.git.javi.merino@cloud.com/T/#t Javi Merino (6): CI: Refresh the Debian 12 x86_64 container CI: Refresh the Debian 12 x86_32 container CI: Refresh the Debian 12 arm64 container CI: Refresh the Debian 12 arm32 cross compile container CI: Refresh the Debian 12 cppcheck container CI: Run the builds and tests that use the Debian 12 containers as a normal user .../debian/12-arm64v8-arm32-gcc.dockerfile | 28 +++++++ .../debian/12-arm64v8-cppcheck.dockerfile | 80 +++++++++++++++++++ automation/build/debian/12-arm64v8.dockerfile | 71 ++++++++++++++++ automation/build/debian/12-x86_32.dockerfile | 51 ++++++++++++ automation/build/debian/12-x86_64.dockerfile | 71 ++++++++++++++++ .../bookworm-arm64v8-arm32-gcc.dockerfile | 24 ------ .../build/debian/bookworm-arm64v8.dockerfile | 55 ------------- .../build/debian/bookworm-cppcheck.dockerfile | 54 ------------- .../build/debian/bookworm-i386.dockerfile | 50 ------------ automation/build/debian/bookworm.dockerfile | 57 ------------- automation/gitlab-ci/build.yaml | 68 ++++++++-------- automation/gitlab-ci/test.yaml | 36 +++++---- automation/scripts/containerize | 10 +-- automation/scripts/qemu-alpine-x86_64.sh | 4 +- automation/scripts/qemu-smoke-dom0-arm64.sh | 7 +- .../scripts/qemu-smoke-dom0less-arm64.sh | 5 +- 16 files changed, 371 insertions(+), 300 deletions(-) create mode 100644 automation/build/debian/12-arm64v8-arm32-gcc.dockerfile create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile create mode 100644 automation/build/debian/12-arm64v8.dockerfile create mode 100644 automation/build/debian/12-x86_32.dockerfile create mode 100644 automation/build/debian/12-x86_64.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile delete mode 100644 automation/build/debian/bookworm-i386.dockerfile delete mode 100644 automation/build/debian/bookworm.dockerfile -- 2.45.2
Rework the container to use heredocs for readability, and use apt-get --no-install-recommends to keep the size down. This reduces the size of the (uncompressed) container from 3.44GB to 1.67GB. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- automation/build/debian/12-x86_64.dockerfile | 68 ++++++++++++++++++++ automation/build/debian/bookworm.dockerfile | 57 ---------------- automation/gitlab-ci/build.yaml | 20 +++--- automation/gitlab-ci/test.yaml | 14 ++-- automation/scripts/containerize | 2 +- 5 files changed, 86 insertions(+), 75 deletions(-) create mode 100644 automation/build/debian/12-x86_64.dockerfile delete mode 100644 automation/build/debian/bookworm.dockerfile diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/amd64 debian:bookworm +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive + +# build depends +RUN <<EOF +#!/bin/bash + set -eu + + apt-get update + DEPS=( + # Xen + bison + build-essential + checkpolicy + clang + flex + + # Tools (general) + ca-certificates + expect + git-core + libnl-3-dev + pkg-config + wget + # libxenguest dombuilder + liblzma-dev + zlib1g-dev + # libacpi + acpica-tools + # libxl + uuid-dev + libyajl-dev + # RomBIOS + bcc + bin86 + # xentop + libncurses5-dev + # Python bindings + python3-dev + python3-setuptools + # Ocaml bindings/oxenstored + ocaml-nox + ocaml-findlib + # To build the documentation + pandoc + + # for test phase, qemu-smoke-* jobs + qemu-system-x86 + + # for qemu-alpine-x86_64-gcc + busybox-static + cpio + + # For *-efi jobs + ovmf + ) + + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER root +WORKDIR /build diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/amd64 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - zlib1g-dev \ - libncurses5-dev \ - python3-dev \ - python3-setuptools \ - uuid-dev \ - libyajl-dev \ - libaio-dev \ - libglib2.0-dev \ - clang \ - libpixman-1-dev \ - pkg-config \ - flex \ - bison \ - acpica-tools \ - bin86 \ - bcc \ - liblzma-dev \ - libnl-3-dev \ - ocaml-nox \ - libfindlib-ocaml-dev \ - markdown \ - transfig \ - pandoc \ - checkpolicy \ - wget \ - git \ - nasm \ - gnupg \ - apt-transport-https \ - golang \ - # for test phase, qemu-smoke-* jobs - qemu-system-x86 \ - expect \ - # For *-efi jobs - ovmf \ - # for test phase, qemu-alpine-* jobs - cpio \ - busybox-static \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ alpine-3.18-gcc-debug: CONTAINER: alpine:3.18 BUILD_QEMU_XEN: y -debian-bookworm-gcc-debug: +debian-12-x86_64-gcc-debug: extends: .gcc-x86-64-build-debug variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-clang-debug: +debian-12-x86_64-clang-debug: extends: .clang-x86-64-build-debug variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 debian-12-ppc64le-gcc-debug: extends: .gcc-ppc64le-cross-build-debug @@ -XXX,XX +XXX,XX @@ debian-12-x86_64-gcc-ibt: EXTRA_FIXED_RANDCONFIG: | CONFIG_XEN_IBT=y -debian-bookworm-clang: +debian-12-x86_64-clang: extends: .clang-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-gcc: +debian-12-x86_64-gcc: extends: .gcc-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-gcc-randconfig: +debian-12-x86_64-gcc-randconfig: extends: .gcc-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 RANDCONFIG: y debian-bookworm-32-clang-debug: diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -XXX,XX +XXX,XX @@ .qemu-x86-64: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 LOGFILE: qemu-smoke-x86-64.log artifacts: paths: @@ -XXX,XX +XXX,XX @@ build-each-commit-gcc: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 XEN_TARGET_ARCH: x86_64 CC: gcc script: @@ -XXX,XX +XXX,XX @@ qemu-smoke-x86-64-gcc: script: - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-x86-64-clang: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-clang-debug + - debian-12-x86_64-clang-debug qemu-smoke-x86-64-gcc-pvh: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-x86-64-clang-pvh: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-clang-debug + - debian-12-x86_64-clang-debug qemu-smoke-x86-64-gcc-efi: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-riscv64-gcc: extends: .qemu-riscv64 diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bullseye-riscv64) CONTAINER="${BASE}/debian:11-riscv64" ;; _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;; _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;; - _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;; + _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;; -- 2.45.2
Rework the container to be non-root, use heredocs for readability, and use apt-get --no-install-recommends to keep the size down. Rename the job to x86_32, to be consistent with XEN_TARGET_ARCH and the naming scheme of all the other CI jobs: ${VERSION}-${ARCH}-${BUILD_NAME} Remove build dependencies for building QEMU, as we don't do it since e305256e69b1 ("CI: Stop building QEMU in general"). Remove build dependencies for the documentation as we don't have to build it for every single arch. This reduces the size of the container from 2.22GB to 1.32Gb. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- automation/build/debian/12-x86_32.dockerfile | 51 +++++++++++++++++++ .../build/debian/bookworm-i386.dockerfile | 50 ------------------ automation/gitlab-ci/build.yaml | 8 +-- automation/scripts/containerize | 2 +- 4 files changed, 56 insertions(+), 55 deletions(-) create mode 100644 automation/build/debian/12-x86_32.dockerfile delete mode 100644 automation/build/debian/bookworm-i386.dockerfile diff --git a/automation/build/debian/12-x86_32.dockerfile b/automation/build/debian/12-x86_32.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-x86_32.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/i386 debian:bookworm +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive +ENV USER root + +# build depends +RUN <<EOF +#!/bin/bash + set -eu + + useradd --create-home user + + apt-get update + DEPS=( + # Xen + bison + build-essential + checkpolicy + clang + flex + + # Tools (general) + ca-certificates + git-core + pkg-config + wget + # libacpi + acpica-tools + # libxl + uuid-dev + libyajl-dev + # xentop + libncurses5-dev + # Python bindings + python3-dev + python3-setuptools + # Ocaml bindings/oxenstored + ocaml-nox + ocaml-findlib + ) + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER user +WORKDIR /build +ENTRYPOINT ["linux32"] diff --git a/automation/build/debian/bookworm-i386.dockerfile b/automation/build/debian/bookworm-i386.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-i386.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/i386 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -ENTRYPOINT ["linux32"] - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - zlib1g-dev \ - libncurses5-dev \ - python3-dev \ - python3-setuptools \ - uuid-dev \ - libyajl-dev \ - libaio-dev \ - libglib2.0-dev \ - clang \ - libpixman-1-dev \ - pkg-config \ - flex \ - bison \ - acpica-tools \ - bin86 \ - bcc \ - liblzma-dev \ - libc6-dev \ - libnl-3-dev \ - ocaml-nox \ - libfindlib-ocaml-dev \ - markdown \ - transfig \ - pandoc \ - checkpolicy \ - wget \ - git \ - nasm \ - apt-transport-https \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ debian-12-x86_64-gcc-randconfig: CONTAINER: debian:12-x86_64 RANDCONFIG: y -debian-bookworm-32-clang-debug: +debian-12-x86_32-clang-debug: extends: .clang-x86-32-build-debug variables: - CONTAINER: debian:bookworm-i386 + CONTAINER: debian:12-x86_32 -debian-bookworm-32-gcc-debug: +debian-12-x86_32-gcc-debug: extends: .gcc-x86-32-build-debug variables: - CONTAINER: debian:bookworm-i386 + CONTAINER: debian:12-x86_32 fedora-40-x86_64-gcc: extends: .gcc-x86-64-build diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;; _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;; _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; - _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;; + _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;; _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; -- 2.45.2
Rework the container to use heredocs for readability and use apt-get --no-install-recommends to keep the size down. Rename the job to debian-12-arm64-* to follow the naming scheme of all the other CI jobs. This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- automation/build/debian/12-arm64v8.dockerfile | 68 +++++++++++++++++++ .../build/debian/bookworm-arm64v8.dockerfile | 55 --------------- automation/gitlab-ci/build.yaml | 8 +-- automation/gitlab-ci/test.yaml | 4 +- automation/scripts/containerize | 2 +- 5 files changed, 75 insertions(+), 62 deletions(-) create mode 100644 automation/build/debian/12-arm64v8.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile diff --git a/automation/build/debian/12-arm64v8.dockerfile b/automation/build/debian/12-arm64v8.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-arm64v8.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/arm64/v8 debian:bookworm +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive + +# build depends +RUN <<EOF +#!/bin/bash + set -eu + + apt-get update + DEPS=( + # Xen + bison + build-essential + flex + # Flask + checkpolicy + + # Tools (general) + git-core + libext2fs-dev + libfdt-dev + libglib2.0-dev + libpixman-1-dev + pkg-config + wget + # libxenguest dombuilder + libbz2-dev + liblzma-dev + liblzo2-dev + libzstd-dev + # libacpi + acpica-tools + # libxl + uuid-dev + libyajl-dev + # Python bindings + python3-dev + python3-setuptools + # Golang bindings + golang-go + # Ocaml bindings/oxenstored + ocaml-nox + ocaml-findlib + + # for test phase, qemu-smoke-* jobs + busybox-static + ca-certificates + cpio + curl + device-tree-compiler + expect + u-boot-qemu + # for imagebuilder + file + u-boot-tools + ) + + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER root +WORKDIR /build diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-arm64v8.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/arm64/v8 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - zlib1g-dev \ - libncurses5-dev \ - python3-dev \ - python3-setuptools \ - uuid-dev \ - libyajl-dev \ - libaio-dev \ - libglib2.0-dev \ - clang \ - libpixman-1-dev \ - pkg-config \ - flex \ - bison \ - acpica-tools \ - libfdt-dev \ - bin86 \ - bcc \ - liblzma-dev \ - libnl-3-dev \ - ocaml-nox \ - libfindlib-ocaml-dev \ - markdown \ - transfig \ - pandoc \ - checkpolicy \ - wget \ - git \ - nasm \ - # for test phase, qemu-smoke-* jobs - u-boot-qemu \ - u-boot-tools \ - device-tree-compiler \ - curl \ - cpio \ - busybox-static \ - expect \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ debian-bookworm-gcc-arm32-debug-earlyprintk: # Arm builds -debian-bookworm-gcc-arm64: +debian-12-arm64-gcc: extends: .gcc-arm64-build variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 -debian-bookworm-gcc-debug-arm64: +debian-12-arm64-gcc-debug: extends: .gcc-arm64-build-debug variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 alpine-3.18-gcc-arm64: extends: .gcc-arm64-build diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -XXX,XX +XXX,XX @@ .qemu-arm64: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 LOGFILE: qemu-smoke-arm64.log artifacts: paths: @@ -XXX,XX +XXX,XX @@ .qemu-arm32: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 LOGFILE: qemu-smoke-arm32.log artifacts: paths: diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; - _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;; + _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;; _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;; _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;; -- 2.45.2
Rework the container to run as non-root, use heredocs for readability and use apt-get --no-install-recommends to keep the size down. Rename the CI jobs to debian-12-arm32-<variant> to follow the naming scheme of all the other CI jobs. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- .../debian/12-arm64v8-arm32-gcc.dockerfile | 28 +++++++++++++++++++ .../bookworm-arm64v8-arm32-gcc.dockerfile | 24 ---------------- automation/gitlab-ci/build.yaml | 20 ++++++------- automation/gitlab-ci/test.yaml | 14 +++++----- automation/scripts/containerize | 2 +- 5 files changed, 46 insertions(+), 42 deletions(-) create mode 100644 automation/build/debian/12-arm64v8-arm32-gcc.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile diff --git a/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/arm64/v8 debian:bookworm +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive +ENV CROSS_COMPILE /usr/bin/arm-linux-gnueabihf- + +RUN <<EOF +#!/bin/bash + set -eu + + useradd --create-home user + + apt-get update + DEPS=( + bison + build-essential + flex + gcc-arm-linux-gnueabihf + ) + apt-get --yes --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER user +WORKDIR /build diff --git a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/arm64/v8 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root -ENV CROSS_COMPILE /usr/bin/arm-linux-gnueabihf- - -RUN mkdir /build -WORKDIR /build - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - flex \ - bison \ - git \ - gcc-arm-linux-gnueabihf \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ debian-12-riscv64-gcc-debug: # Arm32 cross-build -debian-bookworm-gcc-arm32: +debian-12-arm32-gcc: extends: .gcc-arm32-cross-build variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm32-debug: +debian-12-arm32-gcc-debug: extends: .gcc-arm32-cross-build-debug variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm32-randconfig: +debian-12-arm32-gcc-randconfig: extends: .gcc-arm32-cross-build variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y RANDCONFIG: y -debian-bookworm-gcc-arm32-debug-staticmem: +debian-12-arm32-gcc-debug-staticmem: extends: .gcc-arm32-cross-build-debug variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y EXTRA_XEN_CONFIG: | CONFIG_EXPERT=y CONFIG_UNSUPPORTED=y CONFIG_STATIC_MEMORY=y -debian-bookworm-gcc-arm32-debug-earlyprintk: +debian-12-arm32-gcc-debug-earlyprintk: extends: .gcc-arm32-cross-build-debug variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y EXTRA_XEN_CONFIG: | CONFIG_EARLY_UART_CHOICE_PL011=y diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32 + - debian-12-arm32-gcc qemu-smoke-dom0less-arm32-gcc-debug: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug + - debian-12-arm32-gcc-debug qemu-smoke-dom0less-arm32-gcc-debug-staticmem: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-staticmem: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug-staticmem + - debian-12-arm32-gcc-debug-staticmem qemu-smoke-dom0less-arm32-gcc-debug-gzip: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-gzip: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug + - debian-12-arm32-gcc-debug qemu-smoke-dom0less-arm32-gcc-without-dom0: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-without-dom0: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32 + - debian-12-arm32-gcc qemu-smoke-dom0less-arm32-gcc-debug-without-dom0: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-without-dom0: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug + - debian-12-arm32-gcc-debug qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug-earlyprintk + - debian-12-arm32-gcc-debug-earlyprintk qemu-alpine-x86_64-gcc: extends: .qemu-x86-64 diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;; _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; - _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; + _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:12-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;; _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;; -- 2.45.2
Rework the container to build and run cppcheck as a normal user. Use heredocs for readability and use apt-get --no-install-recommends to keep the size down. Changed the libpcre3-dev dependency to libpcre3, as the -dev package is only needed for building, not for running. With the cleanups, the size of the container is reduced from 882MB to 782MB. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- I tried updating cppcheck to the latest upstream version (2.15.0) but it reports misra errors like: xen/common/sched/cpupool.c(0,0):internalError:error:Bailing out from analysis: Checking file failed: Failed to execute addon 'misra' - exitcode is 1 [...] xen/arch/arm/decode.c(220,10):misra-config:error:Because of missing configuration, misra checking is incomplete. There can be false negatives! Variable 'type' is unknown The output log xen-cppcheck.txt from job #8164274901 which uses cppcheck 2.15.0 can be found at: https://gitlab.com/xen-project/people/javimerino/xen/-/jobs/8164274901/artifacts/browse Therefore, I'm keeping cppcheck at 2.7, which aligns with what docs/misra/cppcheck.txt says is the last tested version. .../debian/12-arm64v8-cppcheck.dockerfile | 80 +++++++++++++++++++ .../build/debian/bookworm-cppcheck.dockerfile | 54 ------------- automation/gitlab-ci/build.yaml | 12 +-- automation/scripts/containerize | 2 +- 4 files changed, 87 insertions(+), 61 deletions(-) create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile diff --git a/automation/build/debian/12-arm64v8-cppcheck.dockerfile b/automation/build/debian/12-arm64v8-cppcheck.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-arm64v8-cppcheck.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/arm64/v8 debian:bookworm AS builder + +ENV DEBIAN_FRONTEND=noninteractive +ENV CPPCHECK_VERSION=2.7 + +# dependencies for cppcheck build +RUN <<EOF +#!/bin/bash + set -eu + + apt-get update + DEPS=( + build-essential + ca-certificates + curl + libpcre3-dev + python-is-python3 + ) + + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +RUN useradd --home /build --create-home user + +WORKDIR /build +USER user + +# cppcheck release build (see cppcheck readme.md) +RUN <<EOF +#!/bin/bash + set -eu + + curl -fsSL https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz | tar xvz + cd cppcheck-"$CPPCHECK_VERSION" + + MAKE_OPTS=( + MATCHCOMPILER=yes + DESTDIR=/build/out + FILESDIR="/usr/share/cppcheck" + HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function" + ) + make install -j$(nproc) "${MAKE_OPTS[@]}" +EOF + +FROM --platform=linux/arm64/v8 debian:bookworm +COPY --from=builder /build/out/usr/bin/cppcheck /usr/bin/cppcheck +COPY --from=builder /build/out/usr/share/cppcheck /usr/share/cppcheck + +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive +ENV USER root + +# dependencies for cppcheck analysis including Xen-only build/cross-build +RUN <<EOF +#!/bin/bash + set -eu + + useradd --create-home user + + apt-get update + DEPS=( + bison + build-essential + python-is-python3 + libpcre3 + flex + gcc-arm-linux-gnueabihf + gcc-x86-64-linux-gnu + ) + apt-get --yes --no-install-recommends install "${DEPS[@]}" + rm -rf /var/lib/apt/lists* +EOF + +USER user +WORKDIR /build diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile b/automation/build/debian/bookworm-cppcheck.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-cppcheck.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/arm64/v8 debian:bookworm AS builder - -ENV DEBIAN_FRONTEND=noninteractive -ENV CPPCHECK_VERSION=2.7 -ENV USER root - -# dependencies for cppcheck build -RUN apt-get update && \ - apt-get --quiet --yes install \ - curl \ - build-essential \ - python-is-python3 \ - libpcre3-dev - -RUN mkdir /build -WORKDIR /build - -# cppcheck release build (see cppcheck readme.md) -RUN curl -fsSLO https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz && \ - tar xvzf "$CPPCHECK_VERSION".tar.gz && \ - cd cppcheck-"$CPPCHECK_VERSION" && \ - make install -j$(nproc) \ - MATCHCOMPILER=yes \ - FILESDIR=/usr/share/cppcheck \ - HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function" - -FROM --platform=linux/arm64/v8 debian:bookworm -COPY --from=builder /usr/bin/cppcheck /usr/bin/cppcheck -COPY --from=builder /usr/share/cppcheck /usr/share/cppcheck - -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -# dependencies for cppcheck analysis including Xen-only build/cross-build -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - python-is-python3 \ - libpcre3-dev \ - flex \ - bison \ - gcc-arm-linux-gnueabihf \ - gcc-x86-64-linux-gnu \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ yocto-qemux86-64: # Cppcheck analysis jobs -debian-bookworm-gcc-cppcheck: +debian-12-x86_64-gcc-cppcheck: extends: .gcc-x86-64-cross-build variables: - CONTAINER: debian:bookworm-cppcheck + CONTAINER: debian:12-arm64v8-cppcheck CROSS_COMPILE: /usr/bin/x86_64-linux-gnu- CPPCHECK: y HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm32-cppcheck: +debian-12-arm32-gcc-cppcheck: extends: .gcc-arm32-cross-build variables: - CONTAINER: debian:bookworm-cppcheck + CONTAINER: debian:12-arm64v8-cppcheck CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf- CPPCHECK: y HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm64-cppcheck: +debian-12-arm64-gcc-cppcheck: extends: .gcc-arm64-build variables: - CONTAINER: debian:bookworm-cppcheck + CONTAINER: debian:12-arm64v8-cppcheck CPPCHECK: y HYPERVISOR_ONLY: y diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:12-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;; - _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; + _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;; _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;; _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;; _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;; -- 2.45.2
Use FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR so that GitLab CI clones xen using the user in the image, instead of as root[0]. In qemu-smoke-dom0*.sh and qemu-alpine-x86_64.sh, use fakeroot to create the rootfs images that untar a tarball that create character devices. cpio replicates the block and character devices, as well as preserving the uid and gid it sees in the current directory. fakeroot lets tar think that it is creating block and character devices, and all files are owned by root, but it is all smokes and mirrors for cpio. [0] https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1736 Signed-off-by: Javi Merino <javi.merino@cloud.com> --- Regarding building the rootfs, I have chosen to use a fakeroot subshell for the entire process. automation/scripts/qubes-x86-64.sh takes a different approach, it just uses fakeroot for the tar/cpio commands. I prefer to do it this way but I am happy to be overridden if `fakeroot -s ../save tar` and `fakeroot -i ../save cpio` are preferred. automation/build/debian/12-arm64v8.dockerfile | 5 ++++- automation/build/debian/12-x86_64.dockerfile | 5 ++++- automation/gitlab-ci/test.yaml | 4 ++++ automation/scripts/qemu-alpine-x86_64.sh | 4 +++- automation/scripts/qemu-smoke-dom0-arm64.sh | 7 +++++-- automation/scripts/qemu-smoke-dom0less-arm64.sh | 5 +++-- 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/automation/build/debian/12-arm64v8.dockerfile b/automation/build/debian/12-arm64v8.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/debian/12-arm64v8.dockerfile +++ b/automation/build/debian/12-arm64v8.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF #!/bin/bash set -eu + useradd --create-home user + apt-get update DEPS=( # Xen @@ -XXX,XX +XXX,XX @@ RUN <<EOF curl device-tree-compiler expect + fakeroot u-boot-qemu # for imagebuilder file @@ -XXX,XX +XXX,XX @@ RUN <<EOF rm -rf /var/lib/apt/lists* EOF -USER root +USER user WORKDIR /build diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/debian/12-x86_64.dockerfile +++ b/automation/build/debian/12-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF #!/bin/bash set -eu + useradd --create-home user + apt-get update DEPS=( # Xen @@ -XXX,XX +XXX,XX @@ RUN <<EOF # for qemu-alpine-x86_64-gcc busybox-static cpio + fakeroot # For *-efi jobs ovmf @@ -XXX,XX +XXX,XX @@ RUN <<EOF rm -rf /var/lib/apt/lists* EOF -USER root +USER user WORKDIR /build diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -XXX,XX +XXX,XX @@ .test-jobs-common: stage: test image: registry.gitlab.com/xen-project/xen/${CONTAINER} + variables: + # Clone xen as the user in the docker images, not root + # See https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1736 + FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: true .arm64-test-needs: &arm64-test-needs - alpine-3.18-arm64-rootfs-export diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/qemu-alpine-x86_64.sh +++ b/automation/scripts/qemu-alpine-x86_64.sh @@ -XXX,XX +XXX,XX @@ find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz cd .. # initrd.tar.gz is Dom0 rootfs +fakeroot <<EOF mkdir -p rootfs cd rootfs tar xvzf ../initrd.tar.gz @@ -XXX,XX +XXX,XX @@ chmod +x etc/local.d/xen.start echo "rc_verbose=yes" >> etc/rc.conf # rebuild Dom0 rootfs find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz -cd ../.. +EOF +cd .. cat >> binaries/pxelinux.0 << EOF #!ipxe diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/qemu-smoke-dom0-arm64.sh +++ b/automation/scripts/qemu-smoke-dom0-arm64.sh @@ -XXX,XX +XXX,XX @@ cd initrd find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz cd .. -mkdir -p rootfs +fakeroot <<EOF +mkdir rootfs cd rootfs + tar xvzf ../initrd.tar.gz mkdir proc mkdir run @@ -XXX,XX +XXX,XX @@ xl create -c /root/test.cfg chmod +x etc/local.d/xen.start echo "rc_verbose=yes" >> etc/rc.conf find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz -cd ../.. +EOF +cd .. # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh @@ -XXX,XX +XXX,XX @@ find . | cpio --create --format='newc' | gzip > ../binaries/initrd cd .. # DOM0 rootfs -mkdir -p rootfs +fakeroot <<EOF +mkdir rootfs cd rootfs tar xzf ../binaries/initrd.tar.gz mkdir proc @@ -XXX,XX +XXX,XX @@ ${dom0_check} chmod +x etc/local.d/xen.start echo "rc_verbose=yes" >> etc/rc.conf find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz -cd .. +EOF # ImageBuilder echo 'MEMORY_START="0x40000000" -- 2.45.2
This is v2 of [0], to refresh the remaining Debian 12 containers. The containers now use heredocs for readability, and use "apt-get --no-install-recommends" to minimize the installation of unnecessary packages. All containers except Debian 12 arm64 and x86_64 run as a normal user. Debian 12 arm64 and x86_64 have been kept running as root as Stefano asked for it as it would break the xilinx workers that are currently in flux. The updated containers have been tested in https://gitlab.com/xen-project/people/javimerino/xen/-/pipelines/1526520801 Changes since v1[0]: - In containerfiles, repeat the "LABEL" intruction for each label and avoid the backslash at the end of lines. - Use ENV VAR=value consistently in dockerfiles. - Dropped the patch that moved the Debian 12 arm64 and x86_64 containers to run as a normal user. - Added a patch to drop the "-y" in "apt-get update" - Move libnl-3-dev to the libxl section in the Debian 12 x86_64 dockerfile. - Add missing requires for libxenguest dombuilder in the Debian 12 x86_64 dockerfile - Move the expect dependency to the section for tests [0] https://lore.kernel.org/xen-devel/cover.1729760501.git.javi.merino@cloud.com Javi Merino (6): CI: Refresh the Debian 12 x86_64 container CI: Refresh the Debian 12 x86_32 container CI: Refresh the Debian 12 arm64 container CI: Refresh the Debian 12 arm32 cross compile container CI: Refresh the Debian 12 cppcheck container CI: Don't use -y with apt-get update automation/build/debian/11-ppc64le.dockerfile | 2 +- automation/build/debian/11-riscv64.dockerfile | 2 +- .../debian/12-arm64v8-arm32-gcc.dockerfile | 28 +++++++ .../debian/12-arm64v8-cppcheck.dockerfile | 79 +++++++++++++++++++ automation/build/debian/12-arm64v8.dockerfile | 68 ++++++++++++++++ automation/build/debian/12-ppc64le.dockerfile | 2 +- automation/build/debian/12-riscv64.dockerfile | 2 +- automation/build/debian/12-x86_32.dockerfile | 50 ++++++++++++ .../build/debian/12-x86_64-gcc-ibt.dockerfile | 4 +- automation/build/debian/12-x86_64.dockerfile | 71 +++++++++++++++++ .../bookworm-arm64v8-arm32-gcc.dockerfile | 24 ------ .../build/debian/bookworm-arm64v8.dockerfile | 55 ------------- .../build/debian/bookworm-cppcheck.dockerfile | 54 ------------- .../build/debian/bookworm-i386.dockerfile | 50 ------------ automation/build/debian/bookworm.dockerfile | 57 ------------- .../build/ubuntu/16.04-x86_64.dockerfile | 2 +- .../build/ubuntu/18.04-x86_64.dockerfile | 2 +- .../build/ubuntu/20.04-x86_64.dockerfile | 2 +- .../build/ubuntu/22.04-x86_64.dockerfile | 2 +- .../build/ubuntu/24.04-x86_64.dockerfile | 2 +- automation/gitlab-ci/build.yaml | 68 ++++++++-------- automation/gitlab-ci/test.yaml | 32 ++++---- automation/scripts/containerize | 10 +-- 23 files changed, 362 insertions(+), 306 deletions(-) create mode 100644 automation/build/debian/12-arm64v8-arm32-gcc.dockerfile create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile create mode 100644 automation/build/debian/12-arm64v8.dockerfile create mode 100644 automation/build/debian/12-x86_32.dockerfile create mode 100644 automation/build/debian/12-x86_64.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile delete mode 100644 automation/build/debian/bookworm-i386.dockerfile delete mode 100644 automation/build/debian/bookworm.dockerfile -- 2.45.2
Rework the container to use heredocs for readability, and use apt-get --no-install-recommends to keep the size down. This reduces the size of the (uncompressed) container from 3.44GB to 1.97GB. The container is left running the builds and tests as root to avoid breaking the xilinx runners. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- Changes in dependencies: $ diff -u <(git show origin/staging:automation/build/debian/bookworm.dockerfile | awk '/&&/{f=0};f;/apt-get \-\-quiet/{f=1};' | perl -ne 's/ \\$//;s/^ +//; /^#/ or print' | sort) <(awk '/^ +\)/{f=0};f;/DEPS=\(/{f=1}' automation/build/debian/12-x86_64.dockerfile | perl -ne 's/^\s+//; /^#/ or print' | sort) --- /proc/self/fd/16 2024-11-05 14:06:10.160095997 +0000 +++ /proc/self/fd/17 2024-11-05 14:06:10.160095997 +0000 @@ -XXX,XX +XXX,XX @@ acpica-tools -apt-transport-https bcc bin86 bison build-essential busybox-static +ca-certificates checkpolicy clang cpio expect flex -git -gnupg -golang -libaio-dev -libfindlib-ocaml-dev -libglib2.0-dev +git-core +golang-go +libbz2-dev liblzma-dev +liblzo2-dev libncurses5-dev libnl-3-dev -libpixman-1-dev libyajl-dev -markdown -nasm +libzstd-dev +ocaml-findlib ocaml-nox ovmf -pandoc pkg-config python3-dev python3-setuptools qemu-system-x86 -transfig uuid-dev automation/build/debian/12-x86_64.dockerfile | 71 ++++++++++++++++++++ automation/build/debian/bookworm.dockerfile | 57 ---------------- automation/gitlab-ci/build.yaml | 20 +++--- automation/gitlab-ci/test.yaml | 14 ++-- automation/scripts/containerize | 2 +- 5 files changed, 89 insertions(+), 75 deletions(-) create mode 100644 automation/build/debian/12-x86_64.dockerfile delete mode 100644 automation/build/debian/bookworm.dockerfile diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/amd64 debian:bookworm +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive + +# build depends +RUN <<EOF +#!/bin/bash + set -eu + + apt-get update + DEPS=( + # Xen + bison + build-essential + checkpolicy + clang + flex + + # Tools (general) + ca-certificates + git-core + pkg-config + wget + # libxenguest dombuilder + libbz2-dev + liblzma-dev + liblzo2-dev + libzstd-dev + zlib1g-dev + # libacpi + acpica-tools + # libxl + uuid-dev + libnl-3-dev + libyajl-dev + # RomBIOS + bcc + bin86 + # xentop + libncurses5-dev + # Python bindings + python3-dev + python3-setuptools + # Golang bindings + golang-go + # Ocaml bindings/oxenstored + ocaml-nox + ocaml-findlib + + # for test phase, qemu-smoke-* jobs + expect + qemu-system-x86 + + # for qemu-alpine-x86_64-gcc + busybox-static + cpio + + # For *-efi jobs + ovmf + ) + + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER root +WORKDIR /build diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/amd64 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - zlib1g-dev \ - libncurses5-dev \ - python3-dev \ - python3-setuptools \ - uuid-dev \ - libyajl-dev \ - libaio-dev \ - libglib2.0-dev \ - clang \ - libpixman-1-dev \ - pkg-config \ - flex \ - bison \ - acpica-tools \ - bin86 \ - bcc \ - liblzma-dev \ - libnl-3-dev \ - ocaml-nox \ - libfindlib-ocaml-dev \ - markdown \ - transfig \ - pandoc \ - checkpolicy \ - wget \ - git \ - nasm \ - gnupg \ - apt-transport-https \ - golang \ - # for test phase, qemu-smoke-* jobs - qemu-system-x86 \ - expect \ - # For *-efi jobs - ovmf \ - # for test phase, qemu-alpine-* jobs - cpio \ - busybox-static \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ alpine-3.18-gcc-debug: CONFIG_UNSUPPORTED=y CONFIG_ARGO=y -debian-bookworm-gcc-debug: +debian-12-x86_64-gcc-debug: extends: .gcc-x86-64-build-debug variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-clang-debug: +debian-12-x86_64-clang-debug: extends: .clang-x86-64-build-debug variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 debian-12-ppc64le-gcc-debug: extends: .gcc-ppc64le-cross-build-debug @@ -XXX,XX +XXX,XX @@ debian-12-x86_64-gcc-ibt: EXTRA_FIXED_RANDCONFIG: | CONFIG_XEN_IBT=y -debian-bookworm-clang: +debian-12-x86_64-clang: extends: .clang-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-gcc: +debian-12-x86_64-gcc: extends: .gcc-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-gcc-randconfig: +debian-12-x86_64-gcc-randconfig: extends: .gcc-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 RANDCONFIG: y debian-bookworm-32-clang-debug: diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -XXX,XX +XXX,XX @@ .qemu-x86-64: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 LOGFILE: qemu-smoke-x86-64.log artifacts: paths: @@ -XXX,XX +XXX,XX @@ build-each-commit-gcc: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 XEN_TARGET_ARCH: x86_64 CC: gcc script: @@ -XXX,XX +XXX,XX @@ qemu-smoke-x86-64-gcc: script: - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-x86-64-clang: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-clang-debug + - debian-12-x86_64-clang-debug qemu-smoke-x86-64-gcc-pvh: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-x86-64-clang-pvh: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-clang-debug + - debian-12-x86_64-clang-debug qemu-smoke-x86-64-gcc-efi: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-riscv64-gcc: extends: .qemu-riscv64 diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bullseye-riscv64) CONTAINER="${BASE}/debian:11-riscv64" ;; _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;; _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;; - _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;; + _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;; -- 2.45.2
Rework the container to be non-root, use heredocs for readability, and use apt-get --no-install-recommends to keep the size down. Rename the job to x86_32, to be consistent with XEN_TARGET_ARCH and the naming scheme of all the other CI jobs: ${VERSION}-${ARCH}-${BUILD_NAME} Remove build dependencies for building QEMU, as we don't do it since e305256e69b1 ("CI: Stop building QEMU in general"). Remove build dependencies for the documentation as we don't have to build it for every single arch. This reduces the size of the container from 2.22GB to 1.32Gb. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- automation/build/debian/12-x86_32.dockerfile | 50 +++++++++++++++++++ .../build/debian/bookworm-i386.dockerfile | 50 ------------------- automation/gitlab-ci/build.yaml | 8 +-- automation/scripts/containerize | 2 +- 4 files changed, 55 insertions(+), 55 deletions(-) create mode 100644 automation/build/debian/12-x86_32.dockerfile delete mode 100644 automation/build/debian/bookworm-i386.dockerfile diff --git a/automation/build/debian/12-x86_32.dockerfile b/automation/build/debian/12-x86_32.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-x86_32.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/i386 debian:bookworm +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive + +# build depends +RUN <<EOF +#!/bin/bash + set -eu + + useradd --create-home user + + apt-get update + DEPS=( + # Xen + bison + build-essential + checkpolicy + clang + flex + + # Tools (general) + ca-certificates + git-core + pkg-config + wget + # libacpi + acpica-tools + # libxl + uuid-dev + libyajl-dev + # xentop + libncurses5-dev + # Python bindings + python3-dev + python3-setuptools + # Ocaml bindings/oxenstored + ocaml-nox + ocaml-findlib + ) + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER user +WORKDIR /build +ENTRYPOINT ["linux32"] diff --git a/automation/build/debian/bookworm-i386.dockerfile b/automation/build/debian/bookworm-i386.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-i386.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/i386 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -ENTRYPOINT ["linux32"] - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - zlib1g-dev \ - libncurses5-dev \ - python3-dev \ - python3-setuptools \ - uuid-dev \ - libyajl-dev \ - libaio-dev \ - libglib2.0-dev \ - clang \ - libpixman-1-dev \ - pkg-config \ - flex \ - bison \ - acpica-tools \ - bin86 \ - bcc \ - liblzma-dev \ - libc6-dev \ - libnl-3-dev \ - ocaml-nox \ - libfindlib-ocaml-dev \ - markdown \ - transfig \ - pandoc \ - checkpolicy \ - wget \ - git \ - nasm \ - apt-transport-https \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ debian-12-x86_64-gcc-randconfig: CONTAINER: debian:12-x86_64 RANDCONFIG: y -debian-bookworm-32-clang-debug: +debian-12-x86_32-clang-debug: extends: .clang-x86-32-build-debug variables: - CONTAINER: debian:bookworm-i386 + CONTAINER: debian:12-x86_32 -debian-bookworm-32-gcc-debug: +debian-12-x86_32-gcc-debug: extends: .gcc-x86-32-build-debug variables: - CONTAINER: debian:bookworm-i386 + CONTAINER: debian:12-x86_32 fedora-40-x86_64-gcc: extends: .gcc-x86-64-build diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;; _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;; _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; - _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;; + _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;; _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; -- 2.45.2
Rework the container to use heredocs for readability and use apt-get --no-install-recommends to keep the size down. Rename the job to debian-12-arm64-* to follow the naming scheme of all the other CI jobs. This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB. The container is left running the builds and tests as root to avoid breaking the xilinx runners. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- automation/build/debian/12-arm64v8.dockerfile | 68 +++++++++++++++++++ .../build/debian/bookworm-arm64v8.dockerfile | 55 --------------- automation/gitlab-ci/build.yaml | 8 +-- automation/gitlab-ci/test.yaml | 4 +- automation/scripts/containerize | 2 +- 5 files changed, 75 insertions(+), 62 deletions(-) create mode 100644 automation/build/debian/12-arm64v8.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile diff --git a/automation/build/debian/12-arm64v8.dockerfile b/automation/build/debian/12-arm64v8.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-arm64v8.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/arm64/v8 debian:bookworm +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive + +# build depends +RUN <<EOF +#!/bin/bash + set -eu + + apt-get update + DEPS=( + # Xen + bison + build-essential + flex + # Flask + checkpolicy + + # Tools (general) + git-core + libext2fs-dev + libfdt-dev + libglib2.0-dev + libpixman-1-dev + pkg-config + wget + # libxenguest dombuilder + libbz2-dev + liblzma-dev + liblzo2-dev + libzstd-dev + # libacpi + acpica-tools + # libxl + uuid-dev + libyajl-dev + # Python bindings + python3-dev + python3-setuptools + # Golang bindings + golang-go + # Ocaml bindings/oxenstored + ocaml-nox + ocaml-findlib + + # for test phase, qemu-smoke-* jobs + busybox-static + ca-certificates + cpio + curl + device-tree-compiler + expect + u-boot-qemu + # for imagebuilder + file + u-boot-tools + ) + + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER root +WORKDIR /build diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-arm64v8.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/arm64/v8 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - zlib1g-dev \ - libncurses5-dev \ - python3-dev \ - python3-setuptools \ - uuid-dev \ - libyajl-dev \ - libaio-dev \ - libglib2.0-dev \ - clang \ - libpixman-1-dev \ - pkg-config \ - flex \ - bison \ - acpica-tools \ - libfdt-dev \ - bin86 \ - bcc \ - liblzma-dev \ - libnl-3-dev \ - ocaml-nox \ - libfindlib-ocaml-dev \ - markdown \ - transfig \ - pandoc \ - checkpolicy \ - wget \ - git \ - nasm \ - # for test phase, qemu-smoke-* jobs - u-boot-qemu \ - u-boot-tools \ - device-tree-compiler \ - curl \ - cpio \ - busybox-static \ - expect \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ debian-bookworm-gcc-arm32-debug-earlyprintk: # Arm builds -debian-bookworm-gcc-arm64: +debian-12-arm64-gcc: extends: .gcc-arm64-build variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 -debian-bookworm-gcc-debug-arm64: +debian-12-arm64-gcc-debug: extends: .gcc-arm64-build-debug variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 alpine-3.18-gcc-arm64: extends: .gcc-arm64-build diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -XXX,XX +XXX,XX @@ .qemu-arm64: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 LOGFILE: qemu-smoke-arm64.log artifacts: paths: @@ -XXX,XX +XXX,XX @@ .qemu-arm32: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm-arm64v8 + CONTAINER: debian:12-arm64v8 LOGFILE: qemu-smoke-arm32.log artifacts: paths: diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; - _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;; + _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;; _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;; _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;; -- 2.45.2
Rework the container to user heredocs for readability and use apt-get --no-install-recommends to keep the size down. Rename the CI jobs to debian-12-arm32-<variant> to follow the naming scheme of all the other CI jobs. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- .../debian/12-arm64v8-arm32-gcc.dockerfile | 28 +++++++++++++++++++ .../bookworm-arm64v8-arm32-gcc.dockerfile | 24 ---------------- automation/gitlab-ci/build.yaml | 20 ++++++------- automation/gitlab-ci/test.yaml | 14 +++++----- automation/scripts/containerize | 2 +- 5 files changed, 46 insertions(+), 42 deletions(-) create mode 100644 automation/build/debian/12-arm64v8-arm32-gcc.dockerfile delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile diff --git a/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/arm64/v8 debian:bookworm +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive +ENV CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- + +RUN <<EOF +#!/bin/bash + set -eu + + useradd --create-home user + + apt-get update + DEPS=( + bison + build-essential + flex + gcc-arm-linux-gnueabihf + ) + apt-get --yes --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER user +WORKDIR /build diff --git a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/arm64/v8 debian:bookworm -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root -ENV CROSS_COMPILE /usr/bin/arm-linux-gnueabihf- - -RUN mkdir /build -WORKDIR /build - -# build depends -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - flex \ - bison \ - git \ - gcc-arm-linux-gnueabihf \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ debian-12-riscv64-gcc-debug: # Arm32 cross-build -debian-bookworm-gcc-arm32: +debian-12-arm32-gcc: extends: .gcc-arm32-cross-build variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm32-debug: +debian-12-arm32-gcc-debug: extends: .gcc-arm32-cross-build-debug variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm32-randconfig: +debian-12-arm32-gcc-randconfig: extends: .gcc-arm32-cross-build variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y RANDCONFIG: y -debian-bookworm-gcc-arm32-debug-staticmem: +debian-12-arm32-gcc-debug-staticmem: extends: .gcc-arm32-cross-build-debug variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y EXTRA_XEN_CONFIG: | CONFIG_EXPERT=y CONFIG_UNSUPPORTED=y CONFIG_STATIC_MEMORY=y -debian-bookworm-gcc-arm32-debug-earlyprintk: +debian-12-arm32-gcc-debug-earlyprintk: extends: .gcc-arm32-cross-build-debug variables: - CONTAINER: debian:bookworm-arm64v8-arm32-gcc + CONTAINER: debian:12-arm64v8-arm32-gcc HYPERVISOR_ONLY: y EXTRA_XEN_CONFIG: | CONFIG_EARLY_UART_CHOICE_PL011=y diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32 + - debian-12-arm32-gcc qemu-smoke-dom0less-arm32-gcc-debug: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug + - debian-12-arm32-gcc-debug qemu-smoke-dom0less-arm32-gcc-debug-staticmem: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-staticmem: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug-staticmem + - debian-12-arm32-gcc-debug-staticmem qemu-smoke-dom0less-arm32-gcc-debug-gzip: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-gzip: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug + - debian-12-arm32-gcc-debug qemu-smoke-dom0less-arm32-gcc-without-dom0: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-without-dom0: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32 + - debian-12-arm32-gcc qemu-smoke-dom0less-arm32-gcc-debug-without-dom0: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-without-dom0: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug + - debian-12-arm32-gcc-debug qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk: extends: .qemu-arm32 @@ -XXX,XX +XXX,XX @@ qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk: - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE} needs: - *arm32-test-needs - - debian-bookworm-gcc-arm32-debug-earlyprintk + - debian-12-arm32-gcc-debug-earlyprintk qemu-alpine-x86_64-gcc: extends: .qemu-x86-64 diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;; _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; - _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; + _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:12-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;; _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;; -- 2.45.2
Rework the container to build and run cppcheck as a normal user. User heredocs for readability and use apt-get --no-install-recommends to keep the size down. Changed the libpcre3-dev dependency to libpcre3, as the -dev package is only needed for building, not for running. With the cleanups, the size of the container is reduced from 882MB to 782MB. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- .../debian/12-arm64v8-cppcheck.dockerfile | 79 +++++++++++++++++++ .../build/debian/bookworm-cppcheck.dockerfile | 54 ------------- automation/gitlab-ci/build.yaml | 12 +-- automation/scripts/containerize | 2 +- 4 files changed, 86 insertions(+), 61 deletions(-) create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile diff --git a/automation/build/debian/12-arm64v8-cppcheck.dockerfile b/automation/build/debian/12-arm64v8-cppcheck.dockerfile new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/automation/build/debian/12-arm64v8-cppcheck.dockerfile @@ -XXX,XX +XXX,XX @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/arm64/v8 debian:bookworm AS builder + +ENV DEBIAN_FRONTEND=noninteractive +ENV CPPCHECK_VERSION=2.7 + +# dependencies for cppcheck build +RUN <<EOF +#!/bin/bash + set -eu + + apt-get update + DEPS=( + build-essential + ca-certificates + curl + libpcre3-dev + python-is-python3 + ) + + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +RUN useradd --home /build --create-home user + +WORKDIR /build +USER user + +# cppcheck release build (see cppcheck readme.md) +RUN <<EOF +#!/bin/bash + set -eu + + curl -fsSL https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz | tar xvz + cd cppcheck-"$CPPCHECK_VERSION" + + MAKE_OPTS=( + MATCHCOMPILER=yes + DESTDIR=/build/out + FILESDIR="/usr/share/cppcheck" + HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function" + ) + make install -j$(nproc) "${MAKE_OPTS[@]}" +EOF + +FROM --platform=linux/arm64/v8 debian:bookworm +COPY --from=builder /build/out/usr/bin/cppcheck /usr/bin/cppcheck +COPY --from=builder /build/out/usr/share/cppcheck /usr/share/cppcheck + +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive + +# dependencies for cppcheck analysis including Xen-only build/cross-build +RUN <<EOF +#!/bin/bash + set -eu + + useradd --create-home user + + apt-get update + DEPS=( + bison + build-essential + python-is-python3 + libpcre3 + flex + gcc-arm-linux-gnueabihf + gcc-x86-64-linux-gnu + ) + apt-get --yes --no-install-recommends install "${DEPS[@]}" + rm -rf /var/lib/apt/lists* +EOF + +USER user +WORKDIR /build diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile b/automation/build/debian/bookworm-cppcheck.dockerfile deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/automation/build/debian/bookworm-cppcheck.dockerfile +++ /dev/null @@ -XXX,XX +XXX,XX @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/arm64/v8 debian:bookworm AS builder - -ENV DEBIAN_FRONTEND=noninteractive -ENV CPPCHECK_VERSION=2.7 -ENV USER root - -# dependencies for cppcheck build -RUN apt-get update && \ - apt-get --quiet --yes install \ - curl \ - build-essential \ - python-is-python3 \ - libpcre3-dev - -RUN mkdir /build -WORKDIR /build - -# cppcheck release build (see cppcheck readme.md) -RUN curl -fsSLO https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz && \ - tar xvzf "$CPPCHECK_VERSION".tar.gz && \ - cd cppcheck-"$CPPCHECK_VERSION" && \ - make install -j$(nproc) \ - MATCHCOMPILER=yes \ - FILESDIR=/usr/share/cppcheck \ - HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function" - -FROM --platform=linux/arm64/v8 debian:bookworm -COPY --from=builder /usr/bin/cppcheck /usr/bin/cppcheck -COPY --from=builder /usr/share/cppcheck /usr/share/cppcheck - -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" - -ENV DEBIAN_FRONTEND=noninteractive -ENV USER root - -RUN mkdir /build -WORKDIR /build - -# dependencies for cppcheck analysis including Xen-only build/cross-build -RUN apt-get update && \ - apt-get --quiet --yes install \ - build-essential \ - python-is-python3 \ - libpcre3-dev \ - flex \ - bison \ - gcc-arm-linux-gnueabihf \ - gcc-x86-64-linux-gnu \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index XXXXXXX..XXXXXXX 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -XXX,XX +XXX,XX @@ yocto-qemux86-64: # Cppcheck analysis jobs -debian-bookworm-gcc-cppcheck: +debian-12-x86_64-gcc-cppcheck: extends: .gcc-x86-64-cross-build variables: - CONTAINER: debian:bookworm-cppcheck + CONTAINER: debian:12-arm64v8-cppcheck CROSS_COMPILE: /usr/bin/x86_64-linux-gnu- CPPCHECK: y HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm32-cppcheck: +debian-12-arm32-gcc-cppcheck: extends: .gcc-arm32-cross-build variables: - CONTAINER: debian:bookworm-cppcheck + CONTAINER: debian:12-arm64v8-cppcheck CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf- CPPCHECK: y HYPERVISOR_ONLY: y -debian-bookworm-gcc-arm64-cppcheck: +debian-12-arm64-gcc-cppcheck: extends: .gcc-arm64-build variables: - CONTAINER: debian:bookworm-cppcheck + CONTAINER: debian:12-arm64v8-cppcheck CPPCHECK: y HYPERVISOR_ONLY: y diff --git a/automation/scripts/containerize b/automation/scripts/containerize index XXXXXXX..XXXXXXX 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -XXX,XX +XXX,XX @@ case "_${CONTAINER}" in _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:12-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;; - _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;; + _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;; _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;; _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;; _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;; -- 2.45.2
apt-get update refreshes the package lists. -y doesn't do anything here. It is needed for "apt-get install" or "apt-get upgrade" but not for apt-get update. Drop it. Signed-off-by: Javi Merino <javi.merino@cloud.com> --- automation/build/debian/11-ppc64le.dockerfile | 2 +- automation/build/debian/11-riscv64.dockerfile | 2 +- automation/build/debian/12-ppc64le.dockerfile | 2 +- automation/build/debian/12-riscv64.dockerfile | 2 +- automation/build/debian/12-x86_64-gcc-ibt.dockerfile | 4 ++-- automation/build/ubuntu/16.04-x86_64.dockerfile | 2 +- automation/build/ubuntu/18.04-x86_64.dockerfile | 2 +- automation/build/ubuntu/20.04-x86_64.dockerfile | 2 +- automation/build/ubuntu/22.04-x86_64.dockerfile | 2 +- automation/build/ubuntu/24.04-x86_64.dockerfile | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/automation/build/debian/11-ppc64le.dockerfile b/automation/build/debian/11-ppc64le.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/debian/11-ppc64le.dockerfile +++ b/automation/build/debian/11-ppc64le.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/debian/11-riscv64.dockerfile b/automation/build/debian/11-riscv64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/debian/11-riscv64.dockerfile +++ b/automation/build/debian/11-riscv64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/debian/12-ppc64le.dockerfile b/automation/build/debian/12-ppc64le.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/debian/12-ppc64le.dockerfile +++ b/automation/build/debian/12-ppc64le.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/debian/12-riscv64.dockerfile b/automation/build/debian/12-riscv64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/debian/12-riscv64.dockerfile +++ b/automation/build/debian/12-riscv64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/debian/12-x86_64-gcc-ibt.dockerfile b/automation/build/debian/12-x86_64-gcc-ibt.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/debian/12-x86_64-gcc-ibt.dockerfile +++ b/automation/build/debian/12-x86_64-gcc-ibt.dockerfile @@ -XXX,XX +XXX,XX @@ ENV DEBIAN_FRONTEND=noninteractive RUN <<EOF #!/bin/bash set -e - apt-get -y update + apt-get update DEPS=( bison @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/ubuntu/16.04-x86_64.dockerfile b/automation/build/ubuntu/16.04-x86_64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/ubuntu/16.04-x86_64.dockerfile +++ b/automation/build/ubuntu/16.04-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/ubuntu/18.04-x86_64.dockerfile b/automation/build/ubuntu/18.04-x86_64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/ubuntu/18.04-x86_64.dockerfile +++ b/automation/build/ubuntu/18.04-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/ubuntu/20.04-x86_64.dockerfile b/automation/build/ubuntu/20.04-x86_64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/ubuntu/20.04-x86_64.dockerfile +++ b/automation/build/ubuntu/20.04-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/ubuntu/22.04-x86_64.dockerfile b/automation/build/ubuntu/22.04-x86_64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/ubuntu/22.04-x86_64.dockerfile +++ b/automation/build/ubuntu/22.04-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen diff --git a/automation/build/ubuntu/24.04-x86_64.dockerfile b/automation/build/ubuntu/24.04-x86_64.dockerfile index XXXXXXX..XXXXXXX 100644 --- a/automation/build/ubuntu/24.04-x86_64.dockerfile +++ b/automation/build/ubuntu/24.04-x86_64.dockerfile @@ -XXX,XX +XXX,XX @@ RUN <<EOF useradd --create-home user - apt-get -y update + apt-get update DEPS=( # Xen -- 2.45.2