From fdea739a4b4708062a037b922f5d6fabf777c638 Mon Sep 17 00:00:00 2001 From: Michal Pelka Date: Mon, 18 May 2026 01:25:55 +0200 Subject: [PATCH 1/4] Fix beep on saving Laz on cm5 direcect Signed-off-by: Michal Pelka --- code/gpios.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/gpios.h b/code/gpios.h index 639b28f..998d91f 100644 --- a/code/gpios.h +++ b/code/gpios.h @@ -13,6 +13,7 @@ struct gpiod_line; namespace mandeye { + using namespace hardware; // forward declaration of cppgpio type that I want to keep inside compliation unit @@ -108,7 +109,8 @@ class GpioClient std::mutex m_lock; std::atomic m_running{true}; }; -static std::mutex gpioClientPtrLock; -static std::shared_ptr gpioClientPtr; + +inline std::mutex gpioClientPtrLock; +inline std::shared_ptr gpioClientPtr; } // namespace mandeye \ No newline at end of file From 574d2cba9210a691e555f5afc87ceb2ecac3ca71 Mon Sep 17 00:00:00 2001 From: Michal Pelka Date: Tue, 19 May 2026 00:11:49 +0200 Subject: [PATCH 2/4] Add CI workflow to build ARM64 Debian packages Builds .deb packages for mandeye-standard-rpi5.h and mandeye-direct-cm5.h using QEMU arm64 emulation on debian:bookworm. Packages are uploaded as artifacts on push to main, PRs, and manual dispatch. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build-deb.yml | 66 +++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/build-deb.yml diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml new file mode 100644 index 0000000..2c91f21 --- /dev/null +++ b/.github/workflows/build-deb.yml @@ -0,0 +1,66 @@ +name: Build Debian Package (ARM64) + +on: + push: + branches: [main] + pull_request: + workflow_dispatch: + +jobs: + build-deb: + name: Debian package - ${{ matrix.config.name }} + runs-on: ubuntu-latest + permissions: + contents: read + + strategy: + fail-fast: false + matrix: + config: + - name: standard-rpi5 + hardware_header: mandeye-standard-rpi5.h + cmake_extra: -DMANDEYE_USE_LIBCAMERA=FALSE + - name: direct-cm5 + hardware_header: mandeye-direct-cm5.h + cmake_extra: "" + + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + + - uses: actions/checkout@v4 + with: + submodules: true + + - name: Build Debian package + run: | + docker run --rm --platform linux/arm64 \ + -v ${{ github.workspace }}:/workspace \ + -w /workspace \ + arm64v8/debian:bookworm \ + bash -c " + set -e + apt-get update -qq + apt-get install -y -qq --no-install-recommends \ + build-essential cmake git pkg-config ca-certificates \ + libserial-dev libgpiod-dev libzmq3-dev libboost-all-dev \ + libpistache-dev rapidjson-dev nlohmann-json3-dev cppzmq-dev \ + libcamera-dev libopencv-dev pps-tools + update-ca-certificates + cmake -B build-pkg \ + -DCMAKE_BUILD_TYPE=Release \ + -DMANDEYE_HARDWARE_HEADER=${{ matrix.config.hardware_header }} \ + ${{ matrix.config.cmake_extra }} + cmake --build build-pkg -j\$(nproc) + cd build-pkg + cpack -G DEB + " + + - name: Upload Debian package + uses: actions/upload-artifact@v4 + with: + name: mandeye-deb-${{ matrix.config.name }} + path: build-pkg/*.deb + if-no-files-found: error \ No newline at end of file From cfdc97f00166ce9b356592d5b16fb030b26969cc Mon Sep 17 00:00:00 2001 From: Michal Pelka Date: Tue, 19 May 2026 00:33:46 +0200 Subject: [PATCH 3/4] Fix git safe.directory for mounted workspace in Docker Inside the arm64 container the workspace is owned by the host user, causing Git 2.35+ to block submodule access. Mark all directories safe. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build-deb.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml index 2c91f21..9caa1a6 100644 --- a/.github/workflows/build-deb.yml +++ b/.github/workflows/build-deb.yml @@ -42,6 +42,7 @@ jobs: arm64v8/debian:bookworm \ bash -c " set -e + git config --global --add safe.directory '*' apt-get update -qq apt-get install -y -qq --no-install-recommends \ build-essential cmake git pkg-config ca-certificates \ From c80f08c0e5caef66b999c56e6e0dbd52d3030d56 Mon Sep 17 00:00:00 2001 From: Michal Pelka Date: Tue, 19 May 2026 00:36:19 +0200 Subject: [PATCH 4/4] Fix git safe.directory called before git is installed Move the git config call to after apt-get installs git. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build-deb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml index 9caa1a6..f48bae8 100644 --- a/.github/workflows/build-deb.yml +++ b/.github/workflows/build-deb.yml @@ -42,7 +42,6 @@ jobs: arm64v8/debian:bookworm \ bash -c " set -e - git config --global --add safe.directory '*' apt-get update -qq apt-get install -y -qq --no-install-recommends \ build-essential cmake git pkg-config ca-certificates \ @@ -50,6 +49,7 @@ jobs: libpistache-dev rapidjson-dev nlohmann-json3-dev cppzmq-dev \ libcamera-dev libopencv-dev pps-tools update-ca-certificates + git config --global --add safe.directory '*' cmake -B build-pkg \ -DCMAKE_BUILD_TYPE=Release \ -DMANDEYE_HARDWARE_HEADER=${{ matrix.config.hardware_header }} \