Skip to content

Commit a128111

Browse files
hebastofanquake
andcommitted
build: produce a .zip for macOS distribution
Instead of a .dmg. Co-authored-by: fanquake <fanquake@gmail.com>
1 parent c38561d commit a128111

File tree

8 files changed

+17
-18
lines changed

8 files changed

+17
-18
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ src/qt/bitcoin-qt.includes
7474

7575
*.log
7676
*.trs
77-
*.dmg
77+
*.zip
7878

7979
*.json.h
8080
*.raw.h

Makefile.am

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ space := $(empty) $(empty)
3737

3838
OSX_APP=Bitcoin-Qt.app
3939
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
40-
OSX_DMG = $(OSX_VOLNAME).dmg
40+
OSX_ZIP = $(OSX_VOLNAME).zip
4141
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
4242
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
4343
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
@@ -124,23 +124,24 @@ osx_volname:
124124
echo $(OSX_VOLNAME) >$@
125125

126126
if BUILD_DARWIN
127-
$(OSX_DMG): $(OSX_APP_BUILT) $(OSX_PACKAGING)
128-
$(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR) -dmg
127+
$(OSX_ZIP): $(OSX_APP_BUILT) $(OSX_PACKAGING)
128+
$(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR) -zip
129129

130-
deploydir: $(OSX_DMG)
130+
deploydir: $(OSX_ZIP)
131131
else !BUILD_DARWIN
132132
APP_DIST_DIR=$(top_builddir)/dist
133133

134-
$(OSX_DMG): deploydir
135-
$(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))
134+
$(OSX_ZIP): deploydir
135+
if [ -n "$(SOURCE_DATE_EPOCH)" ]; then find $(APP_DIST_DIR) -exec touch -d @$(SOURCE_DATE_EPOCH) {} +; fi
136+
cd $(APP_DIST_DIR) && find . | sort | $(ZIP) -X@ $@
136137

137138
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
138139
INSTALL_NAME_TOOL=$(INSTALL_NAME_TOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR)
139140

140141
deploydir: $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt
141142
endif !BUILD_DARWIN
142143

143-
deploy: $(OSX_DMG)
144+
deploy: $(OSX_ZIP)
144145
endif
145146

146147
$(BITCOIN_QT_BIN): FORCE
@@ -313,7 +314,7 @@ EXTRA_DIST += \
313314
test/util/data/txcreatesignv2.hex \
314315
test/util/rpcauth-test.py
315316

316-
CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER)
317+
CLEANFILES = $(OSX_ZIP) $(BITCOIN_WIN_INSTALLER)
317318

318319
DISTCHECK_CONFIGURE_FLAGS = --enable-man
319320

ci/test/00_setup_env_mac.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks}
1111
export CONTAINER_NAME=ci_macos_cross
1212
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:22.04"
1313
export HOST=x86_64-apple-darwin
14-
export PACKAGES="cmake libz-dev python3-setuptools xorriso"
14+
export PACKAGES="cmake libz-dev python3-setuptools xorriso zip"
1515
export XCODE_VERSION=12.2
1616
export XCODE_BUILD_ID=12B45b
1717
export RUN_UNIT_TESTS=false

configure.ac

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,7 @@ case $host in
800800
AC_PATH_TOOL([INSTALL_NAME_TOOL], [install_name_tool], [install_name_tool])
801801
AC_PATH_TOOL([OTOOL], [otool], [otool])
802802
AC_PATH_PROGS([XORRISOFS], [xorrisofs], [xorrisofs])
803+
AC_PATH_PROG([ZIP], [zip], [zip])
803804

804805
dnl libtool will try to strip the static lib, which is a problem for
805806
dnl cross-builds because strip attempts to call a hard-coded ld,

contrib/guix/libexec/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ mkdir -p "$DISTSRC"
315315
| gzip -9n > "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.tar.gz" \
316316
|| ( rm -f "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.tar.gz" && exit 1 )
317317
)
318-
make deploy ${V:+V=1} OSX_DMG="${OUTDIR}/${DISTNAME}-${HOST}-unsigned.dmg"
318+
make deploy ${V:+V=1} OSX_ZIP="${OUTDIR}/${DISTNAME}-${HOST}-unsigned.zip"
319319
;;
320320
esac
321321
(

contrib/guix/libexec/codesign.sh

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,8 @@ mkdir -p "$DISTSRC"
8585
# Apply detached codesignatures to dist/ (in-place)
8686
signapple apply dist/Bitcoin-Qt.app codesignatures/osx/dist
8787

88-
# Make a DMG from dist/
89-
xorrisofs -D -l -V "$(< osx_volname)" -no-pad -r -dir-mode 0755 \
90-
-o "${OUTDIR}/${DISTNAME}-${HOST}.dmg" \
91-
dist \
92-
-- -volume_date all_file_dates ="$SOURCE_DATE_EPOCH"
88+
# Make a .zip from dist/
89+
zip "${OUTDIR}/${DISTNAME}-${HOST}.zip" dist/*
9390
;;
9491
*)
9592
exit 1

contrib/guix/manifest.scm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,5 +606,5 @@ inspecting signatures in Mach-O binaries.")
606606
((string-contains target "-linux-")
607607
(list (make-bitcoin-cross-toolchain target)))
608608
((string-contains target "darwin")
609-
(list clang-toolchain-15 binutils cmake-minimal xorriso python-signapple))
609+
(list clang-toolchain-15 binutils cmake-minimal xorriso python-signapple zip))
610610
(else '())))))

depends/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The paths are automatically configured and no other options are needed unless ta
4848

4949
#### For macOS cross compilation
5050

51-
sudo apt-get install curl bsdmainutils cmake libz-dev python3-setuptools xorriso
51+
sudo apt-get install curl bsdmainutils cmake libz-dev python3-setuptools xorriso zip
5252

5353
Note: You must obtain the macOS SDK before proceeding with a cross-compile.
5454
Under the depends directory, create a subdirectory named `SDKs`.

0 commit comments

Comments
 (0)