merge bitcoin#24031: don't compress macOS DMG

This commit is contained in:
Kittywhiskers Van Gogh 2024-11-03 10:30:00 +00:00
parent 6a54603ca3
commit d3d7a0562a
No known key found for this signature in database
GPG Key ID: 30CD0C065E5C4AAD
10 changed files with 7 additions and 111 deletions

1
.gitignore vendored
View File

@ -76,7 +76,6 @@ libconftest.dylib*
*.log *.log
*.trs *.trs
*.dmg *.dmg
*.iso
*.json.h *.json.h
*.raw.h *.raw.h

View File

@ -13,7 +13,7 @@ if ENABLE_MAN
SUBDIRS += doc/man SUBDIRS += doc/man
endif endif
.PHONY: deploy FORCE .PHONY: deploy FORCE
.INTERMEDIATE: $(OSX_TEMP_ISO) $(COVERAGE_INFO) .INTERMEDIATE: $(COVERAGE_INFO)
export PYTHONPATH export PYTHONPATH
@ -37,7 +37,6 @@ space := $(empty) $(empty)
OSX_APP=Dash-Qt.app OSX_APP=Dash-Qt.app
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME)) OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
OSX_DMG = $(OSX_VOLNAME).dmg OSX_DMG = $(OSX_VOLNAME).dmg
OSX_TEMP_ISO = $(OSX_DMG:.dmg=).temp.iso
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/dash.icns OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/dash.icns
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
@ -127,19 +126,15 @@ deploydir: $(OSX_DMG)
else !BUILD_DARWIN else !BUILD_DARWIN
APP_DIST_DIR=$(top_builddir)/dist APP_DIST_DIR=$(top_builddir)/dist
$(OSX_TEMP_ISO): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt $(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 -o $@ $(APP_DIST_DIR) -- $(if $(SOURCE_DATE_EPOCH),-volume_date all_file_dates =$(SOURCE_DATE_EPOCH))
$(OSX_DMG): $(OSX_TEMP_ISO)
$(DMG) dmg "$<" "$@"
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING) $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
INSTALLNAMETOOL=$(INSTALLNAMETOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR) INSTALLNAMETOOL=$(INSTALLNAMETOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR)
deploydir: $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt deploydir: $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt
endif !BUILD_DARWIN endif !BUILD_DARWIN
appbundle: $(OSX_APP_BUILT)
deploy: $(OSX_DMG) deploy: $(OSX_DMG)
endif endif

View File

@ -846,7 +846,6 @@ case $host in
AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool) AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool)
AC_PATH_TOOL([OTOOL], [otool], otool) AC_PATH_TOOL([OTOOL], [otool], otool)
AC_PATH_PROGS([XORRISOFS], [xorrisofs], xorrisofs) AC_PATH_PROGS([XORRISOFS], [xorrisofs], xorrisofs)
AC_PATH_PROGS([DMG], [dmg], dmg)
dnl libtool will try to strip the static lib, which is a problem for dnl libtool will try to strip the static lib, which is a problem for
dnl cross-builds because strip attempts to call a hard-coded ld, dnl cross-builds because strip attempts to call a hard-coded ld,

View File

@ -81,19 +81,6 @@ prepend_to_search_env_var() {
export "${1}=${2}${!1:+:}${!1}" export "${1}=${2}${!1:+:}${!1}"
} }
case "$HOST" in
*darwin*)
# When targeting darwin, zlib is required by native_libdmg-hfsplus.
zlib_store_path=$(store_path "zlib")
zlib_static_store_path=$(store_path "zlib" static)
prepend_to_search_env_var LIBRARY_PATH "${zlib_static_store_path}/lib:${zlib_store_path}/lib"
prepend_to_search_env_var C_INCLUDE_PATH "${zlib_store_path}/include"
prepend_to_search_env_var CPLUS_INCLUDE_PATH "${zlib_store_path}/include"
prepend_to_search_env_var OBJC_INCLUDE_PATH "${zlib_store_path}/include"
prepend_to_search_env_var OBJCPLUS_INCLUDE_PATH "${zlib_store_path}/include"
esac
# Set environment variables to point the CROSS toolchain to the right # Set environment variables to point the CROSS toolchain to the right
# includes/libs for $HOST # includes/libs for $HOST
case "$HOST" in case "$HOST" in
@ -326,8 +313,7 @@ mkdir -p "$DISTSRC"
make deploydir ${V:+V=1} make deploydir ${V:+V=1}
mkdir -p "unsigned-app-${HOST}" mkdir -p "unsigned-app-${HOST}"
cp --target-directory="unsigned-app-${HOST}" \ cp --target-directory="unsigned-app-${HOST}" \
contrib/macdeploy/detached-sig-create.sh \ contrib/macdeploy/detached-sig-create.sh
"${BASEPREFIX}/${HOST}"/native/bin/dmg
mv --target-directory="unsigned-app-${HOST}" dist mv --target-directory="unsigned-app-${HOST}" dist
( (
cd "unsigned-app-${HOST}" cd "unsigned-app-${HOST}"

View File

@ -77,14 +77,11 @@ mkdir -p "$DISTSRC"
# Apply detached codesignatures to dist/ (in-place) # Apply detached codesignatures to dist/ (in-place)
signapple apply dist/Dash-Qt.app codesignatures/osx/dist signapple apply dist/Dash-Qt.app codesignatures/osx/dist
# Make an uncompressed DMG from dist/ # Make a DMG from dist/
xorrisofs -D -l -V "$(< osx_volname)" -no-pad -r -dir-mode 0755 \ xorrisofs -D -l -V "$(< osx_volname)" -no-pad -r -dir-mode 0755 \
-o uncompressed.dmg \ -o "${OUTDIR}/${DISTNAME}-${HOST}.dmg" \
dist \ dist \
-- -volume_date all_file_dates ="$SOURCE_DATE_EPOCH" -- -volume_date all_file_dates ="$SOURCE_DATE_EPOCH"
# Compress uncompressed.dmg and output to OUTDIR
./dmg dmg uncompressed.dmg "${OUTDIR}/${DISTNAME}-${HOST}.dmg"
;; ;;
*) *)
exit 1 exit 1

View File

@ -585,8 +585,6 @@ parse, modify and abstract ELF, PE and MachO formats.")
bzip2 bzip2
gzip gzip
xz xz
zlib
(list zlib "static")
;; Build tools ;; Build tools
cmake-minimal cmake-minimal
gnu-make gnu-make

View File

@ -97,16 +97,7 @@ redistributed.
[`xorrisofs`](https://www.gnu.org/software/xorriso/) is used to create the DMG. [`xorrisofs`](https://www.gnu.org/software/xorriso/) is used to create the DMG.
`xorrisofs` cannot compress DMGs, so afterwards, the DMG tool from the A background image is added to DMG files by inserting a `.DS_Store` during creation.
`libdmg-hfsplus` project is used to compress it. There are several bugs in this
tool and its maintainer has seemingly abandoned the project.
The DMG tool has the ability to create DMGs from scratch as well, but this functionality is
broken. Only the compression feature is currently used. Ideally, the creation could be fixed
and `xorrisofs` would no longer be necessary.
Background images and other features can be added to DMG files by inserting a
`.DS_Store` during creation.
As of OS X 10.9 Mavericks, using an Apple-blessed key to sign binaries is a requirement in As of OS X 10.9 Mavericks, using an Apple-blessed key to sign binaries is a requirement in
order to satisfy the new Gatekeeper requirements. Because this private key cannot be order to satisfy the new Gatekeeper requirements. Because this private key cannot be

View File

@ -1,24 +0,0 @@
package=native_libdmg-hfsplus
$(package)_version=7ac55ec64c96f7800d9818ce64c79670e7f02b67
$(package)_download_path=https://github.com/planetbeing/libdmg-hfsplus/archive
$(package)_file_name=$($(package)_version).tar.gz
$(package)_sha256_hash=56fbdc48ec110966342f0ecddd6f8f89202f4143ed2a3336e42bbf88f940850c
$(package)_build_subdir=build
$(package)_patches=remove-libcrypto-dependency.patch
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/remove-libcrypto-dependency.patch && \
mkdir build
endef
define $(package)_config_cmds
$($(package)_cmake) -DCMAKE_C_FLAGS="$$($(1)_cflags) -Wl,--build-id=none" -DCMAKE_SKIP_RPATH="ON" -DCMAKE_EXE_LINKER_FLAGS="-static" -DCMAKE_FIND_LIBRARY_SUFFIXES=".a" ..
endef
define $(package)_build_cmds
$(MAKE) -C dmg
endef
define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) -C dmg install
endef

View File

@ -27,7 +27,7 @@ usdt_linux_packages=systemtap
darwin_native_packages = native_ds_store native_mac_alias darwin_native_packages = native_ds_store native_mac_alias
ifneq ($(build_os),darwin) ifneq ($(build_os),darwin)
darwin_native_packages += native_cctools native_libtapi native_libdmg-hfsplus darwin_native_packages += native_cctools native_libtapi
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),) ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
darwin_native_packages+= native_clang darwin_native_packages+= native_clang

View File

@ -1,45 +0,0 @@
From 3e5fd3fb56bc9ff03beb535979e33dcf83fe1f70 Mon Sep 17 00:00:00 2001
From: Cory Fields <cory-nospam-@coryfields.com>
Date: Thu, 8 May 2014 12:39:42 -0400
Subject: [PATCH] dmg: remove libcrypto dependency
---
dmg/CMakeLists.txt | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/dmg/CMakeLists.txt b/dmg/CMakeLists.txt
index eec62d6..3969f64 100644
--- a/dmg/CMakeLists.txt
+++ b/dmg/CMakeLists.txt
@@ -1,12 +1,5 @@
-INCLUDE(FindOpenSSL)
INCLUDE(FindZLIB)
-FIND_LIBRARY(CRYPTO_LIBRARIES crypto
- PATHS
- /usr/lib
- /usr/local/lib
- )
-
IF(NOT ZLIB_FOUND)
message(FATAL_ERROR "zlib is required for dmg!")
ENDIF(NOT ZLIB_FOUND)
@@ -18,15 +11,6 @@ link_directories(${PROJECT_BINARY_DIR}/common ${PROJECT_BINARY_DIR}/hfs)
add_library(dmg adc.c base64.c checksum.c dmgfile.c dmglib.c filevault.c io.c partition.c resources.c udif.c)
-IF(OPENSSL_FOUND)
- add_definitions(-DHAVE_CRYPT)
- include_directories(${OPENSSL_INCLUDE_DIR})
- target_link_libraries(dmg ${CRYPTO_LIBRARIES})
- IF(WIN32)
- TARGET_LINK_LIBRARIES(dmg gdi32)
- ENDIF(WIN32)
-ENDIF(OPENSSL_FOUND)
-
target_link_libraries(dmg common hfs z)
add_executable(dmg-bin dmg.c)
--
2.22.0