diff options
| author | Siwen Yu <yusiwen@gmail.com> | 2025-11-28 01:33:12 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-27 09:33:12 -0800 |
| commit | 4daa8eb5abcad2e3cf4501f0e4fcaae90ec85b72 (patch) | |
| tree | c89c58d5bfb6dbb0c6423397c6118b5089a70396 /scripts | |
| parent | e4ce0c7270e52ecaf586a0ddcee262e2f1adaabc (diff) | |
fix(appimage): wrong $ARCH used by linuxdeploy #36712
Problem:
In scripts/genappimage.sh running on arm64 host, the $ARCH will be set to
'arm64' before calling linuxdeploy, which cause linuxdeploy to generate
an 32bit ELF executable instead 64bit. See the issue for more details.
Solution:
Keep $ARCH unchanged, use $ARCH_OUTPUT in the output file name. On arm64
host, $ARCH_OUTPUT will be converted to 'arm64'.
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/genappimage.sh | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/scripts/genappimage.sh b/scripts/genappimage.sh index e683a9dcd1..f8c567da57 100755 --- a/scripts/genappimage.sh +++ b/scripts/genappimage.sh @@ -11,7 +11,7 @@ if [ -z "$ARCH" ]; then ARCH="$(arch)" export ARCH fi -ARCH_ORIGINAL=$ARCH +ARCH_OUTPUT=$ARCH TAG=$1 @@ -44,7 +44,7 @@ cd "$APP_BUILD_DIR" || exit if [ -e "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage ]; then curl -Lo "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \ -z "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \ - https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-"$ARCH".AppImage + https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-"$ARCH".AppImage else curl -Lo "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \ https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-"$ARCH".AppImage @@ -77,29 +77,28 @@ chmod 755 AppRun cd "$APP_BUILD_DIR" || exit # Get out of AppImage directory. # We want to be consistent, so always use arm64 over aarch64 -if [[ "$ARCH" == 'aarch64' ]]; then - ARCH="arm64" - export ARCH +if [[ "$ARCH_OUTPUT" == 'aarch64' ]]; then + ARCH_OUTPUT="arm64" fi # Set the name of the file generated by appimage -export OUTPUT=nvim-linux-"$ARCH".appimage +export OUTPUT=nvim-linux-"$ARCH_OUTPUT".appimage # If it's a release generate the zsync file if [ -n "$TAG" ]; then - export UPDATE_INFORMATION="gh-releases-zsync|neovim|neovim|$TAG|nvim-linux-$ARCH.appimage.zsync" + export UPDATE_INFORMATION="gh-releases-zsync|neovim|neovim|$TAG|nvim-linux-$ARCH_OUTPUT.appimage.zsync" fi # Generate AppImage. # - Expects: $ARCH, $APP, $VERSION env vars # - Expects: ./$APP.AppDir/ directory -# - Produces: ./nvim-linux-$ARCH.appimage -./linuxdeploy-"$ARCH_ORIGINAL".AppImage --appdir $APP.AppDir -d "$ROOT_DIR"/runtime/nvim.desktop -i \ +# - Produces: ./nvim-linux-$ARCH_OUTPUT.appimage +./linuxdeploy-"$ARCH".AppImage --appdir $APP.AppDir -d "$ROOT_DIR"/runtime/nvim.desktop -i \ "$ROOT_DIR/runtime/nvim.png" --output appimage # Moving the final executable to a different folder so it isn't in the # way for a subsequent build. -mv "$ROOT_DIR"/build/nvim-linux-"$ARCH".appimage* "$ROOT_DIR"/build/bin +mv "$ROOT_DIR"/build/nvim-linux-"$ARCH_OUTPUT".appimage* "$ROOT_DIR"/build/bin echo 'genappimage.sh: finished' |
