From 16ca0a48288005ea643456f5f6563355235a5839 Mon Sep 17 00:00:00 2001 From: Anders Betts Date: Wed, 23 Sep 2026 11:54:30 +0200 Subject: deploy: run the cross build as the invoking user The locale directory the cross build now copies came out root-owned, so deploy.sh could not remove .prebuilt and stopped before switching the containers. Running the container with the caller's uid keeps the output deletable. Co-Authored-By: Claude Opus 5.5 --- deploy/cross-build.sh | 2 +- scripts/deploy.sh | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/deploy/cross-build.sh b/deploy/cross-build.sh index 75c181c..f0b5a0a 100644 --- a/deploy/cross-build.sh +++ b/deploy/cross-build.sh @@ -23,4 +23,4 @@ cp /tmp/build/bokfd /tmp/build/bokfctl /tmp/build/bokftui \ # the Alpine runtime does not have: without C.utf8 setlocale() fails and # the TUI shows no åäö. Ship Debian's C.utf8 with the binaries. mkdir -p /out/locale -cp -a /usr/lib/locale/C.utf8 /out/locale/ +cp -R /usr/lib/locale/C.utf8 /out/locale/ diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 29e477f..c34cb4a 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -68,8 +68,10 @@ cross_build() { rm -rf .prebuilt mkdir -p .prebuilt docker build -q -f deploy/Dockerfile.cross -t bokf-cross deploy/ >/dev/null - docker run --rm -e "VERSION=$TAG" -v "$PWD":/src:ro \ - -v "$PWD/.prebuilt":/out bokf-cross + # as the invoking user: the output (binaries, locale data) stays + # deletable here + docker run --rm --user "$(id -u):$(id -g)" -e "VERSION=$TAG" \ + -v "$PWD":/src:ro -v "$PWD/.prebuilt":/out bokf-cross if command -v file >/dev/null 2>&1 && ! file .prebuilt/bokfd | grep -q aarch64; then echo "deploy: cross-build produced no arm64 binary" >&2 -- cgit v1.3