From 52bf5f10e092acf8ea72a04d39084b978ebb1672 Mon Sep 17 00:00:00 2001 From: Joel Winarske Date: Fri, 19 Jun 2026 18:29:44 -0700 Subject: [PATCH] fix(cross): bake hwdata into the toolchain image for libdisplay-info libdisplay-info 0.2.0's meson build reads /usr/share/hwdata/pnp.ids on the build machine to bake the PNP-ID table into the library; without it `meson setup` fails ("File /usr/share/hwdata/pnp.ids does not exist"). Add hwdata to the image toolset alongside build-essential. Toolset change re-keys the image tag, so publish rebuilds it automatically. Signed-off-by: Joel Winarske --- .github/cspell.json | 1 + lib/src/cross/dockerfile_emitter.dart | 5 +++-- test/src/cross/dockerfile_emitter_test.dart | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/cspell.json b/.github/cspell.json index 6bc09aa..91833ce 100644 --- a/.github/cspell.json +++ b/.github/cspell.json @@ -46,6 +46,7 @@ "libxkbcommon", "dlopens", "gstreamer", + "hwdata", "pipewire", "sdbus", "waypp", diff --git a/lib/src/cross/dockerfile_emitter.dart b/lib/src/cross/dockerfile_emitter.dart index 4886876..5e4a593 100644 --- a/lib/src/cross/dockerfile_emitter.dart +++ b/lib/src/cross/dockerfile_emitter.dart @@ -50,10 +50,11 @@ FROM $fromImage # Build tooling: cmake/ninja/meson/pkg-config + the embedder's host codegen # (wayland-scanner via libwayland-bin; git/curl for the engine-header fetch). # build-essential gives meson a native (build-machine) compiler — required to -# configure even a cross build when rebuilding `augment` libs (libdisplay-info). +# configure even a cross build when rebuilding `augment` libs (libdisplay-info, +# which also reads hwdata's /usr/share/hwdata/pnp.ids at build time). RUN apt-get update \\ && apt-get install -y --no-install-recommends \\ - cmake ninja-build meson build-essential pkg-config \\ + cmake ninja-build meson build-essential pkg-config hwdata \\ tar xz-utils rsync ca-certificates libwayland-bin git curl \\ && rm -rf /var/lib/apt/lists/* ENV FLUTTER_WORKSPACE=$workspace diff --git a/test/src/cross/dockerfile_emitter_test.dart b/test/src/cross/dockerfile_emitter_test.dart index 35bb6ec..6aad2aa 100644 --- a/test/src/cross/dockerfile_emitter_test.dart +++ b/test/src/cross/dockerfile_emitter_test.dart @@ -23,6 +23,7 @@ void main() { expect(df, contains('ninja-build')); expect(df, contains('meson')); // builds augment libs (libdisplay-info) expect(df, contains('build-essential')); // native cc for meson configure + expect(df, contains('hwdata')); // libdisplay-info build reads pnp.ids expect(df, contains('libwayland-bin')); // wayland-scanner for wayland-egl expect(df, contains('FROM ${ToolchainImage.defaultFrom}')); expect(df, contains('emb.triple="aarch64-none-linux-gnu"'));