diff --git a/integrations/docker/build-all.sh b/integrations/docker/build-all.sh index 5b684b63a063b3..34371e00036acc 100755 --- a/integrations/docker/build-all.sh +++ b/integrations/docker/build-all.sh @@ -25,19 +25,33 @@ set -e SUB_PATH="*" ALL_ARGS="" +SKIP_BUILT=0 for i in "$@"; do case $i in + -h | --help) + echo "Supported arguments:" + echo " -h/--help This help text" + echo " -p/--path sub-path in integrations/docker/images to build (defaults to * for everything)" + echo " -skip-built Do not rebuild images already found as built" + exit 0 + ;; -p=* | --path=*) SUB_PATH="${i#*=}" ;; + --skip-built) + SKIP_BUILT=1 + ;; *) ALL_ARGS="$ALL_ARGS ${i#*=}" ;; esac done +VERSION=${DOCKER_BUILD_VERSION:-$(sed 's/ .*//' "$(git rev-parse --show-toplevel)"/integrations/docker/images/base/chip-build/version)} + echo "SUB_PATH: $SUB_PATH" +echo "VERSION: $VERSION" function build_image() { PARSE_PATH=$1 @@ -46,8 +60,17 @@ function build_image() { echo "PARSE_PATH: $PARSE_PATH" echo "ARGS_TO_PASS: $ARGS_TO_PASS" - find "$(git rev-parse --show-toplevel)"/integrations/docker/images/$PARSE_PATH -name Dockerfile ! -path "*chip-cert-bins/*" | while read -r dockerfile; do - echo "$(dirname "$dockerfile")" + find "$(git rev-parse --show-toplevel)"/integrations/docker/images/$PARSE_PATH -name Dockerfile ! -path "*chip-cert-bins/*" | sort | while read -r dockerfile; do + # Images are of the form `ghcr.io/project-chip/{name}` and tagged as "${VERSION}" + DOCKER_PATH=$(dirname $dockerfile) # Drop the file name + IMAGE_NAME="ghcr.io/project-chip/${DOCKER_PATH##*/}:${VERSION}" # Drop directory prefix + + if [ $SKIP_BUILT -ne 0 ] && docker image inspect "${IMAGE_NAME}" >/dev/null 2>&1; then + echo "Image ${IMAGE_NAME} already exists. Skipping build" + continue + fi + + echo "BUILDING $(dirname "$dockerfile") (i.e. ${IMAGE_NAME})" pushd "$(dirname "$dockerfile")" >/dev/null ./build.sh "$ARGS_TO_PASS" popd >/dev/null diff --git a/integrations/docker/images/base/chip-build-minimal/Dockerfile b/integrations/docker/images/base/chip-build-minimal/Dockerfile index f44700ad912842..c372f040585728 100644 --- a/integrations/docker/images/base/chip-build-minimal/Dockerfile +++ b/integrations/docker/images/base/chip-build-minimal/Dockerfile @@ -1,27 +1,19 @@ # This minimal build image is intentionally not based on chip-build -FROM ubuntu:focal +FROM ubuntu:24.04 LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip -# ARG NINJA_VERSION=v1.11.1 -ARG GN_HASH=5a004f9427a050c6c393c07ddb85cba8ff3849fa - RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - build-essential ca-certificates git pkg-config python3-venv ninja-build \ + build-essential \ + ca-certificates \ + generate-ninja \ + git pkg-config \ + ninja-build \ + python3-venv \ && git config --global advice.detachedHead false -# RUN set -x && cd /var/tmp \ -# && git clone --branch "$NINJA_VERSION" https://github.com/ninja-build/ninja.git \ -# && ( cd ninja && ./configure.py --bootstrap && install -m 0755 ninja /usr/local/bin/ ) \ -# && rm -rf ninja - -RUN set -x && cd /var/tmp \ - && git clone https://gn.googlesource.com/gn \ - && ( cd gn && git checkout "$GN_HASH" && CXX=g++ build/gen.py && ninja -C out && install -m 0755 out/gn /usr/local/bin/ ) \ - && rm -rf gn - # CHIP build dependencies RUN set -x \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/integrations/docker/images/base/chip-build/Dockerfile b/integrations/docker/images/base/chip-build/Dockerfile index a2f83fc275a4b0..52009834302249 100644 --- a/integrations/docker/images/base/chip-build/Dockerfile +++ b/integrations/docker/images/base/chip-build/Dockerfile @@ -1,5 +1,4 @@ -# start with Ubuntu 20.04LTS -FROM ubuntu:focal +FROM ubuntu:24.04 LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip VOLUME "/var/source" @@ -30,7 +29,7 @@ RUN case ${TARGETPLATFORM} in \ # base build and check tools and libraries layer RUN set -x \ && apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -fy --fix-missing \ + && DEBIAN_FRONTEND=noninteractive apt-get install -fy --fix-missing --no-install-recommends \ autoconf \ automake \ bison \ @@ -39,23 +38,27 @@ RUN set -x \ clang \ clang-format \ clang-tidy \ + cmake \ curl \ flex \ - g++-10 \ + g++ \ + generate-ninja \ git \ git-lfs \ gperf \ iproute2 \ + iwyu \ jq \ lcov \ libavahi-client-dev \ libavahi-common-dev \ - libcairo-dev \ libcairo2-dev \ + libcairo-dev \ libdbus-1-dev \ libdbus-glib-1-dev \ libdmalloc-dev \ libgif-dev \ + libgirepository-1.0-1 \ libglib2.0-dev \ libical-dev \ libjpeg-dev \ @@ -68,8 +71,8 @@ RUN set -x \ libpango1.0-dev \ libpixman-1-dev \ libreadline-dev \ - libsdl-pango-dev \ libsdl2-dev \ + libsdl-pango-dev \ libssl-dev \ libtool \ libudev-dev \ @@ -80,11 +83,19 @@ RUN set -x \ meson \ net-tools \ ninja-build \ + nodejs \ + patch \ pkg-config \ + python3 \ + python3-click \ + python3-coloredlogs \ + python3-dev \ + python3-future \ + python3-pandas \ + python3-pip \ + python3-tabulate \ + python3-venv \ python-is-python3 \ - python3.9 \ - python3.9-dev \ - python3.9-venv \ rsync \ shellcheck \ strace \ @@ -97,73 +108,19 @@ RUN set -x \ && git lfs install \ && : # last line -# Set gcc 10 as a default compiler to work with TSAN -RUN set -x \ - && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10 \ - && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10 \ - && update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 \ - && update-alternatives --set cc /usr/bin/gcc \ - && update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 \ - && update-alternatives --set c++ /usr/bin/g++ \ - && : # last line - -# Cmake v3.23.1 -ENV CMAKE_PLATFORM_VERSION= -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") CMAKE_PLATFORM_VERSION="x86_64";; \ - "linux/arm64") CMAKE_PLATFORM_VERSION="aarch64";; \ - *) \ - test -n "$TARGETPLATFORM" \ - echo "Unsupported platform ${TARGETPLATFORM}" \ - && return 1 ;\ - ;; \ - esac \ - && set -x \ - && (cd /tmp \ - && wget --progress=dot:giga https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-Linux-$CMAKE_PLATFORM_VERSION.sh \ - && sh cmake-3.23.1-Linux-$CMAKE_PLATFORM_VERSION.sh --exclude-subdir --prefix=/usr/local \ - && rm -rf cmake-3.23.1-Linux-$CMAKE_PLATFORM_VERSION.sh) \ - && exec bash \ - && : # last line - -# Python 3.9 and PIP -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y libgirepository1.0-dev \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common \ - && add-apt-repository universe \ - && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ - && python3.9 get-pip.py \ - && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 \ - && rm -rf /var/lib/apt/lists/ \ - && : # last line - +# NOTE: this install is NOT ideal as we are installing over system +# we should migrate to venvs for packages we do not directly have +# provided by the system RUN set -x \ - && pip3 install --no-cache-dir \ + && pip3 install --break-system-packages --no-cache-dir --break-system-packages \ attrs \ - click \ - coloredlogs \ cxxfilt \ - future \ ghapi \ mobly \ - pandas \ portpicker \ pygit \ PyGithub \ ruff \ - tabulate \ - && : # last line - -# build and install gn -RUN set -x \ - && git clone https://gn.googlesource.com/gn \ - && cd gn \ - && python3 build/gen.py \ - && ninja -C out \ - && cp out/gn /usr/local/bin \ - && cd .. \ - && rm -rf gn \ && : # last line # Install bloat comparison tools @@ -172,38 +129,13 @@ RUN set -x \ && mkdir -p bloaty/build \ && cd bloaty/build \ && cmake -DCMAKE_BUILD_TYPE=MinSizeRel ../ \ - && make -j8 \ + && make -j$(nproc) \ && strip bloaty \ && make install \ && cd ../.. \ && rm -rf bloaty \ && : # last line -# Need newer version of include-what-you-use -RUN set -x \ - && apt-get update \ - # Install build and runtime requirements for IWYU - && DEBIAN_FRONTEND=noninteractive apt-get install -fy --fix-missing clang-12 libclang-12-dev \ - # Build and install IWYU - && git clone --depth=1 --branch=clang_12 https://github.com/include-what-you-use/include-what-you-use.git \ - && mkdir -p include-what-you-use/build \ - && cd include-what-you-use/build \ - && cmake -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr/lib/llvm-12 -DIWYU_LINK_CLANG_DYLIB=OFF .. \ - && make -j8 \ - && strip bin/include-what-you-use \ - && make install \ - # Save clang-12 files, so we can restore them after build dependencies cleanup - && tar -cf clang-12-files.tar $(dpkg -L libclang-common-12-dev |grep /include) /usr/lib/llvm-12/lib/libLLVM-12.so.1 \ - # Cleanup build dependencies - && apt autopurge -fy clang-12 libclang-12-dev \ - && rm -rf /var/lib/apt/lists/ \ - # Restore clang-12 files - && tar -xf clang-12-files.tar -C / \ - # Cleanup - && cd ../.. \ - && rm -rf include-what-you-use \ - && : # last line - # Build glib-2.0 from source with enabled thread sanitizer. This is needed for # running CHIP tests with TSAN enabled. When running applications with TSAN # all shared libraries should be built with TSAN enabled, otherwise TSAN might @@ -219,7 +151,7 @@ RUN case ${TARGETPLATFORM} in \ && git clone --depth=1 --branch=$GLIB_VERSION https://github.com/GNOME/glib.git \ && CFLAGS="-O2 -g -fsanitize=thread" meson glib/build glib -Dtests=false \ && DESTDIR=../build-image ninja -C glib/build install \ - && mv glib/build-image/usr/local/lib/x86_64-linux-gnu/lib* $LD_LIBRARY_PATH_TSAN \ + && mv glib/build-image/usr/local/lib64/lib* $LD_LIBRARY_PATH_TSAN \ && rm -rf glib \ ;; \ "linux/arm64") \ @@ -231,41 +163,6 @@ RUN case ${TARGETPLATFORM} in \ ;; \ esac -# NodeJS: install a newer version than what apt-get would read -# This installs the latest LTS version of nodejs -# -# NodeJS is required by github actions, we use Wandalen/wretry.action@v1.3.0 -# and that seems to use the built-in node installation in the image -# -# This is not a CHIP dependency directly, but used by CI -ENV CHIP_NODE_VERSION=v16.13.2 -ENV NODE_PLATFORM_VERSION= -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") NODE_PLATFORM_VERSION=x64;; \ - "linux/arm64") NODE_PLATFORM_VERSION=arm64;; \ - *) \ - test -n "$TARGETPLATFORM" \ - echo "Unsupported platform ${TARGETPLATFORM}" \ - && return 1 ;\ - ;; \ - esac \ - && set -x \ - && mkdir node_js \ - && cd node_js \ - && wget https://nodejs.org/dist/$CHIP_NODE_VERSION/node-$CHIP_NODE_VERSION-linux-$NODE_PLATFORM_VERSION.tar.xz \ - && tar xfvJ node-$CHIP_NODE_VERSION-linux-$NODE_PLATFORM_VERSION.tar.xz \ - && mv node-$CHIP_NODE_VERSION-linux-$NODE_PLATFORM_VERSION /opt/ \ - && ln -s /opt/node-$CHIP_NODE_VERSION-linux-$NODE_PLATFORM_VERSION /opt/node \ - && ln -s /opt/node/bin/* /usr/bin \ - && cd .. \ - && rm -rf node_js \ - && : # last line - # Some things that save space # Protoc goes from 108M to 4.6M RUN strip /usr/local/bin/protoc* - -# CMake documentation not needed, saves 34MB -# /usr/local/man contains cmake documentation -RUN rm -rf /usr/local/doc/cmake -RUN rm -rf /usr/local/man diff --git a/integrations/docker/images/base/chip-build/version b/integrations/docker/images/base/chip-build/version index 3458a0819286da..adf6c4a4df5243 100644 --- a/integrations/docker/images/base/chip-build/version +++ b/integrations/docker/images/base/chip-build/version @@ -1 +1 @@ -54 : [Telink] Update Docker image (Zephyr update) +55 : Update to Ubuntu 24.04 as the base build image diff --git a/integrations/docker/images/chip-cert-bins/Dockerfile b/integrations/docker/images/chip-cert-bins/Dockerfile index ef26e30945c943..5fe42c49dba935 100644 --- a/integrations/docker/images/chip-cert-bins/Dockerfile +++ b/integrations/docker/images/chip-cert-bins/Dockerfile @@ -1,5 +1,5 @@ # Stage 1: Setup dependencies (based on chip-build). -FROM ubuntu:22.04 as chip-build-cert +FROM ubuntu:24.04 as chip-build-cert LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip ARG TARGETPLATFORM # COMMITHASH defines the target commit to build from. May be passed in using --build-arg. @@ -292,12 +292,12 @@ COPY --from=chip-build-cert-bins /root/connectedhomeip/out/python_env python_env COPY --from=chip-build-cert-bins /root/connectedhomeip/src/python_testing python_testing COPY --from=chip-build-cert-bins /root/connectedhomeip/scripts/tests/requirements.txt /tmp/requirements.txt -RUN pip install -r /tmp/requirements.txt && rm /tmp/requirements.txt +RUN pip install --break-system-packages -r /tmp/requirements.txt && rm /tmp/requirements.txt COPY --from=chip-build-cert-bins /root/connectedhomeip/src/python_testing/requirements.txt /tmp/requirements.txt -RUN pip install -r /tmp/requirements.txt && rm /tmp/requirements.txt +RUN pip install --break-system-packages -r /tmp/requirements.txt && rm /tmp/requirements.txt # PIP requires MASON package compilation, which seems to require a JDK RUN set -x && DEBIAN_FRONTEND=noninteractive apt-get install -fy openjdk-8-jdk -RUN pip install --no-cache-dir python_lib/controller/python/chip*.whl +RUN pip install --break-system-packages --no-cache-dir python_lib/controller/python/chip*.whl diff --git a/integrations/docker/images/stage-1/chip-build-crosscompile/Dockerfile b/integrations/docker/images/stage-1/chip-build-crosscompile/Dockerfile index 8767d462be3973..5fa709e30d10b9 100644 --- a/integrations/docker/images/stage-1/chip-build-crosscompile/Dockerfile +++ b/integrations/docker/images/stage-1/chip-build-crosscompile/Dockerfile @@ -6,6 +6,7 @@ RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ git \ + xz-utils \ && apt-get clean \ && rm -rf /var/lib/apt/lists/ \ && : # last line diff --git a/integrations/docker/images/stage-2/chip-build-ameba/Dockerfile b/integrations/docker/images/stage-2/chip-build-ameba/Dockerfile index 08c0cf878392fd..93217c332ef671 100644 --- a/integrations/docker/images/stage-2/chip-build-ameba/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-ameba/Dockerfile @@ -2,6 +2,13 @@ ARG VERSION=1 FROM ghcr.io/project-chip/chip-build:${VERSION} LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ + bzip2 \ + && rm -rf /var/lib/apt/lists/ \ + && : # last line + # Setup Ameba ARG AMEBA_DIR=/opt/ameba ARG TAG_NAME=ameba_update_2024_03_22 diff --git a/integrations/docker/images/stage-2/chip-build-asr/Dockerfile b/integrations/docker/images/stage-2/chip-build-asr/Dockerfile index d3e54310b58550..627d7d83e83096 100644 --- a/integrations/docker/images/stage-2/chip-build-asr/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-asr/Dockerfile @@ -5,6 +5,8 @@ LABEL org.opencontainers.image.source https://github.com/project-chip/connectedh RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ + bzip2 \ + tar \ wget \ && apt-get clean \ && rm -rf /var/lib/apt/lists/ \ diff --git a/integrations/docker/images/stage-2/chip-build-bouffalolab/Dockerfile b/integrations/docker/images/stage-2/chip-build-bouffalolab/Dockerfile index faf280dd500e26..ad099fc48b6ef3 100644 --- a/integrations/docker/images/stage-2/chip-build-bouffalolab/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-bouffalolab/Dockerfile @@ -5,7 +5,7 @@ LABEL org.opencontainers.image.source https://github.com/project-chip/connectedh RUN apt update -y \ && apt install vim -fy \ && apt clean \ - && pip3 install bflb-iot-tool==1.8.6 \ + && pip3 install --break-system-packages bflb-iot-tool==1.8.6 \ && : # last line COPY setup.sh /tmp diff --git a/integrations/docker/images/stage-2/chip-build-cirque/Dockerfile b/integrations/docker/images/stage-2/chip-build-cirque/Dockerfile index 1f10e8eae866d2..5d40e342cd3543 100644 --- a/integrations/docker/images/stage-2/chip-build-cirque/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-cirque/Dockerfile @@ -22,7 +22,7 @@ RUN set -x \ curl gnupg-agent apt-transport-https ca-certificates \ software-properties-common \ && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \ - && python3.8 `which add-apt-repository` \ + && python3 `which add-apt-repository` \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy \ @@ -33,14 +33,22 @@ RUN set -x \ RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy \ - sudo socat psmisc tigervnc-standalone-server xorg xauth \ - python3-pip python3-venv libdbus-glib-1-dev \ - uuid-runtime libgirepository1.0-dev \ + libdbus-glib-1-dev \ + libgirepository1.0-dev \ + psmisc \ + python3-pip \ + python3-venv \ + socat \ + sudo \ + tigervnc-standalone-server \ + uuid-runtime \ + xauth \ + xorg \ && : # aids diffs COPY requirements_nogrpc.txt /requirements.txt RUN set -x \ - && pip3 install -r requirements.txt \ + && pip3 install --break-system-packages -r requirements.txt \ && xinit -- /usr/bin/Xvnc \ && : # aids diffs diff --git a/integrations/docker/images/stage-2/chip-build-efr32/Dockerfile b/integrations/docker/images/stage-2/chip-build-efr32/Dockerfile index 9ac161a4a51800..c121c582bd3cf9 100644 --- a/integrations/docker/images/stage-2/chip-build-efr32/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-efr32/Dockerfile @@ -59,7 +59,7 @@ RUN set -x \ && apt-get clean \ && rm -rf /var/lib/apt/lists/ \ # Install Python Packages - && pip3 install -r /tmp/requirements.txt \ + && pip3 install --break-system-packages -r /tmp/requirements.txt \ && rm /tmp/requirements.txt \ && : # last line diff --git a/integrations/docker/images/stage-2/chip-build-imx/Dockerfile b/integrations/docker/images/stage-2/chip-build-imx/Dockerfile index 9fe24051e0b2d3..864087ee4c9f8c 100644 --- a/integrations/docker/images/stage-2/chip-build-imx/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-imx/Dockerfile @@ -6,6 +6,7 @@ RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ wget \ + xz-utils \ && apt-get clean \ && rm -rf /var/lib/apt/lists/ \ && : # last line diff --git a/integrations/docker/images/stage-2/chip-build-infineon/Dockerfile b/integrations/docker/images/stage-2/chip-build-infineon/Dockerfile index 9b38709d7204a6..5578b27ce50988 100644 --- a/integrations/docker/images/stage-2/chip-build-infineon/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-infineon/Dockerfile @@ -4,13 +4,23 @@ LABEL org.opencontainers.image.source https://github.com/project-chip/connectedh # ------------------------------------------------------------------------------ # Install prerequisites -RUN apt update -y \ - && apt install -y curl git make file libglib2.0-0 libusb-1.0-0 libncurses5 sudo \ - && apt clean +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -fy --fix-missing --no-install-recommends \ + curl \ + git \ + make \ + file \ + libglib2.0-0 \ + libusb-1.0-0 sudo \ + && rm -rf /var/lib/apt/lists/ \ + && : # last line # ------------------------------------------------------------------------------ # Download and extract ModusToolbox 2.3 -RUN curl --fail --location --silent --show-error https://itoolspriv.infineon.com/itbhs/api/packages/com.ifx.tb.tool.modustoolbox/Versions/2.4.0.5972-public/artifacts/ModusToolbox_2.4.0.5972-linux-install.tar.gz/download?noredirect -o /tmp/ModusToolbox_2.4.0.5972-linux-install.tar.gz \ +RUN curl --fail --location --show-error \ + https://itoolspriv.infineon.com/itbhs/api/packages/com.ifx.tb.tool.modustoolbox/Versions/2.4.0.5972-public/artifacts/ModusToolbox_2.4.0.5972-linux-install.tar.gz/download?noredirect \ + -o /tmp/ModusToolbox_2.4.0.5972-linux-install.tar.gz \ && tar -C /opt -zxf /tmp/ModusToolbox_2.4.0.5972-linux-install.tar.gz \ && rm /tmp/ModusToolbox_2.4.0.5972-linux-install.tar.gz diff --git a/integrations/docker/images/stage-2/chip-build-k32w/Dockerfile b/integrations/docker/images/stage-2/chip-build-k32w/Dockerfile index 78c1bf6ca77422..83f9f7561321b4 100644 --- a/integrations/docker/images/stage-2/chip-build-k32w/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-k32w/Dockerfile @@ -5,7 +5,8 @@ LABEL org.opencontainers.image.source https://github.com/project-chip/connectedh RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ - wget unzip \ + unzip \ + wget \ && apt-get clean \ && rm -rf /var/lib/apt/lists/ \ && : # last line @@ -13,7 +14,7 @@ RUN set -x \ WORKDIR /opt/sdk RUN set -x \ - && python3 -m pip install -U --no-cache-dir west==1.0.0 \ + && python3 -m pip install --break-system-packages -U --no-cache-dir west==1.0.0 \ && west init -m https://github.com/nxp-mcuxpresso/mcux-sdk --mr "MCUX_2.6.14_K32W0" \ && west update \ && chmod +x core/tools/imagetool/sign_images.sh \ diff --git a/integrations/docker/images/stage-2/chip-build-linux-qemu/Dockerfile b/integrations/docker/images/stage-2/chip-build-linux-qemu/Dockerfile index b14a00c2ec9710..02a65e01a7a829 100644 --- a/integrations/docker/images/stage-2/chip-build-linux-qemu/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-linux-qemu/Dockerfile @@ -1,6 +1,6 @@ ARG VERSION=latest ARG UBUNTU_QEMU_DIR_DEFAULT="/opt/ubuntu-qemu" -ARG UBUNTU_QEMU_IMG_DEFAULT="${UBUNTU_QEMU_DIR_DEFAULT}/ubuntu-20.04.img" +ARG UBUNTU_QEMU_IMG_DEFAULT="${UBUNTU_QEMU_DIR_DEFAULT}/ubuntu-24.04.img" FROM ghcr.io/project-chip/chip-build:${VERSION} as build-env LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip @@ -13,6 +13,8 @@ ARG UBUNTU_QEMU_IMG_DEFAULT ENV UBUNTU_QEMU_DIR=${UBUNTU_QEMU_DIR_DEFAULT} ENV UBUNTU_QEMU_IMG=${UBUNTU_QEMU_IMG_DEFAULT} +ENV KERNEL_PATH="${UBUNTU_QEMU_DIR_DEFAULT}/bzImage" + RUN mkdir -p /tmp/workdir/linux COPY files/linux/0001-Bluetooth-MGMT-Synchronize-scan-start-and-LE-Meta-ev.patch /tmp/workdir/linux/0001-Bluetooth-MGMT-Synchronize-scan-start-and-LE-Meta-ev.patch @@ -32,7 +34,8 @@ RUN set -x \ libguestfs-tools \ linux-image-generic \ ncurses-dev \ - qemu \ + patch \ + qemu-system \ xz-utils \ zstd \ && apt-get clean \ @@ -119,36 +122,26 @@ RUN mkdir -p /tmp/workdir/linux \ && make \ && make install DESTDIR=/opt/ubuntu-qemu/rootfs && mkdir -p /opt/ubuntu-qemu/rootfs/usr/bin && cp /tmp/workdir/bluez/emulator/btvirt /opt/ubuntu-qemu/rootfs/usr/bin \ # Download Ubuntu image for QEMU - && curl https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img \ - -o /tmp/workdir/ubuntu-20.04-minimal-cloudimg-amd64.img \ + && curl https://cloud-images.ubuntu.com/minimal/releases/noble/release/ubuntu-24.04-minimal-cloudimg-amd64.img \ + -o /tmp/workdir/ubuntu-24.04-minimal-cloudimg-amd64.img # Prepare ubuntu image - && qemu-img create -f qcow2 -o preallocation=off $UBUNTU_QEMU_IMG 10G \ - && virt-resize --expand /dev/sda1 /tmp/workdir/ubuntu-20.04-minimal-cloudimg-amd64.img $UBUNTU_QEMU_IMG \ +RUN qemu-img create -f qcow2 -o preallocation=off $UBUNTU_QEMU_IMG 10G \ + && virt-resize --expand /dev/sda1 /tmp/workdir/ubuntu-24.04-minimal-cloudimg-amd64.img $UBUNTU_QEMU_IMG \ && guestfish -a $UBUNTU_QEMU_IMG \ - --mount /dev/sda3:/ \ + --mount /dev/sda4:/ \ --network \ copy-in /opt/ubuntu-qemu/rootfs/lib /usr : \ copy-in /opt/ubuntu-qemu/rootfs/usr / : \ sh 'apt-get remove -y snapd' : \ - sh 'apt-get update' : \ - sh 'DEBIAN_FRONTEND=noninteractive apt-get install -y dnsmasq hostapd wpasupplicant iw libdw1 rfkill' : \ sh '/usr/bin/systemctl enable bluetooth.service' : \ sh '/usr/bin/systemctl disable cloud-init.service' : \ - sh '/usr/bin/systemctl disable dbus-fi.w1.wpa_supplicant1.service' : \ - sh '/usr/bin/systemctl disable dnsmasq.service' : \ - sh '/usr/bin/systemctl disable hostapd.service' : \ sh '/usr/bin/systemctl disable lxd-agent.service' : \ sh '/usr/bin/systemctl disable systemd-networkd-wait-online.service' : \ sh '/usr/bin/systemctl disable systemd-timesyncd.service' : \ - sh '/usr/bin/systemctl disable wpa_supplicant.service' : \ sh '/usr/bin/systemctl mask cloud-init.service' : \ - sh '/usr/bin/systemctl mask dbus-fi.w1.wpa_supplicant1.service' : \ - sh '/usr/bin/systemctl mask dnsmasq.service' : \ - sh '/usr/bin/systemctl mask hostapd.service' : \ sh '/usr/bin/systemctl mask lxd-agent.service' : \ sh '/usr/bin/systemctl mask systemd-networkd-wait-online.service' : \ sh '/usr/bin/systemctl mask systemd-timesyncd.service' : \ - sh '/usr/bin/systemctl mask wpa_supplicant.service' : \ sh 'passwd -d root' : \ sh 'ssh-keygen -A' : \ sh '/bin/echo -e "PermitRootLogin yes\nPasswordAuthentication yes\nPermitEmptyPasswords yes" > /etc/ssh/sshd_config' : \ @@ -161,13 +154,63 @@ RUN mkdir -p /tmp/workdir/linux \ sh 'sed -i "s#^ExecStart=.*#ExecStart=-/usr/libexec/bluetooth/bluetoothd -E#" /lib/systemd/system/bluetooth.service' : \ sh 'rm -f /etc/resolv.conf && /bin/echo -e "nameserver 8.8.8.8" > /etc/resolv.conf' : \ sh '/bin/echo -e "host0 /chip 9p trans=virtio,version=9p2000.L 0 0" >> /etc/fstab' : \ - sh '/bin/echo -e "export PW_ENVIRONMENT_ROOT=/root/pw_root\n[ -x /launcher.sh ] && /launcher.sh\n" >> /root/.profile' : \ - sh 'DEBIAN_FRONTEND=noninteractive apt-get -y install git gcc g++ pkg-config libssl-dev libdbus-1-dev libglib2.0-dev libavahi-client-dev ninja-build python3 python3-venv python3-dev python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev' : \ - sh 'git config --file /root/.gitconfig --add safe.directory "*"' : \ - sh 'apt-get clean' : \ - sh 'rm -rf /var/lib/apt/lists/*' : \ - sh 'rm -rf /var/cache/apt/*' : \ - sh 'echo Configuration completed.' \ + sh '/bin/echo -e "[ -x /init.sh ] && /init.sh && rm -f /init.sh && sync && systemctl poweroff\n" >> /root/.profile' : \ + sh '/bin/echo -e "export PW_ENVIRONMENT_ROOT=/root/pw_root\n[ -x /launcher.sh ] && /launcher.sh\n" >> /root/.profile' \ + && echo -n \ + "#!/bin/bash\n" \ + "set -e \n" \ + "export DEBIAN_FRONTEND=noninteractive \n" \ + "apt-get update\n" \ + "apt-get install -y apt-utils\n" \ + "apt-get install -y dnsmasq hostapd wpasupplicant iw libdw1 rfkill\n" \ + "DEBIAN_FRONTEND=noninteractive apt-get -y install " \ + " g++ " \ + " gcc " \ + " git " \ + " libavahi-client-dev " \ + " libcairo2-dev " \ + " libdbus-1-dev " \ + " libgirepository1.0-dev " \ + " libglib2.0-dev " \ + " libreadline-dev " \ + " libssl-dev " \ + " ninja-build " \ + " pkg-config " \ + " python3 " \ + " python3-dev " \ + " python3-pip " \ + " python3-venv " \ + " unzip \n" \ + "/usr/bin/systemctl disable dbus-fi.w1.wpa_supplicant1.service\n" \ + "/usr/bin/systemctl disable dnsmasq.service\n" \ + "/usr/bin/systemctl disable hostapd.service\n" \ + "/usr/bin/systemctl disable wpa_supplicant.service\n" \ + "/usr/bin/systemctl mask dnsmasq.service\n" \ + "/usr/bin/systemctl mask hostapd.service\n" \ + "/usr/bin/systemctl mask dbus-fi.w1.wpa_supplicant1.service\n" \ + "/usr/bin/systemctl mask wpa_supplicant.service\n" \ + "git config --file /root/.gitconfig --add safe.directory \"*\"\n" \ + "apt-get clean\n" \ + "rm -rf /var/lib/apt/lists/*\n" \ + "rm -rf /var/cache/apt/*\n" \ + "echo Configuration completed\n " \ + | guestfish --rw -a $UBUNTU_QEMU_IMG -m /dev/sda4:/ upload - /init.sh : chmod 0755 /init.sh \ + && qemu-system-x86_64 \ + -machine ubuntu \ + -smp 4 \ + -m 2048 \ + -nographic \ + -monitor null \ + -serial stdio \ + -display none \ + -device virtio-blk-pci,drive=virtio-blk1 \ + -drive file="${UBUNTU_QEMU_IMG}",id=virtio-blk1,if=none,format=qcow2,readonly=off \ + -kernel "${KERNEL_PATH}" \ + -append 'console=ttyS0 root=/dev/vda4' \ + -netdev user,id=network0 \ + -device e1000,netdev=network0,mac=52:54:00:12:34:56 \ + -virtfs "local,path=/tmp,mount_tag=host0,security_model=passthrough,id=host0" \ +# tmp folder is mounted only to preserve error during boot && mkdir -p /chip \ && rm -rf /opt/ubuntu-qemu/rootfs \ && echo -n \ @@ -185,7 +228,7 @@ RUN mkdir -p /tmp/workdir/linux \ "fi\n" \ "echo 'Shutting down emulated system...'\n" \ "echo o > /proc/sysrq-trigger\n" \ - | guestfish --rw -a $UBUNTU_QEMU_IMG -m /dev/sda3:/ upload - /launcher.sh : chmod 0755 /launcher.sh \ + | guestfish --rw -a $UBUNTU_QEMU_IMG -m /dev/sda4:/ upload - /launcher.sh : chmod 0755 /launcher.sh \ && virt-sparsify --compress ${UBUNTU_QEMU_IMG} ${UBUNTU_QEMU_IMG}.compressed \ && mv ${UBUNTU_QEMU_IMG}.compressed ${UBUNTU_QEMU_IMG} \ && rm -rf /var/tmp/.guestfs-0/* \ @@ -205,7 +248,7 @@ RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy \ cpu-checker \ - qemu \ + libgirepository-1.0-1 \ qemu-system-x86 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ diff --git a/integrations/docker/images/stage-2/chip-build-mbed-os/Dockerfile b/integrations/docker/images/stage-2/chip-build-mbed-os/Dockerfile index 74d782772304cb..923d3fd23ef661 100644 --- a/integrations/docker/images/stage-2/chip-build-mbed-os/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-mbed-os/Dockerfile @@ -25,7 +25,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] # ------------------------------------------------------------------------------ # Install Python modules RUN set -x \ - && pip3 install --no-cache-dir -U mbed-cli==1.10.5 mbed-tools==7.44.0 \ + && pip3 install --break-system-packages --no-cache-dir -U mbed-cli==1.10.5 mbed-tools==7.44.0 \ && : # last line # ------------------------------------------------------------------------------ diff --git a/integrations/docker/images/stage-2/chip-build-nrf-platform/Dockerfile b/integrations/docker/images/stage-2/chip-build-nrf-platform/Dockerfile index 355e1b6e040568..0ec2b78bca1782 100644 --- a/integrations/docker/images/stage-2/chip-build-nrf-platform/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-nrf-platform/Dockerfile @@ -9,6 +9,13 @@ LABEL org.opencontainers.image.source https://github.com/project-chip/connectedh # Compatible Nordic Connect SDK revision. ARG NCS_REVISION=v2.6.0 +# Requirements to clone SDKs in temporary container +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ + xz-utils \ + && : # last line + SHELL ["/bin/bash", "-o", "pipefail", "-c"] WORKDIR /opt/NordicSemiconductor/nRF5_tools RUN set -x \ @@ -23,7 +30,7 @@ RUN set -x \ WORKDIR /opt/NordicSemiconductor/nrfconnect RUN set -x \ - && python3 -m pip install -U --no-cache-dir west==1.2.0 \ + && python3 -m pip install --break-system-packages -U --no-cache-dir west==1.2.0 \ && west init -m https://github.com/nrfconnect/sdk-nrf --mr "$NCS_REVISION" \ && west config update.narrow true \ && west config update.fetch smart \ @@ -50,10 +57,10 @@ COPY --from=build /opt/NordicSemiconductor/nrfconnect/ /opt/NordicSemiconductor/ RUN set -x \ # python3-yaml package conflicts with nRF Python requirements && (apt-get remove -fy python3-yaml && apt-get autoremove || exit 0) \ - && python3 -m pip install -U --no-cache-dir cmake==3.25.0 \ - && python3 -m pip install --no-cache-dir -r /opt/NordicSemiconductor/nrfconnect/zephyr/scripts/requirements-base.txt \ - && python3 -m pip install --no-cache-dir -r /opt/NordicSemiconductor/nrfconnect/nrf/scripts/requirements-build.txt \ - && python3 -m pip install --no-cache-dir -r /opt/NordicSemiconductor/nrfconnect/bootloader/mcuboot/scripts/requirements.txt \ + && python3 -m pip install --break-system-packages -U --no-cache-dir cmake==3.25.0 \ + && python3 -m pip install --break-system-packages --no-cache-dir -r /opt/NordicSemiconductor/nrfconnect/zephyr/scripts/requirements-base.txt \ + && python3 -m pip install --break-system-packages --no-cache-dir -r /opt/NordicSemiconductor/nrfconnect/nrf/scripts/requirements-build.txt \ + && python3 -m pip install --break-system-packages --no-cache-dir -r /opt/NordicSemiconductor/nrfconnect/bootloader/mcuboot/scripts/requirements.txt \ && : # last line ENV NRF5_TOOLS_ROOT=/opt/NordicSemiconductor/nRF5_tools diff --git a/integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile b/integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile index c8677482014320..fdc28b4eaff6a8 100644 --- a/integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile @@ -19,7 +19,7 @@ RUN set -x \ && tar xzf gcc-13.1.0.tar.gz \ && cd gcc-13.1.0 \ && ./configure --prefix=/opt/nuttx/gcc-13 --disable-multilib \ - && make -j8 \ + && make -j$(nproc) \ && make install-strip \ && rm -rf ../../gcc_build \ && : # last line diff --git a/integrations/docker/images/stage-2/chip-build-telink/Dockerfile b/integrations/docker/images/stage-2/chip-build-telink/Dockerfile index e3b806eec091c0..a9e53dca6824b8 100644 --- a/integrations/docker/images/stage-2/chip-build-telink/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-telink/Dockerfile @@ -2,6 +2,12 @@ ARG VERSION=1 FROM ghcr.io/project-chip/chip-build:${VERSION} as build LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ + xz-utils \ + && : # last line + # Setup toolchain WORKDIR /opt/telink RUN set -x \ @@ -15,7 +21,7 @@ RUN set -x \ ARG ZEPHYR_REVISION=0e8032dfef7e02498f34ba0b5d5d2df71a62adb1 WORKDIR /opt/telink/zephyrproject RUN set -x \ - && python3 -m pip install -U --no-cache-dir west \ + && python3 -m pip install --break-system-packages -U --no-cache-dir west \ && git clone https://github.com/telink-semi/zephyr \ && cd zephyr \ && git reset ${ZEPHYR_REVISION} --hard \ @@ -35,7 +41,7 @@ RUN set -x \ && apt-get update \ && apt-get clean \ && rm -rf /var/lib/apt/lists/ \ - && pip3 install --no-cache-dir --user -r /opt/telink/zephyrproject/zephyr/scripts/requirements.txt \ + && pip3 install --break-system-packages --no-cache-dir --user -r /opt/telink/zephyrproject/zephyr/scripts/requirements.txt \ && : # last line ENV TELINK_ZEPHYR_BASE=/opt/telink/zephyrproject/zephyr diff --git a/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile b/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile index 5380812b663a8c..4d907b1d6e48f4 100644 --- a/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile @@ -2,25 +2,13 @@ ARG VERSION=1 FROM ghcr.io/project-chip/chip-build:${VERSION} LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip -# ------------------------------------------------------------------------------ -# Add group/user for tizen -ARG USER_NAME=tizen -ARG USER_UID=1000 -ARG USER_GID=$USER_UID -ENV USER_HOME /home/$USER_NAME - -RUN set -x \ - && groupadd -g $USER_GID $USER_NAME \ - && useradd -m $USER_NAME -s /bin/bash -u $USER_UID -g $USER_GID -G sudo -l \ - && : # last line - # ------------------------------------------------------------------------------ # Install dependencies RUN set -x \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ cpio \ - libncurses5 \ + libncurses6 \ obs-build \ openjdk-8-jre-headless \ wget \ @@ -39,7 +27,7 @@ COPY tizen-sdk-installer $TIZEN_SDK_ROOT/files/installer RUN set -x \ && bash $TIZEN_SDK_ROOT/files/installer/install.sh \ --tizen-sdk-path $TIZEN_SDK_ROOT \ - --tizen-sdk-data-path $USER_HOME/tizen-sdk-data \ + --tizen-sdk-data-path /home/ubuntu/tizen-sdk-data \ --tizen-version $TIZEN_VERSION \ --override-secret-tool \ && : # last line @@ -52,5 +40,5 @@ ENV PATH="$TIZEN_SDK_TOOLCHAIN/bin:$TIZEN_SDK_ROOT/tools/ide/bin:$TIZEN_SDK_ROOT # ------------------------------------------------------------------------------ # Switch to the non-root user -USER $USER_NAME -WORKDIR $USER_HOME +USER ubuntu +WORKDIR /home/ubuntu diff --git a/integrations/docker/images/stage-2/chip-cirque-device-base/Dockerfile b/integrations/docker/images/stage-2/chip-cirque-device-base/Dockerfile index 8d79b306c1a327..3ddfe44842e013 100644 --- a/integrations/docker/images/stage-2/chip-cirque-device-base/Dockerfile +++ b/integrations/docker/images/stage-2/chip-cirque-device-base/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:focal +FROM ubuntu:24.04 ARG OT_BR_POSIX_CHECKOUT=main @@ -56,7 +56,7 @@ RUN apt-get update \ && echo "ctrl_interface=/run/wpa_supplicant" >> /etc/wpa_supplicant/wpa_supplicant.conf \ && echo "update_config=1" >> /etc/wpa_supplicant/wpa_supplicant.conf \ && rm -rf /var/lib/apt/lists/* \ - && pip3 install --no-cache-dir click==8.0.3 paramiko \ + && pip3 install --break-system-packages --no-cache-dir click==8.0.3 paramiko \ && mkdir /var/run/sshd \ && echo 'root:admin' | chpasswd \ && sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config \ diff --git a/integrations/docker/images/stage-3/chip-build-android/Dockerfile b/integrations/docker/images/stage-3/chip-build-android/Dockerfile index 9d1f0ef119f543..b2c33e7aaa512c 100644 --- a/integrations/docker/images/stage-3/chip-build-android/Dockerfile +++ b/integrations/docker/images/stage-3/chip-build-android/Dockerfile @@ -59,9 +59,9 @@ RUN set -x \ && export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH \ && cd /tmp && wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz \ && mkdir -p $OPENSSL_ARMV7 && cd $OPENSSL_ARMV7 && tar xfz /tmp/openssl-1.1.1t.tar.gz \ - && cd $OPENSSL_ARMV7/openssl-1.1.1t && CC=clang ANDROID_API=26 ./Configure android-arm -U__ANDROID_API__ -D__ANDROID_API__=26 && make SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \ + && cd $OPENSSL_ARMV7/openssl-1.1.1t && CC=clang ANDROID_API=26 ./Configure android-arm -U__ANDROID_API__ -D__ANDROID_API__=26 && make -j$(nproc) SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \ && mkdir -p $OPENSSL_X86 && cd $OPENSSL_X86 && tar xfz /tmp/openssl-1.1.1t.tar.gz \ - && cd $OPENSSL_X86/openssl-1.1.1t && CC=clang ANDROID_API=26 ./Configure android-x86 -U__ANDROID_API__ -D__ANDROID_API__=26 && make SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \ + && cd $OPENSSL_X86/openssl-1.1.1t && CC=clang ANDROID_API=26 ./Configure android-x86 -U__ANDROID_API__ -D__ANDROID_API__=26 && make -j$(nproc) SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \ && rm -rf /tmp/openssl-1.1.1t.tar.gz \ && : # last line diff --git a/integrations/docker/images/stage-3/chip-build-esp32-qemu/Dockerfile b/integrations/docker/images/stage-3/chip-build-esp32-qemu/Dockerfile index 847521afe50d6c..aad71b4f2b7ff0 100644 --- a/integrations/docker/images/stage-3/chip-build-esp32-qemu/Dockerfile +++ b/integrations/docker/images/stage-3/chip-build-esp32-qemu/Dockerfile @@ -13,9 +13,9 @@ RUN set -x \ WORKDIR /opt/espressif/qemu # Setup QEMU emulator for ESP32 platform RUN set -x \ - && git clone --depth 1 -b esp-develop-20210826 https://github.com/espressif/qemu.git ../qemu-src \ + && git clone --depth 1 -b v9.0.0 https://github.com/espressif/qemu.git ../qemu-src \ && ../qemu-src/configure --target-list=xtensa-softmmu --enable-debug --disable-strip --disable-user --disable-capstone --disable-vnc --disable-sdl --disable-gtk \ - && make -j8 \ + && make -j$(nproc) \ && : # last line ENV QEMU_ESP32_DIR=/opt/espressif/qemu diff --git a/integrations/docker/images/stage-3/chip-build-tizen-qemu/Dockerfile b/integrations/docker/images/stage-3/chip-build-tizen-qemu/Dockerfile index 8c38d19c1b3ed8..3bfa46e9ab601c 100644 --- a/integrations/docker/images/stage-3/chip-build-tizen-qemu/Dockerfile +++ b/integrations/docker/images/stage-3/chip-build-tizen-qemu/Dockerfile @@ -19,7 +19,9 @@ RUN set -x \ genisoimage \ libgmp-dev \ libmpc-dev \ + patch \ qemu-system-arm \ + xz-utils \ # Cleanup && apt-get clean \ && rm -rf /var/lib/apt/lists \ @@ -58,7 +60,7 @@ RUN set -x \ && ./scripts/config -e OVERLAY_FS -e ISO9660_FS \ && ./scripts/config -e SECURITY_SMACK_PERMISSIVE_MODE \ && make olddefconfig \ - && make zImage \ + && make -j$(nproc) zImage \ && mv arch/arm/boot/zImage $TIZEN_IOT_QEMU_KERNEL \ # Cleanup && rm -rf /tmp/workdir \ @@ -194,5 +196,5 @@ RUN set -x \ # ------------------------------------------------------------------------------ # Switch back to the non-root user -USER $USER_NAME -WORKDIR $USER_HOME +USER ubuntu +WORKDIR /home/ubuntu diff --git a/integrations/docker/images/vscode/chip-build-vscode/Dockerfile b/integrations/docker/images/vscode/chip-build-vscode/Dockerfile index 91d8471cd8ce2f..c3a9f37baa264a 100644 --- a/integrations/docker/images/vscode/chip-build-vscode/Dockerfile +++ b/integrations/docker/images/vscode/chip-build-vscode/Dockerfile @@ -4,7 +4,6 @@ FROM ghcr.io/project-chip/chip-build-nrf-platform:${VERSION} AS nrf FROM ghcr.io/project-chip/chip-build-efr32:${VERSION} AS efr32 FROM ghcr.io/project-chip/chip-build-android:${VERSION} AS android FROM ghcr.io/project-chip/chip-build-esp32-qemu:${VERSION} as esp32 -FROM ghcr.io/project-chip/chip-build-mbed-os:${VERSION} AS mbedos FROM ghcr.io/project-chip/chip-build-telink:${VERSION} AS telink FROM ghcr.io/project-chip/chip-build-infineon:${VERSION} AS p6 FROM ghcr.io/project-chip/chip-build-tizen:${VERSION} AS tizen @@ -36,9 +35,6 @@ COPY --from=android /opt/android/sdk /opt/android/sdk COPY --from=android /opt/android/android-ndk-r23c /opt/android/android-ndk-r23c COPY --from=android /usr/lib/kotlinc /usr/lib/kotlinc -# FIXME: OpenOCD was removed during the move to infineon's repo -# COPY --from=mbedos /opt/openocd/ /opt/openocd/ - COPY --from=p6 /opt/ModusToolbox /opt/ModusToolbox COPY --from=telink /opt/telink/zephyrproject /opt/telink/zephyrproject @@ -78,6 +74,15 @@ RUN set -x \ && chmod -R a+w /opt/android/sdk/licenses \ && : # last line +# mbedos requirements are generally just PIP packages +RUN set -x \ + && pip3 install --break-system-packages --no-cache-dir -U mbed-cli==1.10.5 mbed-tools==7.44.0 \ + && : # last line +RUN set -x \ + && mbed config -G GCC_ARM_PATH /opt/mbed-os-toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/ \ + && mbed toolchain -G -s GCC_ARM \ + && : # last line + # Required for the Tizen SDK: # - zip # Required for the Open IoT SDK platform @@ -100,7 +105,7 @@ RUN set -x \ # Required for the Bouffalolab platform RUN set -x \ - && pip3 install bflb-iot-tool==1.8.6 \ + && pip3 install --break-system-packages bflb-iot-tool==1.8.6 \ && : # last line ENV PATH $PATH:/usr/lib/kotlinc/bin diff --git a/scripts/setup/constraints.txt b/scripts/setup/constraints.txt index ab4bea6e965a9c..49aff90df0715c 100644 --- a/scripts/setup/constraints.txt +++ b/scripts/setup/constraints.txt @@ -134,7 +134,7 @@ mypy-extensions==1.0.0 # via mypy mypy-protobuf==3.5.0 # via -r requirements.all.txt -numpy==1.24.2 +numpy==1.26.4 # via pandas packaging==23.0 # via @@ -143,7 +143,7 @@ packaging==23.0 # ghapi # idf-component-manager # west -pandas==1.5.3 ; platform_machine != "aarch64" and platform_machine != "arm64" +pandas==2.1.4 ; platform_machine != "aarch64" and platform_machine != "arm64" # via -r requirements.memory.txt parso==0.8.3 # via jedi