From 0ac4a404caa00a780ae2faa00574f63609a06659 Mon Sep 17 00:00:00 2001 From: giang17 <33104857+giang17@users.noreply.github.com> Date: Fri, 28 Aug 2026 16:58:14 +0200 Subject: [PATCH] Make the build audit locale-independent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit readelf translates its output. The DT_NEEDED checks match the English literal "Shared library: [...]", so on a non-English system they never match and the audit reports five failures that look like missing libraries: libusb-1.0.so DT_NEEDED FAIL host libusb-1.0.so.0 not linked pipeasio.dll.so DT_NEEDED FAIL host libpipewire-0.3.so.0 not linked pipewire-version-probe DT_NEEDED FAIL unexpected libraries: pipeasio-settings DT_NEEDED FAIL libQt6Widgets.so.6 not linked winegstreamer.so DT_NEEDED FAIL host libgstreamer-1.0.so.0 not linked The libraries are all present and correctly linked; German readelf simply prints "Gemeinsame Bibliothek [libgstreamer-1.0.so.0]". The same build passes its in-container audit, where the locale is C, and fails the host audit that runs afterwards — so the artifact is refused at the last step with a diagnosis pointing at the wrong layer. Fixed by exporting LC_ALL=C.UTF-8, matching scripts/install.sh, scripts/make-installer.sh and scripts/setup-run-header.sh, which already do this. build-audit.sh sets LC_ALL=C for one sort call but not globally. Verified on Ubuntu with LANG=de_DE.UTF-8: 5 of 183 checks failed before, 0 of the DT_NEEDED checks after. --- scripts/build-audit.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/build-audit.sh b/scripts/build-audit.sh index e21de54d..f5874495 100755 --- a/scripts/build-audit.sh +++ b/scripts/build-audit.sh @@ -2,6 +2,9 @@ # Audit a runtime artifact against the frozen patch stack (patches/SERIES.sha256): patch file hashes, # build stamp, per-patch binary fingerprints. Arg: tarball, tree, or --freeze; defaults to newest dist/*.tar.zst. set -euo pipefail +# readelf localises its output, so the DT_NEEDED checks below - which match the +# English literal "Shared library: [...]" - fail on any non-English system. +export LC_ALL=C.UTF-8 here="$(cd "$(dirname "$0")" && pwd)" root="$(cd "$here/.." && pwd)" NAME="wine-d2d1-nspa-11.13"