fix(kiosk): build against stock bookworm gtk 4.8.3 (drop v4_12 feature)

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.
This commit is contained in:
Mitchell R 2026-05-19 04:18:54 +02:00
parent fa4c1684a3
commit b2f61d2bc9
No known key found for this signature in database
2 changed files with 7 additions and 9 deletions

View file

@ -78,14 +78,10 @@ jobs:
echo "version=$version" >> "$GITHUB_OUTPUT" echo "version=$version" >> "$GITHUB_OUTPUT"
- name: Install GTK/GStreamer/WebKit build deps - name: Install GTK/GStreamer/WebKit build deps
# gtk4-rs 0.9 + the v4_12 feature need libgtk-4-dev >= 4.12. Plain # gtk4-rs 0.9 with the v4_8 feature builds against bookworm's stock
# bookworm ships 4.8.3; backports ships 4.12+. Same arrangement we # libgtk-4-dev 4.8.3 — same version that ships on Pi OS Bookworm.
# use on the Pi.
run: | run: |
echo "deb http://deb.debian.org/debian bookworm-backports main" \ apt-get install -y --no-install-recommends \
> /etc/apt/sources.list.d/bookworm-backports.list
apt-get update
apt-get install -y --no-install-recommends -t bookworm-backports \
libgtk-4-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ libgtk-4-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
libwebkitgtk-6.0-dev libssl-dev libwebkitgtk-6.0-dev libssl-dev

View file

@ -6,8 +6,10 @@ description = "BetterFrame kiosk — multi-camera display with GTK4 + GStreamer"
license = "AGPL-3.0-only OR Commercial" license = "AGPL-3.0-only OR Commercial"
[dependencies] [dependencies]
# GTK4 for windowing/layout # GTK4 for windowing/layout. v4_8 = Pi OS Bookworm's libgtk-4 version. We
gtk4 = { version = "0.9", features = ["v4_12"] } # 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 for RTSP decode
gstreamer = "0.23" gstreamer = "0.23"