From b2f61d2bc9d214246f67d93217bebb69bfa6823a Mon Sep 17 00:00:00 2001 From: Mitchell R Date: Tue, 19 May 2026 04:18:54 +0200 Subject: [PATCH] fix(kiosk): build against stock bookworm gtk 4.8.3 (drop v4_12 feature) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pi OS Bookworm + Debian bookworm both ship libgtk-4 4.8.3. No code in the kiosk uses 4.12+ APIs (compute_bounds, WidgetPaintable, Picture, add_tick_callback, Fixed, set_content_fit are all <= 4.8). Swap gtk4 feature v4_12 → v4_8 and drop the bookworm-backports juggling in CI. --- .github/workflows/release-kiosk.yml | 10 +++------- kiosk/Cargo.toml | 6 ++++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release-kiosk.yml b/.github/workflows/release-kiosk.yml index 964fe47..9059846 100644 --- a/.github/workflows/release-kiosk.yml +++ b/.github/workflows/release-kiosk.yml @@ -78,14 +78,10 @@ jobs: echo "version=$version" >> "$GITHUB_OUTPUT" - name: Install GTK/GStreamer/WebKit build deps - # gtk4-rs 0.9 + the v4_12 feature need libgtk-4-dev >= 4.12. Plain - # bookworm ships 4.8.3; backports ships 4.12+. Same arrangement we - # use on the Pi. + # gtk4-rs 0.9 with the v4_8 feature builds against bookworm's stock + # libgtk-4-dev 4.8.3 — same version that ships on Pi OS Bookworm. run: | - echo "deb http://deb.debian.org/debian bookworm-backports main" \ - > /etc/apt/sources.list.d/bookworm-backports.list - apt-get update - apt-get install -y --no-install-recommends -t bookworm-backports \ + apt-get install -y --no-install-recommends \ libgtk-4-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ libwebkitgtk-6.0-dev libssl-dev diff --git a/kiosk/Cargo.toml b/kiosk/Cargo.toml index 919eb41..a183be6 100644 --- a/kiosk/Cargo.toml +++ b/kiosk/Cargo.toml @@ -6,8 +6,10 @@ description = "BetterFrame kiosk — multi-camera display with GTK4 + GStreamer" license = "AGPL-3.0-only OR Commercial" [dependencies] -# GTK4 for windowing/layout -gtk4 = { version = "0.9", features = ["v4_12"] } +# GTK4 for windowing/layout. v4_8 = Pi OS Bookworm's libgtk-4 version. We +# don't use any 4.12+ APIs; bumping the feature gate would force pulling +# from backports for no functional gain. +gtk4 = { version = "0.9", features = ["v4_8"] } # GStreamer for RTSP decode gstreamer = "0.23"