Merge fix_dmg_openfinder-24

This commit is contained in:
Luke Dashjr 2023-11-15 23:49:11 +00:00
commit 83c590fab1
3 changed files with 20 additions and 1 deletions

View File

@ -38,6 +38,7 @@ space := $(empty) $(empty)
OSX_APP=Bitcoin-Qt.app
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
OSX_DMG = $(OSX_VOLNAME).dmg
MAKE_DMG_OPEN_FINDER_SCRIPT=$(top_srcdir)/contrib/macdeploy/make-dmg-open-finder
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
@ -132,7 +133,8 @@ else !BUILD_DARWIN
APP_DIST_DIR=$(top_builddir)/dist
$(OSX_DMG): deploydir
$(XORRISOFS) -D -l -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -o $@ $(APP_DIST_DIR) -- $(if $(SOURCE_DATE_EPOCH),-volume_date all_file_dates =$(SOURCE_DATE_EPOCH))
$(XORRISOFS) -D -l -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -hfsplus -o $@ $(APP_DIST_DIR) -- $(if $(SOURCE_DATE_EPOCH),-volume_date all_file_dates =$(SOURCE_DATE_EPOCH))
$(PYTHON) $(MAKE_DMG_OPEN_FINDER_SCRIPT) $@
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
INSTALL_NAME_TOOL=$(INSTALL_NAME_TOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR)

View File

@ -87,9 +87,11 @@ mkdir -p "$DISTSRC"
# Make a DMG from dist/
xorrisofs -D -l -V "$(< osx_volname)" -no-pad -r -dir-mode 0755 \
-hfsplus \
-o "${OUTDIR}/${DISTNAME}-${HOST}.dmg" \
dist \
-- -volume_date all_file_dates ="$SOURCE_DATE_EPOCH"
contrib/macdeploy/make-dmg-open-finder "${OUTDIR}/${DISTNAME}-${HOST}.dmg"
;;
*)
exit 1

View File

@ -0,0 +1,15 @@
#!/usr/bin/env python3
# Copyright (c) 2023 Luke Dashjr
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
import sys
with open(sys.argv[1], "r+b") as dmg:
# Ensure HFS+ header is where we expect it
dmg.seek(0x10400)
assert dmg.read(4) == b'\x48\x2b\0\x04'
# Set Finder info to open directory ID 2 when mounted
dmg.seek(0x10458)
dmg.write(b'\0\0\0\x02')