Updated macOS CI staging (arm64 + x86_64) to copy locales into $STAGE_PREFIX/locale/ (instead of $STAGE_PREFIX/share/locale) so gtk-mac-bundler can resolve gtk30.mo at the path it expects.

Updated both macOS packaging steps to pass BUNDLE_PREFIX with a trailing slash (.../stage/<arch>/).

    Replaced cp -a with rsync -aL when staging enchant so symlinks are dereferenced into the staged tree (avoids Homebrew opt symlink pitfalls).

    Adjusted osx/makebundle.sh to preserve a caller-provided trailing slash when writing the XML default prefix (instead of stripping it), matching the CI fix for malformed x86_64locale path concatenation.
This commit is contained in:
2026-02-19 17:19:05 -07:00
parent 29a35843f1
commit a88eae5318
2 changed files with 12 additions and 13 deletions

View File

@@ -59,14 +59,14 @@ jobs:
BREW_PREFIX="$(brew --prefix)" BREW_PREFIX="$(brew --prefix)"
ENCHANT_PREFIX="$(brew --prefix enchant)" ENCHANT_PREFIX="$(brew --prefix enchant)"
mkdir -p "$STAGE_PREFIX/lib" "$STAGE_PREFIX/share" mkdir -p "$STAGE_PREFIX/lib" "$STAGE_PREFIX/locale"
rsync -a "$BREW_PREFIX/lib/gtk-3.0" "$STAGE_PREFIX/lib/" rsync -a "$BREW_PREFIX/lib/gtk-3.0" "$STAGE_PREFIX/lib/"
rsync -a "$BREW_PREFIX/lib/gdk-pixbuf-2.0" "$STAGE_PREFIX/lib/" rsync -a "$BREW_PREFIX/lib/gdk-pixbuf-2.0" "$STAGE_PREFIX/lib/"
rsync -a "$BREW_PREFIX/share/locale" "$STAGE_PREFIX/share/" rsync -a "$BREW_PREFIX/share/locale/" "$STAGE_PREFIX/locale/"
mkdir -p "$STAGE_PREFIX/opt" mkdir -p "$STAGE_PREFIX/opt"
rm -rf "$STAGE_PREFIX/opt/enchant" rm -rf "$STAGE_PREFIX/opt/enchant"
cp -a "$ENCHANT_PREFIX" "$STAGE_PREFIX/opt/enchant" rsync -aL "$ENCHANT_PREFIX/" "$STAGE_PREFIX/opt/enchant/"
- name: Package unsigned .app (arm64) - name: Package unsigned .app (arm64)
run: | run: |
@@ -76,7 +76,7 @@ jobs:
( (
cd osx cd osx
BUNDLE_PREFIX="$PWD/../stage/arm64" \ BUNDLE_PREFIX="$PWD/../stage/arm64/" \
ENCHANT_PREFIX="$PWD/../stage/arm64/opt/enchant" \ ENCHANT_PREFIX="$PWD/../stage/arm64/opt/enchant" \
TARGET_ARCHES="arm64" \ TARGET_ARCHES="arm64" \
./makebundle.sh ./makebundle.sh
@@ -144,14 +144,14 @@ jobs:
BREW_PREFIX="$(brew --prefix)" BREW_PREFIX="$(brew --prefix)"
ENCHANT_PREFIX="$(brew --prefix enchant)" ENCHANT_PREFIX="$(brew --prefix enchant)"
mkdir -p "$STAGE_PREFIX/lib" "$STAGE_PREFIX/share" mkdir -p "$STAGE_PREFIX/lib" "$STAGE_PREFIX/locale"
rsync -a "$BREW_PREFIX/lib/gtk-3.0" "$STAGE_PREFIX/lib/" rsync -a "$BREW_PREFIX/lib/gtk-3.0" "$STAGE_PREFIX/lib/"
rsync -a "$BREW_PREFIX/lib/gdk-pixbuf-2.0" "$STAGE_PREFIX/lib/" rsync -a "$BREW_PREFIX/lib/gdk-pixbuf-2.0" "$STAGE_PREFIX/lib/"
rsync -a "$BREW_PREFIX/share/locale" "$STAGE_PREFIX/share/" rsync -a "$BREW_PREFIX/share/locale/" "$STAGE_PREFIX/locale/"
mkdir -p "$STAGE_PREFIX/opt" mkdir -p "$STAGE_PREFIX/opt"
rm -rf "$STAGE_PREFIX/opt/enchant" rm -rf "$STAGE_PREFIX/opt/enchant"
cp -a "$ENCHANT_PREFIX" "$STAGE_PREFIX/opt/enchant" rsync -aL "$ENCHANT_PREFIX/" "$STAGE_PREFIX/opt/enchant/"
- name: Package unsigned .app (x86_64) - name: Package unsigned .app (x86_64)
run: | run: |
@@ -161,7 +161,7 @@ jobs:
( (
cd osx cd osx
BUNDLE_PREFIX="$PWD/../stage/x86_64" \ BUNDLE_PREFIX="$PWD/../stage/x86_64/" \
ENCHANT_PREFIX="$PWD/../stage/x86_64/opt/enchant" \ ENCHANT_PREFIX="$PWD/../stage/x86_64/opt/enchant" \
TARGET_ARCHES="x86_64" \ TARGET_ARCHES="x86_64" \
./makebundle.sh ./makebundle.sh

View File

@@ -58,11 +58,10 @@ if [ -z "$BUNDLE_PREFIX" ]; then
BUNDLE_PREFIX="/usr/local" BUNDLE_PREFIX="/usr/local"
fi fi
# gtk-mac-bundler translation rebasing can produce off-by-one path slicing # Keep a caller-provided trailing slash so gtk-mac-bundler path concatenation
# with a trailing slash in <prefix>, yielding broken paths like # does not produce malformed locale paths like ".../x86_64locale/...".
# ".../x86_64/ocale/...". Keep the XML prefix slashless and let bundle entries # CI explicitly sets BUNDLE_PREFIX with a trailing slash.
# contribute their own separators. BUNDLE_PREFIX_XML="$BUNDLE_PREFIX"
BUNDLE_PREFIX_XML="${BUNDLE_PREFIX%/}"
ENCHANT_PREFIX_DEFAULT="${BUNDLE_PREFIX}/opt/enchant" ENCHANT_PREFIX_DEFAULT="${BUNDLE_PREFIX}/opt/enchant"
ENCHANT_PREFIX_PATH="${ENCHANT_PREFIX:-$ENCHANT_PREFIX_DEFAULT}" ENCHANT_PREFIX_PATH="${ENCHANT_PREFIX:-$ENCHANT_PREFIX_DEFAULT}"