From 894b5e6aa703b08a0a3b30500581ee69a5274227 Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sat, 23 May 2026 11:28:22 -0400 Subject: [PATCH 01/10] Update opensomeip to v0.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump the opensomeip dependency from v0.0.4 to v0.1.0 across all platforms. The new release is fully backward-compatible with the existing examples. - C++ FetchContent: GIT_TAG v0.0.4 → v0.1.0 - CI Zephyr job: OPENSOMEIP_COMMIT v0.0.4 → v0.1.0 - Docker Zephyr image: OPENSOMEIP_COMMIT v0.0.4 → v0.1.0 - Python requirements: opensomeip>=0.1.2 → opensomeip>=0.1.0 Closes #1 Co-authored-by: Cursor --- .github/workflows/ci.yml | 2 +- cpp/CMakeLists.txt | 2 +- docker/Dockerfile.zephyr | 2 +- python/requirements.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 66f50c1..0946ea0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -225,7 +225,7 @@ jobs: run_tests: false env: ZEPHYR_SDK_VERSION: "0.17.0" - OPENSOMEIP_COMMIT: "v0.0.4" + OPENSOMEIP_COMMIT: "v0.1.0" steps: - uses: actions/checkout@v4 diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 1acc063..c6d019a 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -14,7 +14,7 @@ include(FetchContent) FetchContent_Declare( opensomeip GIT_REPOSITORY https://github.com/vtz/opensomeip.git - GIT_TAG v0.0.4 + GIT_TAG v0.1.0 ) set(BUILD_TESTS OFF CACHE BOOL "" FORCE) set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) diff --git a/docker/Dockerfile.zephyr b/docker/Dockerfile.zephyr index 5b9a87b..0251562 100644 --- a/docker/Dockerfile.zephyr +++ b/docker/Dockerfile.zephyr @@ -55,7 +55,7 @@ RUN groupadd -r zephyrci && useradd -r -g zephyrci -m -d /home/zephyrci zephyrci USER zephyrci # Clone opensomeip for use as a Zephyr module -ARG OPENSOMEIP_COMMIT=v0.0.4 +ARG OPENSOMEIP_COMMIT=v0.1.0 RUN git clone https://github.com/vtz/opensomeip.git /workspace/opensomeip \ && cd /workspace/opensomeip \ && git checkout ${OPENSOMEIP_COMMIT} diff --git a/python/requirements.txt b/python/requirements.txt index 59ab8dd..9e3f06b 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1,2 +1,2 @@ -opensomeip>=0.1.2 +opensomeip>=0.1.0 pyyaml>=6.0 From de47c0e54703f288160b1406b63b03b4ba6abad3 Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sun, 24 May 2026 23:00:33 -0400 Subject: [PATCH 02/10] Fix Zephyr CI: run west build from inside the workspace west requires being invoked from within its initialized workspace directory tree (where .west/ lives). The build step was running from $GITHUB_WORKSPACE which has no .west/ config, causing "west: unknown command build". cd into ~/zephyrproject before west build and use $GITHUB_WORKSPACE absolute paths for app sources and build output directories. Co-authored-by: Cursor --- .github/workflows/ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0946ea0..94020db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -274,6 +274,7 @@ jobs: ZEPHYR_SDK_INSTALL_DIR: ~/zephyr-sdk-0.17.0 OPENSOMEIP_ROOT: ~/opensomeip run: | + cd ~/zephyrproject BOARD="${{ matrix.target }}" for app in ${{ matrix.apps }}; do echo "=== Building $app for $BOARD ===" @@ -281,8 +282,8 @@ jobs: if [ "$BOARD" = "s32k388_renode" ]; then EXTRA_ARGS="-DBOARD_ROOT=$OPENSOMEIP_ROOT/zephyr" fi - west build -b "$BOARD" "zephyr/$app" \ - -d "build/zephyr/${BOARD}_${app}" \ + west build -b "$BOARD" "$GITHUB_WORKSPACE/zephyr/$app" \ + -d "$GITHUB_WORKSPACE/build/zephyr/${BOARD}_${app}" \ --pristine auto -- \ -DOPENSOMEIP_ROOT="$OPENSOMEIP_ROOT" $EXTRA_ARGS done @@ -293,7 +294,7 @@ jobs: ZEPHYR_BASE: ~/zephyrproject/zephyr run: | echo "=== Running e2e_protection ===" - timeout 30 ./build/zephyr/native_sim_e2e_protection/zephyr/zephyr.exe + timeout 30 $GITHUB_WORKSPACE/build/zephyr/native_sim_e2e_protection/zephyr/zephyr.exe combined: name: Cross-Language Tests From 370d7ae2732025043b9dcc7fedf11fc11481f5ed Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sun, 24 May 2026 23:07:44 -0400 Subject: [PATCH 03/10] Fix Zephyr CI: expand OPENSOMEIP_ROOT to absolute path CMake does not expand ~ in paths. When OPENSOMEIP_ROOT was set via YAML env: to ~/opensomeip, CMake received the literal tilde and rejected it as an invalid Zephyr module path. Move OPENSOMEIP_ROOT into the shell script using $HOME so the shell resolves it to an absolute path before passing it to CMake via -D. Co-authored-by: Cursor --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 94020db..bb157c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -272,9 +272,9 @@ jobs: ZEPHYR_BASE: ~/zephyrproject/zephyr ZEPHYR_TOOLCHAIN_VARIANT: zephyr ZEPHYR_SDK_INSTALL_DIR: ~/zephyr-sdk-0.17.0 - OPENSOMEIP_ROOT: ~/opensomeip run: | cd ~/zephyrproject + OPENSOMEIP_ROOT="$HOME/opensomeip" BOARD="${{ matrix.target }}" for app in ${{ matrix.apps }}; do echo "=== Building $app for $BOARD ===" From bcade6ea31cacfbf7ab8ecbb51b42f86b8a01190 Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sun, 24 May 2026 23:15:36 -0400 Subject: [PATCH 04/10] Update Zephyr CI: SDK 1.0.1, pin Zephyr v4.4.0 The Zephyr CI was broken because west init pulled the latest unstable main (v4.4.99-dev) which requires SDK >= 1.0, but the workflow installed SDK 0.17.0. - Upgrade Zephyr SDK from 0.17.0 to 1.0.1 (latest) - Pin Zephyr workspace to v4.4.0 (latest stable) via west init --mr - Update toolchain asset names for SDK 1.0 format (gnu_ prefix) - Use shell-expanded $HOME for ZEPHYR_SDK_INSTALL_DIR and OPENSOMEIP_ROOT to avoid tilde issues with CMake Co-authored-by: Cursor --- .github/workflows/ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb157c1..5aa4c9d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -224,7 +224,8 @@ jobs: apps: "e2e_protection hello_world_server" run_tests: false env: - ZEPHYR_SDK_VERSION: "0.17.0" + ZEPHYR_SDK_VERSION: "1.0.1" + ZEPHYR_VERSION: "v4.4.0" OPENSOMEIP_COMMIT: "v0.1.0" steps: - uses: actions/checkout@v4 @@ -242,7 +243,7 @@ jobs: - name: Initialize Zephyr workspace run: | - west init ~/zephyrproject + west init ~/zephyrproject --mr $ZEPHYR_VERSION cd ~/zephyrproject west update --narrow -o=--depth=1 west zephyr-export @@ -254,12 +255,11 @@ jobs: wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/zephyr-sdk-${ZEPHYR_SDK_VERSION}_linux-x86_64_minimal.tar.xz tar xf zephyr-sdk-${ZEPHYR_SDK_VERSION}_linux-x86_64_minimal.tar.xz -C ~/ ~/zephyr-sdk-${ZEPHYR_SDK_VERSION}/setup.sh -h -c - # Install host and ARM toolchains cd ~/zephyr-sdk-${ZEPHYR_SDK_VERSION} - wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/toolchain_linux-x86_64_x86_64-zephyr-elf.tar.xz - tar xf toolchain_linux-x86_64_x86_64-zephyr-elf.tar.xz - wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/toolchain_linux-x86_64_arm-zephyr-eabi.tar.xz - tar xf toolchain_linux-x86_64_arm-zephyr-eabi.tar.xz + wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/toolchain_gnu_linux-x86_64_x86_64-zephyr-elf.tar.xz + tar xf toolchain_gnu_linux-x86_64_x86_64-zephyr-elf.tar.xz + wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/toolchain_gnu_linux-x86_64_arm-zephyr-eabi.tar.xz + tar xf toolchain_gnu_linux-x86_64_arm-zephyr-eabi.tar.xz - name: Clone opensomeip run: | @@ -271,9 +271,9 @@ jobs: env: ZEPHYR_BASE: ~/zephyrproject/zephyr ZEPHYR_TOOLCHAIN_VARIANT: zephyr - ZEPHYR_SDK_INSTALL_DIR: ~/zephyr-sdk-0.17.0 run: | cd ~/zephyrproject + export ZEPHYR_SDK_INSTALL_DIR="$HOME/zephyr-sdk-$ZEPHYR_SDK_VERSION" OPENSOMEIP_ROOT="$HOME/opensomeip" BOARD="${{ matrix.target }}" for app in ${{ matrix.apps }}; do From 613334bb130b4943c5fd20b80305674280c9420c Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sun, 24 May 2026 23:24:22 -0400 Subject: [PATCH 05/10] Fix Zephyr CI: SOC_ROOT for s32k388, test exit handling - Add -DSOC_ROOT for s32k388_renode so Zephyr can find the custom SoC definition from the opensomeip module alongside BOARD_ROOT - Fix native_sim test: the binary doesn't exit after tests complete (expected for Zephyr RTOS), so check output for "0 failed" instead of relying on exit code from timeout Co-authored-by: Cursor --- .github/workflows/ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5aa4c9d..e13eb78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -280,7 +280,7 @@ jobs: echo "=== Building $app for $BOARD ===" EXTRA_ARGS="" if [ "$BOARD" = "s32k388_renode" ]; then - EXTRA_ARGS="-DBOARD_ROOT=$OPENSOMEIP_ROOT/zephyr" + EXTRA_ARGS="-DBOARD_ROOT=$OPENSOMEIP_ROOT/zephyr -DSOC_ROOT=$OPENSOMEIP_ROOT/zephyr" fi west build -b "$BOARD" "$GITHUB_WORKSPACE/zephyr/$app" \ -d "$GITHUB_WORKSPACE/build/zephyr/${BOARD}_${app}" \ @@ -294,7 +294,9 @@ jobs: ZEPHYR_BASE: ~/zephyrproject/zephyr run: | echo "=== Running e2e_protection ===" - timeout 30 $GITHUB_WORKSPACE/build/zephyr/native_sim_e2e_protection/zephyr/zephyr.exe + timeout 30 $GITHUB_WORKSPACE/build/zephyr/native_sim_e2e_protection/zephyr/zephyr.exe \ + 2>&1 | tee /tmp/e2e_output.log || true + grep -q "0 failed" /tmp/e2e_output.log combined: name: Cross-Language Tests From 0538a23889cc1bed593798c54bd79f18ea37728b Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sun, 24 May 2026 23:33:12 -0400 Subject: [PATCH 06/10] Fix Zephyr CI: extract toolchains into gnu/ subdirectory SDK 1.0 expects toolchains under /gnu/ but the individual toolchain tarballs extract without that prefix. Create the gnu/ directory and extract toolchains there so the SDK can find them. Co-authored-by: Cursor --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e13eb78..281df53 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -255,7 +255,8 @@ jobs: wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/zephyr-sdk-${ZEPHYR_SDK_VERSION}_linux-x86_64_minimal.tar.xz tar xf zephyr-sdk-${ZEPHYR_SDK_VERSION}_linux-x86_64_minimal.tar.xz -C ~/ ~/zephyr-sdk-${ZEPHYR_SDK_VERSION}/setup.sh -h -c - cd ~/zephyr-sdk-${ZEPHYR_SDK_VERSION} + mkdir -p ~/zephyr-sdk-${ZEPHYR_SDK_VERSION}/gnu + cd ~/zephyr-sdk-${ZEPHYR_SDK_VERSION}/gnu wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/toolchain_gnu_linux-x86_64_x86_64-zephyr-elf.tar.xz tar xf toolchain_gnu_linux-x86_64_x86_64-zephyr-elf.tar.xz wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/toolchain_gnu_linux-x86_64_arm-zephyr-eabi.tar.xz From f1b6189c799392a9c08d52cbb60ca8f824d1d1f5 Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sun, 24 May 2026 23:41:24 -0400 Subject: [PATCH 07/10] Add random generator config for s32k388_renode networking The s32k388_renode board has no hardware entropy source but the Zephyr networking stack (used by hello_world_server) requires sys_rand_get. Add a board overlay enabling TEST_RANDOM_GENERATOR for this simulation target. Co-authored-by: Cursor --- zephyr/hello_world_server/boards/s32k388_renode.conf | 1 + 1 file changed, 1 insertion(+) create mode 100644 zephyr/hello_world_server/boards/s32k388_renode.conf diff --git a/zephyr/hello_world_server/boards/s32k388_renode.conf b/zephyr/hello_world_server/boards/s32k388_renode.conf new file mode 100644 index 0000000..dc910b1 --- /dev/null +++ b/zephyr/hello_world_server/boards/s32k388_renode.conf @@ -0,0 +1 @@ +CONFIG_TEST_RANDOM_GENERATOR=y From 03b08daf5998191947942899a4590a52e53dcb06 Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sun, 24 May 2026 23:49:38 -0400 Subject: [PATCH 08/10] Fix s32k388_renode: disable XSI_SINGLE_PROCESS to avoid gettimeofday conflict The opensomeip SoC provides a custom gettimeofday() in soc/s32k388/gettimeofday.c. Zephyr 4.4.0 now also provides one via XSI_SINGLE_PROCESS (pulled in by POSIX_API). Disable it for this board to avoid the duplicate symbol linker error. Co-authored-by: Cursor --- zephyr/hello_world_server/boards/s32k388_renode.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/zephyr/hello_world_server/boards/s32k388_renode.conf b/zephyr/hello_world_server/boards/s32k388_renode.conf index dc910b1..cd27358 100644 --- a/zephyr/hello_world_server/boards/s32k388_renode.conf +++ b/zephyr/hello_world_server/boards/s32k388_renode.conf @@ -1 +1,2 @@ CONFIG_TEST_RANDOM_GENERATOR=y +CONFIG_XSI_SINGLE_PROCESS=n From c1ae32db06314161dcd31232c1caa89308cbe5e1 Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sat, 30 May 2026 01:54:45 -0400 Subject: [PATCH 09/10] Update Python opensomeip requirement to >=0.1.5 Pin the minimum Python opensomeip version to the latest available release (0.1.5) to ensure examples use current bindings. Co-authored-by: Cursor --- python/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/requirements.txt b/python/requirements.txt index 9e3f06b..6fe1efc 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1,2 +1,2 @@ -opensomeip>=0.1.0 +opensomeip>=0.1.5 pyyaml>=6.0 From 2ae869dd58ed08ad309fc61b5013c1402f8d0169 Mon Sep 17 00:00:00 2001 From: Vinicius Zein Date: Sat, 30 May 2026 02:05:22 -0400 Subject: [PATCH 10/10] Add explicit least-privilege permissions to CI workflow Restrict the default GITHUB_TOKEN to read-only contents access, reducing blast radius if any CI step is compromised. Co-authored-by: Cursor --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 281df53..e33245c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ on: pull_request: branches: [main] +permissions: + contents: read + jobs: python: name: Python Examples