From bcf8d72b0bcef3ce06ebddbcb0fcedf3c321b38c Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Sat, 6 Apr 2024 04:50:04 -0400 Subject: [PATCH] Add Windows ARM build (#3112) Unimplemented: - ARM-native installer/uninstaller Untested: - Installer/uninstaller/updater - Word integration DLL Also updates the launcher and updater to 115.9.0esr for x64. win32 stays on 115.4.0esr for the launcher and 102.11.0esr for the updater because I can no longer build it. --- app/build.sh | 18 ++++++++++++++++-- .../zotero-word-for-windows-integration | 2 +- app/scripts/fetch_xulrunner | 4 +++- app/win/updater.exe.tar.xz | 4 ++-- app/win/zotero.exe.tar.xz | 4 ++-- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app/build.sh b/app/build.sh index 01b965effb..3d6b344f6d 100755 --- a/app/build.sh +++ b/app/build.sh @@ -638,7 +638,7 @@ if [ $BUILD_WIN == 1 ]; then fi - for arch in "win32" "win-x64"; do + for arch in win32 win-x64 win-aarch64; do echo "Building Zotero_$arch" runtime_path="${WIN_RUNTIME_PATH_PREFIX}${arch}" @@ -715,10 +715,16 @@ if [ $BUILD_WIN == 1 ]; then cp -RH "$CALLDIR/modules/zotero-word-for-windows-integration/install" "$APPDIR/integration/word-for-windows" if [ $arch = 'win32' ]; then rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_x64.dll" + rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_ARM64.dll" elif [ $arch = 'win-x64' ]; then mv "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_x64.dll" \ "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration.dll" - fi + rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_ARM64.dll" + elif [ $arch = 'win-aarch64' ]; then + mv "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_ARM64.dll" \ + "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration.dll" + rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_x64.dll" + fi # Delete extraneous files find "$APPDIR" -depth -type d -name .git -exec rm -rf {} \; @@ -733,6 +739,9 @@ if [ $BUILD_WIN == 1 ]; then "`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /V1 "`cygpath -w \"$BUILD_DIR/win_installer/uninstaller.nsi\"`" elif [ "$arch" = "win-x64" ]; then "`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/uninstaller.nsi\"`" + elif [ "$arch" = "win-aarch64" ]; then + # TODO + "`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/uninstaller.nsi\"`" fi mv "$BUILD_DIR/win_installer/helper.exe" "$APPDIR/uninstall" @@ -753,6 +762,8 @@ if [ $BUILD_WIN == 1 ]; then INSTALLER_PATH="$DIST_DIR/Zotero-${VERSION}_win32_setup.exe" elif [ "$arch" = "win-x64" ]; then INSTALLER_PATH="$DIST_DIR/Zotero-${VERSION}_x64_setup.exe" + elif [ "$arch" = "win-aarch64" ]; then + INSTALLER_PATH="$DIST_DIR/Zotero-${VERSION}_aarch64_setup.exe" fi if [ $SIGN -eq 1 ]; then @@ -779,6 +790,9 @@ if [ $BUILD_WIN == 1 ]; then "`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /V1 "`cygpath -w \"$BUILD_DIR/win_installer/installer.nsi\"`" elif [ "$arch" = "win-x64" ]; then "`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/installer.nsi\"`" + elif [ "$arch" = "win-aarch64" ]; then + # TODO + "`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/installer.nsi\"`" fi mv "$BUILD_DIR/win_installer/setup.exe" "$INSTALLER_STAGE_DIR" diff --git a/app/modules/zotero-word-for-windows-integration b/app/modules/zotero-word-for-windows-integration index 707486a735..a71597746b 160000 --- a/app/modules/zotero-word-for-windows-integration +++ b/app/modules/zotero-word-for-windows-integration @@ -1 +1 @@ -Subproject commit 707486a73563a73db1406fc77e28090bda28c6ab +Subproject commit a71597746b4b4303bb8b13cdd9c0ce020e3488de diff --git a/app/scripts/fetch_xulrunner b/app/scripts/fetch_xulrunner index 2c97430afd..a1aced6103 100755 --- a/app/scripts/fetch_xulrunner +++ b/app/scripts/fetch_xulrunner @@ -446,7 +446,7 @@ if [ $BUILD_WIN == 1 ]; then GECKO_VERSION="$GECKO_VERSION_WIN" DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION" - for arch in win32 win-x64; do + for arch in win32 win-x64 win-aarch64; do xdir=firefox-$arch rm -rf $xdir @@ -458,6 +458,8 @@ if [ $BUILD_WIN == 1 ]; then else if [ $arch = "win-x64" ]; then curl -O "$DOWNLOAD_URL/win64/en-US/Firefox%20Setup%20$GECKO_VERSION.exe" + elif [ $arch = "win-aarch64" ]; then + curl -O "$DOWNLOAD_URL/win64-aarch64/en-US/Firefox%20Setup%20$GECKO_VERSION.exe" else curl -O "$DOWNLOAD_URL/$arch/en-US/Firefox%20Setup%20$GECKO_VERSION.exe" fi diff --git a/app/win/updater.exe.tar.xz b/app/win/updater.exe.tar.xz index 6f8c75a89b..7796e98a8f 100644 --- a/app/win/updater.exe.tar.xz +++ b/app/win/updater.exe.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23186030edd8b75f4de3d1ed50632cd20f38c55e6bcb693abd1e9d5e5428d878 -size 258844 +oid sha256:785b322c976c830510f95205f312fe23297fd8e70b5e5f5cce96544aaf3389da +size 363244 diff --git a/app/win/zotero.exe.tar.xz b/app/win/zotero.exe.tar.xz index eaf36223a3..369622c21c 100644 --- a/app/win/zotero.exe.tar.xz +++ b/app/win/zotero.exe.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:601b33fd33765e0c29ed347c47cae850fce1f13e85f109e6a9ed8c9e8b564615 -size 421268 +oid sha256:81bf7d4bcc04e9a6039d52289ec3f137631f0b51ad231c4f9a20d027be861f25 +size 507412