From e4bb657fd76c74d605c52061f8f078ab4b346308 Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Tue, 7 Oct 2025 16:34:55 +0200 Subject: [PATCH 1/9] Using Python 3.9 temporarily until Ubuntu24.04 is released in OSS-Fuzz --- projects/connectedhomeip/Dockerfile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index 3fb3e58ef573..a7e200972f7e 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -14,6 +14,7 @@ # ################################################################################ + FROM gcr.io/oss-fuzz-base/base-builder # Install prerequisite packages @@ -23,22 +24,22 @@ RUN apt-get update && \ libavahi-client-dev ninja-build \ unzip libgirepository1.0-dev libcairo2-dev libreadline-dev -# Installing Python3.10 and using it instead of the default Python taken from the base-builder image +# Installing Python3.9 and using it instead of the default Python taken from the base-builder image RUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ apt-get update && \ - apt-get install -y pkg-config python3.10 python3.10-dev python3.10-venv && \ - ln --force -s /usr/bin/python3.10 /usr/bin/python3 + apt-get install -y pkg-config python3.9 python3.9-dev python3.9-venv && \ + ln --force -s /usr/bin/python3.9 /usr/bin/python3 # Ensure python that was just installed gets precedence over # the one already installed in /usr/local/bin ENV PATH="/usr/bin/:${PATH}" -RUN python3 -m ensurepip --upgrade +#RUN python3 -m ensurepip --upgrade # PEP-517 needed for cryptography. Update pip -RUN python3 -m pip install --upgrade pip setuptools wheel packaging +RUN pip install --upgrade pip setuptools wheel packaging # Install Rust for building `cryptography` python package when bootstraping pigweed RUN curl https://sh.rustup.rs -sSf | sh -s -- -y From 46ac2a819b471357dd409d654e8370d6f9459cff Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Tue, 7 Oct 2025 16:49:26 +0200 Subject: [PATCH 2/9] using python3.11 --- projects/connectedhomeip/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index a7e200972f7e..a7ca6daa3275 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -29,8 +29,8 @@ RUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ apt-get update && \ - apt-get install -y pkg-config python3.9 python3.9-dev python3.9-venv && \ - ln --force -s /usr/bin/python3.9 /usr/bin/python3 + apt-get install -y pkg-config python3.11 python3.11-dev python3.11-venv && \ + ln --force -s /usr/bin/python3.11 /usr/bin/python3 # Ensure python that was just installed gets precedence over # the one already installed in /usr/local/bin From 5cdac0101dbca9d7353c428b6c2ea15271721074 Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Tue, 7 Oct 2025 17:04:47 +0200 Subject: [PATCH 3/9] build python 3.10 from source --- projects/connectedhomeip/Dockerfile | 37 ++++++++++++++++++----------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index a7ca6daa3275..a328554303dc 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -24,23 +24,32 @@ RUN apt-get update && \ libavahi-client-dev ninja-build \ unzip libgirepository1.0-dev libcairo2-dev libreadline-dev -# Installing Python3.9 and using it instead of the default Python taken from the base-builder image +# Build Python 3.10 from source (no more available in deadsnakes for Ubuntu 20.04) +# ONCE OSS-Fuzz release Base image with Ubuntu 24.04, we can switch to that and stop building python from source RUN apt-get update && \ - apt-get install -y software-properties-common && \ - add-apt-repository ppa:deadsnakes/ppa && \ - apt-get update && \ - apt-get install -y pkg-config python3.11 python3.11-dev python3.11-venv && \ - ln --force -s /usr/bin/python3.11 /usr/bin/python3 + apt-get install -y --no-install-recommends \ + build-essential zlib1g-dev libncurses5-dev libgdbm-dev libgdbm-compat-dev \ + libnss3-dev libffi-dev libsqlite3-dev wget curl ca-certificates \ + libbz2-dev liblzma-dev xz-utils uuid-dev && \ + rm -rf /var/lib/apt/lists/* && \ + cd /tmp && set -eux; \ + curl -fL https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz -o Python-3.10.14.tgz && \ + tar -xf Python-3.10.14.tgz && \ + cd Python-3.10.14 && \ + ./configure --enable-optimizations --prefix=/usr/local \ + --with-lto --enable-shared && \ + make -j"$(nproc)" && \ + make altinstall && \ + ln --force -s /usr/local/bin/python3.10 /usr/bin/python3 && \ + ln --force -s /usr/local/bin/pip3.10 /usr/bin/pip3 && \ + echo "/usr/local/lib" > /etc/ld.so.conf.d/python3.10.conf && ldconfig && \ + cd / && rm -rf /tmp/Python-3.10.14* -# Ensure python that was just installed gets precedence over -# the one already installed in /usr/local/bin -ENV PATH="/usr/bin/:${PATH}" - -#RUN python3 -m ensurepip --upgrade # PEP-517 needed for cryptography. Update pip -RUN pip install --upgrade pip setuptools wheel packaging - +RUN python3 -m ensurepip --upgrade && \ + python3 -m pip install --upgrade pip setuptools wheel packaging + # Install Rust for building `cryptography` python package when bootstraping pigweed RUN curl https://sh.rustup.rs -sSf | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" @@ -62,4 +71,4 @@ RUN cd $SRC/connectedhomeip && scripts/checkout_submodules.py --shallow --platfo SHELL ["/bin/bash", "-c"] RUN cd $SRC/connectedhomeip && . scripts/bootstrap.sh -COPY build.sh $SRC/ +COPY build.sh $SRC/ \ No newline at end of file From 7d4da6d40b10e5e68b23fe3fddbe2267975ab310 Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Tue, 7 Oct 2025 17:31:43 +0200 Subject: [PATCH 4/9] glib workaround --- projects/connectedhomeip/Dockerfile | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index a328554303dc..f07c0c1d97e8 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -36,7 +36,7 @@ RUN apt-get update && \ curl -fL https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz -o Python-3.10.14.tgz && \ tar -xf Python-3.10.14.tgz && \ cd Python-3.10.14 && \ - ./configure --enable-optimizations --prefix=/usr/local \ + ./configure --prefix=/usr/local \ --with-lto --enable-shared && \ make -j"$(nproc)" && \ make altinstall && \ @@ -46,10 +46,15 @@ RUN apt-get update && \ cd / && rm -rf /tmp/Python-3.10.14* +# Reinstall GLib development headers (workaround needed for gio/gio.h) +RUN apt-get update && \ + apt-get install -y --no-install-recommends libglib2.0-dev + +RUN python3 -m ensurepip --upgrade + # PEP-517 needed for cryptography. Update pip -RUN python3 -m ensurepip --upgrade && \ - python3 -m pip install --upgrade pip setuptools wheel packaging - +RUN python3 -m pip install --upgrade pip setuptools wheel packaging + # Install Rust for building `cryptography` python package when bootstraping pigweed RUN curl https://sh.rustup.rs -sSf | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" From e6d31f2e8b4b612dac7770b1e7309484aeda3f15 Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Sat, 11 Oct 2025 19:17:38 +0200 Subject: [PATCH 5/9] use ubuntu 24.04 base builder --- projects/connectedhomeip/Dockerfile | 31 +---------------------------- 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index f07c0c1d97e8..80ec6156f5c6 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -14,8 +14,7 @@ # ################################################################################ - -FROM gcr.io/oss-fuzz-base/base-builder +FROM gcr.io/oss-fuzz-base/base-builder:ubuntu-24-04 # Install prerequisite packages # See connectedhomeip/docs/guides/BUILDING.md#prerequisites @@ -24,34 +23,6 @@ RUN apt-get update && \ libavahi-client-dev ninja-build \ unzip libgirepository1.0-dev libcairo2-dev libreadline-dev -# Build Python 3.10 from source (no more available in deadsnakes for Ubuntu 20.04) -# ONCE OSS-Fuzz release Base image with Ubuntu 24.04, we can switch to that and stop building python from source -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - build-essential zlib1g-dev libncurses5-dev libgdbm-dev libgdbm-compat-dev \ - libnss3-dev libffi-dev libsqlite3-dev wget curl ca-certificates \ - libbz2-dev liblzma-dev xz-utils uuid-dev && \ - rm -rf /var/lib/apt/lists/* && \ - cd /tmp && set -eux; \ - curl -fL https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz -o Python-3.10.14.tgz && \ - tar -xf Python-3.10.14.tgz && \ - cd Python-3.10.14 && \ - ./configure --prefix=/usr/local \ - --with-lto --enable-shared && \ - make -j"$(nproc)" && \ - make altinstall && \ - ln --force -s /usr/local/bin/python3.10 /usr/bin/python3 && \ - ln --force -s /usr/local/bin/pip3.10 /usr/bin/pip3 && \ - echo "/usr/local/lib" > /etc/ld.so.conf.d/python3.10.conf && ldconfig && \ - cd / && rm -rf /tmp/Python-3.10.14* - - -# Reinstall GLib development headers (workaround needed for gio/gio.h) -RUN apt-get update && \ - apt-get install -y --no-install-recommends libglib2.0-dev - -RUN python3 -m ensurepip --upgrade - # PEP-517 needed for cryptography. Update pip RUN python3 -m pip install --upgrade pip setuptools wheel packaging From c31655333d1cb38eada5781c315840e3a1553c4a Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Sat, 11 Oct 2025 19:35:48 +0200 Subject: [PATCH 6/9] adding libmount to dockerfile --- projects/connectedhomeip/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index 80ec6156f5c6..ab7378876649 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -21,7 +21,7 @@ FROM gcr.io/oss-fuzz-base/base-builder:ubuntu-24-04 RUN apt-get update && \ apt-get install -y --no-install-recommends pkg-config libssl-dev libdbus-1-dev libglib2.0-dev \ libavahi-client-dev ninja-build \ - unzip libgirepository1.0-dev libcairo2-dev libreadline-dev + unzip libgirepository1.0-dev libcairo2-dev libreadline-dev libmount-dev # PEP-517 needed for cryptography. Update pip RUN python3 -m pip install --upgrade pip setuptools wheel packaging From e4a7dbffca2ddab0b611c59cb36f472c77665b22 Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Mon, 13 Oct 2025 13:49:53 +0200 Subject: [PATCH 7/9] Testing local branch --- projects/connectedhomeip/Dockerfile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index ab7378876649..fb229c7c709e 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -21,10 +21,7 @@ FROM gcr.io/oss-fuzz-base/base-builder:ubuntu-24-04 RUN apt-get update && \ apt-get install -y --no-install-recommends pkg-config libssl-dev libdbus-1-dev libglib2.0-dev \ libavahi-client-dev ninja-build \ - unzip libgirepository1.0-dev libcairo2-dev libreadline-dev libmount-dev - -# PEP-517 needed for cryptography. Update pip -RUN python3 -m pip install --upgrade pip setuptools wheel packaging + unzip libgirepository1.0-dev libcairo2-dev libreadline-dev # Install Rust for building `cryptography` python package when bootstraping pigweed RUN curl https://sh.rustup.rs -sSf | sh -s -- -y @@ -32,7 +29,7 @@ ENV PATH="/root/.cargo/bin:${PATH}" RUN rustup install nightly RUN rustup default nightly -RUN git clone --depth=1 https://github.com/project-chip/connectedhomeip.git connectedhomeip +RUN git clone --depth=1 --branch AA/stopStaticLibLinkingOSS https://github.com/Alami-Amine/connectedhomeip.git connectedhomeip # PW_PROJECT_ROOT is used in requirements.build.txt ENV PW_PROJECT_ROOT=$SRC/connectedhomeip From bf29ec2bb89da598d83975898b862574dd24d107 Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Mon, 13 Oct 2025 19:44:28 +0200 Subject: [PATCH 8/9] building Glib --- projects/connectedhomeip/Dockerfile | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index fb229c7c709e..a3690df53658 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -14,7 +14,7 @@ # ################################################################################ -FROM gcr.io/oss-fuzz-base/base-builder:ubuntu-24-04 +FROM gcr.io/oss-fuzz-base/base-builder:latest # Install prerequisite packages # See connectedhomeip/docs/guides/BUILDING.md#prerequisites @@ -23,13 +23,27 @@ RUN apt-get update && \ libavahi-client-dev ninja-build \ unzip libgirepository1.0-dev libcairo2-dev libreadline-dev +RUN pip3 install meson + + +RUN cd /tmp && \ + wget https://download.gnome.org/sources/glib/2.68/glib-2.68.0.tar.xz && \ + tar xf glib-2.68.0.tar.xz && \ + cd glib-2.68.0 && \ + meson _build --prefix=/usr/local && \ + ninja -C _build && \ + ninja -C _build install && \ + ldconfig && \ + cd / && rm -rf /tmp/glib-2.68.0* + + # Install Rust for building `cryptography` python package when bootstraping pigweed RUN curl https://sh.rustup.rs -sSf | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" RUN rustup install nightly RUN rustup default nightly -RUN git clone --depth=1 --branch AA/stopStaticLibLinkingOSS https://github.com/Alami-Amine/connectedhomeip.git connectedhomeip +RUN git clone --depth=1 https://github.com/project-chip/connectedhomeip.git connectedhomeip # PW_PROJECT_ROOT is used in requirements.build.txt ENV PW_PROJECT_ROOT=$SRC/connectedhomeip From d784d9a37bbd6dc2e7779d458342b94ffb396c1e Mon Sep 17 00:00:00 2001 From: Alami-Amine Date: Mon, 13 Oct 2025 21:29:26 +0200 Subject: [PATCH 9/9] build static and dynamic glib --- projects/connectedhomeip/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/connectedhomeip/Dockerfile b/projects/connectedhomeip/Dockerfile index a3690df53658..4a682aef2364 100644 --- a/projects/connectedhomeip/Dockerfile +++ b/projects/connectedhomeip/Dockerfile @@ -30,7 +30,8 @@ RUN cd /tmp && \ wget https://download.gnome.org/sources/glib/2.68/glib-2.68.0.tar.xz && \ tar xf glib-2.68.0.tar.xz && \ cd glib-2.68.0 && \ - meson _build --prefix=/usr/local && \ + meson _build --prefix=/usr/local \ + --default-library=both && \ ninja -C _build && \ ninja -C _build install && \ ldconfig && \