Update Mac updater for Zotero 7

We were previously using an old version of the Mozilla updater before they
added Mozilla signature verification, but it's Intel-only, so we need to build
our own version of the current updater with signature verification disabled.
This commit is contained in:
Dan Stillman 2023-05-17 03:47:05 -04:00
parent a30e63eee1
commit 6261640a92
7 changed files with 26 additions and 3 deletions

5
.gitattributes vendored
View file

@ -1,2 +1,3 @@
*.sql text eol=lf
app/win/zotero.exe.tar.xz filter=lfs diff=lfs merge=lfs -text
*.sql text eol=lf
app/win/zotero.exe.tar.xz filter=lfs diff=lfs merge=lfs -text
app/mac/updater.tar.xz filter=lfs diff=lfs merge=lfs -text

View file

@ -480,7 +480,7 @@ if [ $BUILD_MAC == 1 ]; then
# Use our own updater, because Mozilla's requires updates signed by Mozilla
cd "$CONTENTSDIR/MacOS"
tar -xjf "$CALLDIR/mac/updater.tar.bz2"
tar xf "$CALLDIR/mac/updater.tar.xz"
# Modify Info.plist
perl -pi -e "s/\{\{VERSION\}\}/$VERSION/" "$CONTENTSDIR/Info.plist"

View file

@ -55,3 +55,9 @@ $mach python "$GECKO_PATH/toolkit/mozapps/installer/unify.py" x64/*.app aarch64/
cp x64/$fx_app_name/Contents/MacOS/firefox zotero
xz zotero
mv zotero.xz "$APP_ROOT_DIR/mac/zotero.xz"
# Uncomment to build updater
#cd x64/$fx_app_name/Contents/MacOS/
#"$APP_ROOT_DIR/mac/updater_renamer"
#cat updater.app/Contents/Resources/English.lproj/InfoPlist.strings
#tar cfvJ "$APP_ROOT_DIR/mac/updater.tar.xz" updater.app/

View file

@ -25,3 +25,6 @@ export RELEASE_OR_BETA=1
MOZ_REQUIRE_SIGNING=
ac_add_options --enable-official-branding
# Build updater without MAR signature verification
ac_add_options --disable-verify-mar

Binary file not shown.

BIN
app/mac/updater.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

10
app/mac/updater_renamer Executable file
View file

@ -0,0 +1,10 @@
#!/usr/bin/env python3
# Convert localized app name from "Firefox Software Update" to "Zotero Software Update"
#
# plist is UTF-16
f='updater.app/Contents/Resources/English.lproj/InfoPlist.strings'
with open(f, 'r', encoding='utf-16') as inputfile:
newText = inputfile.read().replace('Firefox', 'Zotero')
with open(f, 'w', encoding='utf-16') as outputfile:
outputfile.write(newText)