From f417b02838c1610e657f74128e00bf8c055e8e81 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 5 Aug 2025 19:11:41 -0400 Subject: [PATCH 1/8] only matter --- docker/Dockerfile | 103 ++-------------------------------------------- 1 file changed, 3 insertions(+), 100 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0f7ccc0..21fae84 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,106 +1,9 @@ -# Set build argument for base image version -ARG VERSION=latest -ARG SISDK_Tag -ARG WiFI_SDK_Tag - # Stage 1: Build dependencies and download SDKs/tools FROM ghcr.io/project-chip/chip-build:${VERSION} AS build LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip -# Accept build arguments in this stage -ARG SISDK_Tag -ARG WiFI_SDK_Tag - -# Install required packages for cloning and extracting SDKs -RUN set -x \ - && apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ - git \ - git-lfs \ - zip \ - tar \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/ \ - && : # last line - -# Set UTF-8 locale to ensure unzip handles non-ASCII filenames correctly -# util/third_party/ot-br-posix/third_party/cpp-httplib/repo/test/www/#U65e5#U672c#U8a9eDir/#U65e5#U672c#U8a9eFile.txt -ENV LANG=C.UTF-8 - -# Download and extract Simplicity SDK using SISDK_Tag, remove unused protocols -RUN wget https://github.com/SiliconLabs/simplicity_sdk/releases/download/${SISDK_Tag}/simplicity-sdk.zip -O /tmp/simplicity_sdk.zip \ - && unzip /tmp/simplicity_sdk.zip -d /tmp/simplicity_sdk \ - && rm -rf /tmp/simplicity_sdk.zip \ - && rm -rf /tmp/simplicity_sdk/protocol/flex /tmp/simplicity_sdk/protocol/z-wave /tmp/simplicity_sdk/protocol/wisun \ - && find /tmp/simplicity_sdk/protocol/openthread -name "*efr32mg21*" -delete \ - && : # last line - -# Clone WiSeConnect Wi-Fi and Bluetooth Software 2.11.4 (bf6b600) -RUN git clone --depth=1 --single-branch --branch=2.11.4 https://github.com/SiliconLabs/wiseconnect-wifi-bt-sdk.git /tmp/wiseconnect-wifi-bt-sdk \ - && cd /tmp/wiseconnect-wifi-bt-sdk \ - && rm -rf .git \ - && : # last line - -# Clone WiSeConnect SDK using WiFI_SDK_Tag -RUN git clone --depth=1 --single-branch --branch=${WiFI_SDK_Tag} https://github.com/SiliconLabs/wiseconnect.git /tmp/wifi_sdk \ - && cd /tmp/wifi_sdk \ - && rm -rf .git \ - && : # last line - -# Download and extract SLC CLI -RUN wget https://www.silabs.com/documents/login/software/slc_cli_linux.zip \ - && unzip ./slc_cli_linux.zip -d /tmp \ - && rm ./slc_cli_linux.zip \ - && : # last line - -# Download and extract Simplicity Commander -RUN wget https://www.silabs.com/documents/public/software/SimplicityCommander-Linux.zip \ - && unzip ./SimplicityCommander-Linux.zip -d /tmp/simplicity-commander \ - && rm ./SimplicityCommander-Linux.zip \ - && FILE=$(find /tmp/simplicity-commander -name "*Commander_linux_x86_64*") \ - && if [ -n "$FILE" ]; then \ - tar -xjvf "$FILE" -C /tmp/simplicity-commander; \ - else \ - echo "File not found"; \ - fi \ - && : # last line - -# Download and extract ARM GCC toolchain v12.2.rel1 -RUN wget https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz -O /tmp/arm-gnu-toolchain.tar.xz \ - && tar -xJvf /tmp/arm-gnu-toolchain.tar.xz -C /tmp \ - && rm -rf /tmp/arm-gnu-toolchain.tar.xz \ +RUN git clone https://github.com/SiliconLabsSoftware/matter_extension.git /opt/matter_extension \ + && git submodule update --init \ && : # last line -# Download and extract Amazon Corretto Java 21 -RUN wget https://corretto.aws/downloads/resources/21.0.7.6.1/amazon-corretto-21.0.7.6.1-linux-x64.tar.gz -O /tmp/java.tar.gz \ - && tar -xzf /tmp/java.tar.gz -C /tmp \ - && rm /tmp/java.tar.gz \ - && ls /tmp \ - && : # last line - -# Stage 2: Final image for SDK compilation -FROM ghcr.io/project-chip/chip-build:${VERSION} - -# Add Python requirements -ADD docker/requirements.txt /tmp/requirements.txt - -# Set environment variables for SDKs and tools -ENV GSDK_ROOT=/opt/silabs/simplicity_sdk/ -ENV SISDK_ROOT=/opt/silabs/simplicity_sdk/ -ENV WISECONNECT_SDK_ROOT=/opt/silabs/wiseconnect-wifi-bt-sdk/ -ENV WISECONNECT3_DIR=${SISDK_ROOT}/extension/wiseconnect -ENV ARM_GCC_DIR=/opt/arm-gcc -ENV JAVA21_HOME=/opt/silabs/amazon-corretto-21.0.7.6.1-linux-x64 -ENV PATH="${PATH}:/opt/silabs/slc_cli/" -ENV PATH="${PATH}:${ARM_GCC_DIR}/bin" -ENV PATH="${PATH}:${JAVA21_HOME}/bin" -ENV POST_BUILD_EXE=/opt/silabs/simplicity-commander/commander/commander - -# Copy SDKs and tools from build stage to final image -COPY --from=build /tmp/simplicity_sdk ${SISDK_ROOT} -COPY --from=build /tmp/wiseconnect-wifi-bt-sdk/ ${WISECONNECT_SDK_ROOT} -COPY --from=build /tmp/wifi_sdk ${WISECONNECT3_DIR} -COPY --from=build /tmp/slc_cli /opt/silabs/slc_cli -COPY --from=build /tmp/simplicity-commander /opt/silabs/simplicity-commander -COPY --from=build /tmp/arm-gnu-toolchain-* ${ARM_GCC_DIR} -COPY --from=build /tmp/amazon-corretto-21.0.7.6.1-linux-x64 ${JAVA21_HOME} \ No newline at end of file +ENV MATTER_ROOT=/opt/matter_extension \ No newline at end of file From 6bb3e37b0b63180211ab7ef9e422ef2045d96696 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 5 Aug 2025 19:12:46 -0400 Subject: [PATCH 2/8] only matter --- docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 21fae84..493850b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,6 @@ # Stage 1: Build dependencies and download SDKs/tools +ARG VERSION=latest + FROM ghcr.io/project-chip/chip-build:${VERSION} AS build LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip From e3d07789360e943c43f4c9f8650567ba83c9b9c8 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 5 Aug 2025 19:15:30 -0400 Subject: [PATCH 3/8] only matter --- docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 493850b..3d670f5 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -5,6 +5,7 @@ FROM ghcr.io/project-chip/chip-build:${VERSION} AS build LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip RUN git clone https://github.com/SiliconLabsSoftware/matter_extension.git /opt/matter_extension \ + && cd /opt/matter_extension \ && git submodule update --init \ && : # last line From 71364c12b4f085a828b6c47155be166d0b1b30a5 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 5 Aug 2025 19:23:00 -0400 Subject: [PATCH 4/8] add version --- docker/version | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/version b/docker/version index c3f86e9..c7c24c2 100644 --- a/docker/version +++ b/docker/version @@ -1,2 +1,2 @@ -SISDK_Tag=v2025.6.0 -WiFI_SDK_Tag=v3.5.0 +SISDK_Tag=Matter +WiFI_SDK_Tag=v2.6.0 From 2df0b21a46729a7e31c6e0f33e50780cbfab2b85 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 9 Sep 2025 11:37:20 -0400 Subject: [PATCH 5/8] rename version --- docker/version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/version b/docker/version index c7c24c2..199dd5c 100644 --- a/docker/version +++ b/docker/version @@ -1,2 +1,2 @@ SISDK_Tag=Matter -WiFI_SDK_Tag=v2.6.0 +WiFI_SDK_Tag=Extension From ff10976d53395ba45c8b988c3f6ffe9ef86c886c Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 9 Sep 2025 11:52:36 -0400 Subject: [PATCH 6/8] clone matter_Extension --- docker/Dockerfile | 71 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3d670f5..0263f66 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,10 +3,73 @@ ARG VERSION=latest FROM ghcr.io/project-chip/chip-build:${VERSION} AS build LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip +# Allow overriding the matter_extension repository and ref at build time for reproducibility +ARG MATTER_EXTENSION_REPO=https://github.com/SiliconLabsSoftware/matter_extension.git +ARG MATTER_EXTENSION_REF=main -RUN git clone https://github.com/SiliconLabsSoftware/matter_extension.git /opt/matter_extension \ - && cd /opt/matter_extension \ - && git submodule update --init \ +# Clone matter_extension (shallow) and initialize submodules recursively, then create deterministic symlink +RUN git clone --depth 1 --branch ${MATTER_EXTENSION_REF} ${MATTER_EXTENSION_REPO} /opt/matter_extension \ + && git -C /opt/matter_extension submodule update --init \ + && mkdir -p /opt/matter_extension/third_party/simplicity_sdk/extension \ + && ln -sfn /opt/matter_extension /opt/matter_extension/third_party/simplicity_sdk/extension/matter_extension \ + && ln -sfn /opt/matter_extension/third_party/wifi_sdk /opt/matter_extension/third_party/simplicity_sdk/extension/wifi_sdk \ && : # last line -ENV MATTER_ROOT=/opt/matter_extension \ No newline at end of file +# Download and extract SLC CLI +RUN wget https://www.silabs.com/documents/login/software/slc_cli_linux.zip \ + && unzip ./slc_cli_linux.zip -d /tmp \ + && rm ./slc_cli_linux.zip \ + && : # last line + +# Download and extract Simplicity Commander +RUN wget https://www.silabs.com/documents/public/software/SimplicityCommander-Linux.zip \ + && unzip ./SimplicityCommander-Linux.zip -d /tmp/simplicity-commander \ + && rm ./SimplicityCommander-Linux.zip \ + && FILE=$(find /tmp/simplicity-commander -name "*Commander_linux_x86_64*") \ + && if [ -n "$FILE" ]; then \ + tar -xjvf "$FILE" -C /tmp/simplicity-commander; \ + else \ + echo "File not found"; \ + fi \ + && : # last line + +# Download and extract ARM GCC toolchain v12.2.rel1 +RUN wget https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz -O /tmp/arm-gnu-toolchain.tar.xz \ + && tar -xJvf /tmp/arm-gnu-toolchain.tar.xz -C /tmp \ + && rm -rf /tmp/arm-gnu-toolchain.tar.xz \ + && : # last line + +# Download and extract Amazon Corretto Java 21 +RUN wget https://corretto.aws/downloads/resources/21.0.7.6.1/amazon-corretto-21.0.7.6.1-linux-x64.tar.gz -O /tmp/java.tar.gz \ + && tar -xzf /tmp/java.tar.gz -C /tmp \ + && rm /tmp/java.tar.gz \ + && ls /tmp \ + && : # last line + +# Stage 2: Final image for SDK compilation +FROM ghcr.io/project-chip/chip-build:${VERSION} + +# Add Python requirements +ADD docker/requirements.txt /tmp/requirements.txt + +ENV MATTER_ROOT=/opt/matter_extension +# Set environment variables for SDKs and tools +ENV GSDK_ROOT=$MATTER_ROOT/third_party/simplicity_sdk/ +ENV SISDK_ROOT=$MATTER_ROOT/third_party/simplicity_sdk/ +ENV WISECONNECT_SDK_ROOT=$MATTER_ROOT/third_party/wiseconnect-wifi-bt-sdk/ +ENV WISECONNECT3_DIR=${SISDK_ROOT}/extension/wiseconnect +ENV ARM_GCC_DIR=/opt/arm-gcc +ENV JAVA21_HOME=/opt/silabs/amazon-corretto-21.0.7.6.1-linux-x64 +ENV PATH="${PATH}:/opt/silabs/slc_cli/" +ENV PATH="${PATH}:${ARM_GCC_DIR}/bin" +ENV PATH="${PATH}:${JAVA21_HOME}/bin" +ENV POST_BUILD_EXE=/opt/silabs/simplicity-commander/commander/commander + +# Copy SDKs and tools from build stage to final image +COPY --from=build /tmp/simplicity_sdk ${SISDK_ROOT} +COPY --from=build /tmp/wiseconnect-wifi-bt-sdk/ ${WISECONNECT_SDK_ROOT} +COPY --from=build /tmp/wifi_sdk ${WISECONNECT3_DIR} +COPY --from=build /tmp/slc_cli /opt/silabs/slc_cli +COPY --from=build /tmp/simplicity-commander /opt/silabs/simplicity-commander +COPY --from=build /tmp/arm-gnu-toolchain-* ${ARM_GCC_DIR} +COPY --from=build /tmp/amazon-corretto-21.0.7.6.1-linux-x64 ${JAVA21_HOME} \ No newline at end of file From e020c050c2ca5b9f6cc6fa8b407e0dd834b45c57 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 9 Sep 2025 12:02:23 -0400 Subject: [PATCH 7/8] fix paths --- docker/Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0263f66..9265efd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -65,10 +65,6 @@ ENV PATH="${PATH}:${ARM_GCC_DIR}/bin" ENV PATH="${PATH}:${JAVA21_HOME}/bin" ENV POST_BUILD_EXE=/opt/silabs/simplicity-commander/commander/commander -# Copy SDKs and tools from build stage to final image -COPY --from=build /tmp/simplicity_sdk ${SISDK_ROOT} -COPY --from=build /tmp/wiseconnect-wifi-bt-sdk/ ${WISECONNECT_SDK_ROOT} -COPY --from=build /tmp/wifi_sdk ${WISECONNECT3_DIR} COPY --from=build /tmp/slc_cli /opt/silabs/slc_cli COPY --from=build /tmp/simplicity-commander /opt/silabs/simplicity-commander COPY --from=build /tmp/arm-gnu-toolchain-* ${ARM_GCC_DIR} From 8d4dbeb5f4a14e4ac05f485dbbd6111e0c0a3878 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Tue, 9 Sep 2025 13:34:35 -0400 Subject: [PATCH 8/8] copying matter --- docker/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 9265efd..1f6e919 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -52,7 +52,7 @@ FROM ghcr.io/project-chip/chip-build:${VERSION} # Add Python requirements ADD docker/requirements.txt /tmp/requirements.txt -ENV MATTER_ROOT=/opt/matter_extension +ENV MATTER_ROOT=/opt/silabs/matter_extension # Set environment variables for SDKs and tools ENV GSDK_ROOT=$MATTER_ROOT/third_party/simplicity_sdk/ ENV SISDK_ROOT=$MATTER_ROOT/third_party/simplicity_sdk/ @@ -68,4 +68,5 @@ ENV POST_BUILD_EXE=/opt/silabs/simplicity-commander/commander/commander COPY --from=build /tmp/slc_cli /opt/silabs/slc_cli COPY --from=build /tmp/simplicity-commander /opt/silabs/simplicity-commander COPY --from=build /tmp/arm-gnu-toolchain-* ${ARM_GCC_DIR} -COPY --from=build /tmp/amazon-corretto-21.0.7.6.1-linux-x64 ${JAVA21_HOME} \ No newline at end of file +COPY --from=build /tmp/amazon-corretto-21.0.7.6.1-linux-x64 ${JAVA21_HOME} +COPY --from=build /opt/matter_extension ${MATTER_ROOT} \ No newline at end of file