diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml index 432e1e0..7b4f414 100644 --- a/.github/workflows/freebsd.yml +++ b/.github/workflows/freebsd.yml @@ -178,7 +178,9 @@ jobs: fi tar -xf "$X/base.txz" -C "$S" ./lib ./usr/lib ./usr/include ./usr/libdata # The libraries the prepare step installs; the build tools and fonts stay host-only. - pkg $P fetch -y -q -d libxkbcommon wayland libX11 libXcursor libXrandr libXi libxcb mesa-libs vulkan-loader gtk3 webkit2-gtk_41 libsoup3 fontconfig freetype2 alsa-lib + # xorgproto provides xproto, renderproto, kbproto and xextproto .pc files that + # GTK's public dependency chain needs, but that are not runtime dependencies. + pkg $P fetch -y -q -d libxkbcommon wayland libX11 libXcursor libXrandr libXi libxcb mesa-libs vulkan-loader gtk3 webkit2-gtk_41 libsoup3 fontconfig freetype2 alsa-lib xorgproto for p in "$X"/cache/*.pkg; do # pkg names each fetched archive with a symlink to its hashed cache file. # tar follows the link; skipping links here leaves the sysroot without any ports. @@ -208,6 +210,7 @@ jobs: echo "error: pkg-config cannot resolve gdk-3.0 from the aarch64 sysroot" >&2 ls -l "$S/usr/local/libdata/pkgconfig/gdk-3.0.pc" >&2 sed -n '1,100p' "$S/usr/local/libdata/pkgconfig/gdk-3.0.pc" >&2 + pkg-config --print-errors --exists gdk-3.0 || true pkg-config --debug --print-errors --modversion gdk-3.0 || true exit 1 fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ff2174c..d72d7e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -880,7 +880,9 @@ jobs: fi tar -xf "$X/base.txz" -C "$S" ./lib ./usr/lib ./usr/include ./usr/libdata # The libraries the prepare step installs; the build tools and fonts stay host-only. - pkg $P fetch -y -q -d libxkbcommon wayland libX11 libXcursor libXrandr libXi libxcb mesa-libs vulkan-loader gtk3 webkit2-gtk_41 libsoup3 fontconfig freetype2 alsa-lib + # xorgproto provides xproto, renderproto, kbproto and xextproto .pc files that + # GTK's public dependency chain needs, but that are not runtime dependencies. + pkg $P fetch -y -q -d libxkbcommon wayland libX11 libXcursor libXrandr libXi libxcb mesa-libs vulkan-loader gtk3 webkit2-gtk_41 libsoup3 fontconfig freetype2 alsa-lib xorgproto for p in "$X"/cache/*.pkg; do # pkg names each fetched archive with a symlink to its hashed cache file. # tar follows the link; skipping links here leaves the sysroot without any ports. @@ -910,6 +912,7 @@ jobs: echo "error: pkg-config cannot resolve gdk-3.0 from the aarch64 sysroot" >&2 ls -l "$S/usr/local/libdata/pkgconfig/gdk-3.0.pc" >&2 sed -n '1,100p' "$S/usr/local/libdata/pkgconfig/gdk-3.0.pc" >&2 + pkg-config --print-errors --exists gdk-3.0 || true pkg-config --debug --print-errors --modversion gdk-3.0 || true exit 1 fi diff --git a/tests/test_freebsd.py b/tests/test_freebsd.py index 4e25830..97497fc 100644 --- a/tests/test_freebsd.py +++ b/tests/test_freebsd.py @@ -365,6 +365,8 @@ fi self.assertIn('if [ "$host" != "$cross" ]; then', script) self.assertIn("sha256 -q", script) self.assertIn("CARGO_BUILD_TARGET=$target", script) + self.assertIn("alsa-lib xorgproto", script) + self.assertIn("pkg-config --print-errors --exists gdk-3.0 || true", script) # The env file is generated by an unquoted heredoc. Do not reference # PKG_CONFIG_PATH while generating it: that variable is assigned by a # different line in the heredoc and is unset in the generating shell.