Finish Windows ARM support

And rename to "ARM64"

Closes #3112
This commit is contained in:
Dan Stillman 2024-05-28 05:51:58 +01:00
parent 08706332f9
commit 7056513b77
9 changed files with 35 additions and 33 deletions

1
app/.gitignore vendored
View file

@ -9,3 +9,4 @@ xulrunner
win/resource_hacker
win/firefox-*.win32.zip
win/firefox-*.win64.zip
win/firefox-*.win64-aarch64.zip

View file

@ -642,7 +642,7 @@ if [ $BUILD_WIN == 1 ]; then
fi
for arch in win32 win-x64 win-aarch64; do
for arch in win32 win-x64 win-arm64; do
echo "Building Zotero_$arch"
runtime_path="${WIN_RUNTIME_PATH_PREFIX}${arch}"
@ -652,7 +652,10 @@ if [ $BUILD_WIN == 1 ]; then
mkdir "$APPDIR"
# Copy relevant assets from Firefox
cp -R "$runtime_path"/!(application.ini|browser|defaults|devtools-files|crashreporter*|firefox.exe|maintenanceservice*|precomplete|removed-files|uninstall|update*) "$APPDIR"
#
# 'i686' is a huge directory containing x86 versions of xul.dll and other files in
# Firefox ARM64 builds for use with the EME DRM plugins
cp -R "$runtime_path"/!(application.ini|browser|defaults|devtools-files|crashreporter*|firefox.exe|i686|maintenanceservice*|precomplete|removed-files|uninstall|update*) "$APPDIR"
# Copy zotero.exe, which is built directly from Firefox source and then modified by
# ResourceHacker to add icons
@ -716,7 +719,7 @@ if [ $BUILD_WIN == 1 ]; then
mv "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_x64.dll" \
"$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration.dll"
rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_ARM64.dll"
elif [ $arch = 'win-aarch64' ]; then
elif [ $arch = 'win-arm64' ]; 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"
@ -733,10 +736,7 @@ if [ $BUILD_WIN == 1 ]; then
# Build uninstaller
if [ "$arch" = "win32" ]; 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
elif [[ "$arch" = "win-x64" ]] || [[ "$arch" = "win-arm64" ]]; then
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/uninstaller.nsi\"`"
fi
@ -752,8 +752,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"
elif [ "$arch" = "win-arm64" ]; then
INSTALLER_PATH="$DIST_DIR/Zotero-${VERSION}_arm64_setup.exe"
fi
if [ $SIGN -eq 1 ]; then
@ -770,10 +770,7 @@ if [ $BUILD_WIN == 1 ]; then
# Build and sign setup.exe
if [ "$arch" = "win32" ]; 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
elif [[ "$arch" = "win-x64" ]] || [[ "$arch" = "win-arm64" ]]; then
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/installer.nsi\"`"
fi

View file

@ -133,7 +133,7 @@ do
architectures="mac"
;;
w)
architectures="win32 win-x64"
architectures="win32 win-x64 win-arm64"
;;
l)
architectures="linux-i686 linux-x86_64"

View file

@ -471,7 +471,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 win-aarch64; do
for arch in win32 win-x64 win-arm64; do
xdir=firefox-$arch
rm -rf $xdir
@ -483,7 +483,7 @@ 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
elif [ $arch = "win-arm64" ]; 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"

View file

@ -138,7 +138,8 @@ for version in "$FROM" "$TO"; do
MAC_ARCHIVE="Zotero-${version}.dmg"
WIN32_ARCHIVE="Zotero-${version}_win32.zip"
WIN64_ARCHIVE="Zotero-${version}_win-x64.zip"
WIN_X64_ARCHIVE="Zotero-${version}_win-x64.zip"
WIN_ARM64_ARCHIVE="Zotero-${version}_win-arm64.zip"
LINUX_X86_ARCHIVE="Zotero-${version}_linux-i686.tar.bz2"
LINUX_X86_64_ARCHIVE="Zotero-${version}_linux-x86_64.tar.bz2"
@ -147,14 +148,17 @@ for version in "$FROM" "$TO"; do
mkdir "$CACHE_DIR"
fi
for archive in "$MAC_ARCHIVE" "$WIN32_ARCHIVE" "$WIN64_ARCHIVE" "$LINUX_X86_ARCHIVE" "$LINUX_X86_64_ARCHIVE"; do
for archive in "$MAC_ARCHIVE" "$WIN32_ARCHIVE" "$WIN_X64_ARCHIVE" "$WIN_ARM64_ARCHIVE" "$LINUX_X86_ARCHIVE" "$LINUX_X86_64_ARCHIVE"; do
if [[ $archive = "$MAC_ARCHIVE" ]] && [[ $BUILD_MAC != 1 ]]; then
continue
fi
if [[ $archive = "$WIN32_ARCHIVE" ]] && [[ $BUILD_WIN != 1 ]]; then
continue
fi
if [[ $archive = "$WIN64_ARCHIVE" ]] && [[ $BUILD_WIN != 1 ]]; then
if [[ $archive = "$WIN_X64_ARCHIVE" ]] && [[ $BUILD_WIN != 1 ]]; then
continue
fi
if [[ $archive = "$WIN_ARM64_ARCHIVE" ]] && [[ $BUILD_WIN != 1 ]]; then
continue
fi
if [[ $archive = "$LINUX_X86_ARCHIVE" ]] && [[ $BUILD_LINUX != 1 ]]; then
@ -227,14 +231,14 @@ for version in "$FROM" "$TO"; do
# Unpack Windows zips
if [ $BUILD_WIN == 1 ]; then
if [[ -f "$WIN32_ARCHIVE" ]] && [[ -f "$WIN64_ARCHIVE" ]]; then
for build in "$WIN32_ARCHIVE" "$WIN64_ARCHIVE"; do
if [[ -f "$WIN32_ARCHIVE" ]] && [[ -f "$WIN_X64_ARCHIVE" ]] && [[ -f "$WIN_ARM64_ARCHIVE" ]]; then
for build in "$WIN32_ARCHIVE" "$WIN_X64_ARCHIVE" "$WIN_ARM64_ARCHIVE"; do
unzip -q "$build"
rm "$build"
done
INCREMENTALS_FOUND=1
else
echo "$WIN32_ARCHIVE and/or $WIN64_ARCHIVE not found"
echo "$WIN32_ARCHIVE/$WIN_X64_ARCHIVE/$WIN_ARM64_ARCHIVE not found"
fi
fi
@ -259,17 +263,17 @@ export MOZ_PRODUCT_VERSION="$TO"
export MAR_CHANNEL_ID="$CHANNEL"
CHANGES_MADE=0
for build in "mac" "win32" "win-x64" "linux-i686" "linux-x86_64"; do
for build in "mac" "win32" "win-x64" "win-arm64" "linux-i686" "linux-x86_64"; do
if [[ $build == "mac" ]]; then
if [[ $BUILD_MAC == 0 ]]; then
continue
fi
dir="Zotero.app"
else
if [[ $build == "win32" ]] || [[ $build == "win-x64" ]] && [[ $BUILD_WIN == 0 ]]; then
if ([[ $build == "win32" ]] || [[ $build == "win-x64" ]] || [[ $build == "win-arm64" ]]) && [[ $BUILD_WIN == 0 ]]; then
continue
fi
if [[ $build == "linux-i686" ]] || [[ $build == "linux-x86_64" ]] && [[ $BUILD_LINUX == 0 ]]; then
if ([[ $build == "linux-i686" ]] || [[ $build == "linux-x86_64" ]]) && [[ $BUILD_LINUX == 0 ]]; then
continue
fi
dir="Zotero_$build"

View file

@ -17,12 +17,12 @@ if [[ -z "${1:-}" ]]; then
fi
version=$1
for arch in win32 win-x64 win-aarch64; do
for arch in win32 win-x64 win-arm64; do
if [ $arch = "win32" ]; then
zip="firefox-115.5.0.en-US.$arch.zip"
elif [ $arch = "win-x64" ]; then
zip="firefox-$version.en-US.win64.zip"
elif [ $arch = "win-aarch64" ]; then
elif [ $arch = "win-arm64" ]; then
zip="firefox-$version.en-US.win64-aarch64.zip"
fi
if [ ! -f "$zip" ]; then
@ -56,7 +56,7 @@ for arch in win32 win-x64 win-aarch64; do
done
tar -Jcv zotero_win32.exe zotero_win-x64.exe zotero_win-aarch64.exe > zotero.exe.tar.xz
tar -Jcv updater-win32.exe updater-win-x64.exe updater-win-aarch64.exe > updater.exe.tar.xz
tar -Jcv zotero_win32.exe zotero_win-x64.exe zotero_win-arm64.exe > zotero.exe.tar.xz
tar -Jcv updater-win32.exe updater-win-x64.exe updater-win-arm64.exe > updater.exe.tar.xz
rm firefox-win*.exe updater-win*.exe zotero_win*.exe

BIN
app/win/updater.exe.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
app/win/zotero.exe.tar.xz (Stored with Git LFS)

Binary file not shown.