mirror of
https://github.com/zotero/zotero.git
synced 2026-09-30 01:51:36 +00:00
Restore separate macOS component staging and custom XUL support
We still might want a custom XUL at some point in the future.
This commit is contained in:
parent
82022caa65
commit
bc2a74c233
3 changed files with 37 additions and 31 deletions
|
|
@ -709,6 +709,11 @@ if [ $BUILD_MAC == 1 ]; then
|
|||
xz -d --stdout "$CALLDIR/mac/zotero.xz" > "$CONTENTSDIR/MacOS/zotero"
|
||||
chmod 755 "$CONTENTSDIR/MacOS/zotero"
|
||||
|
||||
# Overlay custom Firefox components (e.g., XUL or libmozglue.dylib)
|
||||
if [ -n "$custom_components_hash_mac" ]; then
|
||||
cp -R "$MAC_RUNTIME_PATH/../MacOS/." "$CONTENTSDIR/MacOS/"
|
||||
fi
|
||||
|
||||
# Use our own updater, because Mozilla's requires updates signed by Mozilla
|
||||
cd "$CONTENTSDIR/MacOS"
|
||||
check_lfs_file "$CALLDIR/mac/updater.tar.xz"
|
||||
|
|
|
|||
|
|
@ -56,14 +56,19 @@ cp x64/$fx_app_name/Contents/MacOS/firefox zotero
|
|||
xz zotero
|
||||
mv zotero.xz "$APP_ROOT_DIR/mac/zotero.xz"
|
||||
|
||||
# Package custom libmozglue.dylib for fetch_xulrunner.
|
||||
# Upload the file to ${custom_components_url}mac/ and set custom_components_hash_mac in
|
||||
# config.sh.
|
||||
xz --stdout x64/$fx_app_name/Contents/MacOS/libmozglue.dylib > libmozglue.dylib.xz
|
||||
components_hash=$(shasum -a 256 libmozglue.dylib.xz | cut -d ' ' -f 1)
|
||||
mozglue_file="${GECKO_VERSION_MAC//esr}-libmozglue-$components_hash.dylib.xz"
|
||||
mv libmozglue.dylib.xz "$APP_ROOT_DIR/mac/$mozglue_file"
|
||||
echo "Custom libmozglue.dylib: $APP_ROOT_DIR/mac/$mozglue_file"
|
||||
# Package custom Firefox components for fetch_xulrunner. Add XUL to this list if needed.
|
||||
# Upload the archive to ${custom_components_url}mac/ and set custom_components_hash_mac
|
||||
# in config.sh to the hash printed below.
|
||||
custom_components=(libmozglue.dylib)
|
||||
mkdir MacOS
|
||||
for component in "${custom_components[@]}"; do
|
||||
cp "x64/$fx_app_name/Contents/MacOS/$component" MacOS/
|
||||
done
|
||||
tar cfJ MacOS.tar.xz MacOS
|
||||
components_hash=$(shasum -a 256 MacOS.tar.xz | cut -d ' ' -f 1)
|
||||
components_file="$APP_ROOT_DIR/mac/$components_hash.tar.xz"
|
||||
mv MacOS.tar.xz "$components_file"
|
||||
echo "Custom Firefox components: $components_file"
|
||||
echo "custom_components_hash_mac=\"$components_hash\""
|
||||
|
||||
# Save a copy of ChannelPrefs.framework
|
||||
|
|
|
|||
|
|
@ -612,50 +612,46 @@ if [ $BUILD_MAC == 1 ]; then
|
|||
hdiutil detach -quiet /Volumes/Firefox
|
||||
fi
|
||||
|
||||
# Download and extract custom libmozglue.dylib
|
||||
# Download custom components (e.g., XUL), as an xz-compressed tarball of the MacOS folder with
|
||||
# custom files in it
|
||||
echo
|
||||
hash="$custom_components_hash_mac"
|
||||
if [ -n "$hash" ]; then
|
||||
xzfile="Firefox $GECKO_VERSION libmozglue.dylib.xz"
|
||||
# Filename doesn't include "esr"
|
||||
url="${custom_components_url}mac/${GECKO_VERSION//esr}-libmozglue-$hash.dylib.xz"
|
||||
|
||||
rm -rf MacOS
|
||||
if [ -n "$custom_components_hash_mac" ]; then
|
||||
tarfile="Firefox $GECKO_VERSION MacOS.tar.xz"
|
||||
if [[ "$(uname)" = "Darwin" ]]; then
|
||||
shasum="shasum -a 256"
|
||||
else
|
||||
shasum=sha256sum
|
||||
fi
|
||||
|
||||
download_xz() {
|
||||
echo "Downloading custom libmozglue.dylib"
|
||||
download_components() {
|
||||
echo "Downloading custom Firefox components"
|
||||
echo
|
||||
echo $url
|
||||
curl -fo "$xzfile" "$url"
|
||||
curl -fo "$tarfile" "${custom_components_url}mac/$custom_components_hash_mac.tar.xz"
|
||||
}
|
||||
|
||||
verify_hash() {
|
||||
echo "$hash $xzfile" | $shasum -c -
|
||||
verify_components_hash() {
|
||||
echo "$custom_components_hash_mac $tarfile" | $shasum -c -
|
||||
}
|
||||
|
||||
# Download if file doesn't exist
|
||||
if [ ! -e "$xzfile" ]; then
|
||||
download_xz
|
||||
if [ ! -e "$tarfile" ]; then
|
||||
download_components
|
||||
fi
|
||||
|
||||
# Verify hash
|
||||
echo
|
||||
if ! verify_hash; then
|
||||
echo "SHA hash mismatch. Redownloading libmozglue.dylib…"
|
||||
rm -f "$xzfile"
|
||||
download_xz
|
||||
if ! verify_components_hash; then
|
||||
echo "SHA hash mismatch. Redownloading custom Firefox components…"
|
||||
rm -f "$tarfile"
|
||||
download_components
|
||||
echo
|
||||
if ! verify_hash; then
|
||||
if ! verify_components_hash; then
|
||||
echo "Hash still doesn't match. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo
|
||||
|
||||
xz -d --stdout "$xzfile" > Firefox.app/Contents/MacOS/libmozglue.dylib
|
||||
tar xvf "$tarfile"
|
||||
echo
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue