Skip to content

Commit b5790c3

Browse files
fanquakehebasto
authored andcommitted
build: remove dmg dependencies
1 parent 33ae0bd commit b5790c3

10 files changed

+15
-58
lines changed

ci/test/00_setup_env_mac.sh

+1-1
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 zip"
14+
export PACKAGES="cmake libz-dev python3-setuptools zip"
1515
export XCODE_VERSION=12.2
1616
export XCODE_BUILD_ID=12B45b
1717
export RUN_UNIT_TESTS=false

configure.ac

-1
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,6 @@ case $host in
799799
AC_PATH_TOOL([DSYMUTIL], [dsymutil], [dsymutil])
800800
AC_PATH_TOOL([INSTALL_NAME_TOOL], [install_name_tool], [install_name_tool])
801801
AC_PATH_TOOL([OTOOL], [otool], [otool])
802-
AC_PATH_PROGS([XORRISOFS], [xorrisofs], [xorrisofs])
803802
AC_PATH_PROG([ZIP], [zip], [zip])
804803

805804
dnl libtool will try to strip the static lib, which is a problem for

contrib/guix/manifest.scm

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
((gnu packages bash) #:select (bash-minimal))
44
(gnu packages bison)
55
((gnu packages certs) #:select (nss-certs))
6-
((gnu packages cdrom) #:select (xorriso))
76
((gnu packages cmake) #:select (cmake-minimal))
87
(gnu packages commencement)
98
(gnu packages compression)
@@ -606,5 +605,5 @@ inspecting signatures in Mach-O binaries.")
606605
((string-contains target "-linux-")
607606
(list (make-bitcoin-cross-toolchain target)))
608607
((string-contains target "darwin")
609-
(list clang-toolchain-15 binutils cmake-minimal xorriso python-signapple zip))
608+
(list clang-toolchain-15 binutils cmake-minimal python-signapple zip))
610609
(else '())))))

contrib/macdeploy/README.md

+7-12
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The `macdeployqtplus` script should not be run manually. Instead, after building
66
make deploy
77
```
88

9-
When complete, it will have produced `Bitcoin-Core.dmg`.
9+
When complete, it will have produced `Bitcoin-Core.zip`.
1010

1111
## SDK Extraction
1212

@@ -60,10 +60,10 @@ previous stage) as the first argument.
6060

6161
The `sha256sum` of the generated TAR.GZ archive should be `df75d30ecafc429e905134333aeae56ac65fac67cb4182622398fd717df77619`.
6262

63-
## Deterministic macOS DMG Notes
63+
## Deterministic macOS App Notes
6464

65-
Working macOS DMGs are created in Linux by combining a recent `clang`, the Apple
66-
`binutils` (`ld`, `ar`, etc) and DMG authoring tools.
65+
macOS Applications are created in Linux by combining a recent `clang` and the Apple
66+
`binutils` (`ld`, `ar`, etc).
6767

6868
Apple uses `clang` extensively for development and has upstreamed the necessary
6969
functionality so that a vanilla clang can take advantage. It supports the use of `-F`,
@@ -93,20 +93,15 @@ created using these tools. The build process has been designed to avoid includin
9393
SDK's files in Guix's outputs. All interim tarballs are fully deterministic and may be freely
9494
redistributed.
9595

96-
[`xorrisofs`](https://www.gnu.org/software/xorriso/) is used to create the DMG.
97-
98-
A background image is added to DMG files by inserting a `.DS_Store` during creation.
99-
10096
As of OS X 10.9 Mavericks, using an Apple-blessed key to sign binaries is a requirement in
10197
order to satisfy the new Gatekeeper requirements. Because this private key cannot be
10298
shared, we'll have to be a bit creative in order for the build process to remain somewhat
10399
deterministic. Here's how it works:
104100

105-
- Builders use Guix to create an unsigned release. This outputs an unsigned DMG which
101+
- Builders use Guix to create an unsigned release. This outputs an unsigned ZIP which
106102
users may choose to bless and run. It also outputs an unsigned app structure in the form
107-
of a tarball, which also contains all of the tools that have been previously (deterministically)
108-
built in order to create a final DMG.
103+
of a tarball.
109104
- The Apple keyholder uses this unsigned app to create a detached signature, using the
110105
script that is also included there. Detached signatures are available from this [repository](https://github.com/bitcoin-core/bitcoin-detached-sigs).
111106
- Builders feed the unsigned app + detached signature back into Guix. It uses the
112-
pre-built tools to recombine the pieces into a deterministic DMG.
107+
pre-built tools to recombine the pieces into a deterministic ZIP.

depends/README.md

+1-1
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 zip
51+
sudo apt-get install curl bsdmainutils cmake libz-dev python3-setuptools 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`.

depends/packages/native_ds_store.mk

-15
This file was deleted.

depends/packages/native_mac_alias.mk

-15
This file was deleted.

depends/packages/packages.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ multiprocess_native_packages = native_libmultiprocess native_capnp
2727

2828
usdt_linux_packages=systemtap
2929

30-
darwin_native_packages = native_ds_store native_mac_alias
30+
darwin_native_packages =
3131

3232
ifneq ($(build_os),darwin)
3333
darwin_native_packages += native_cctools native_libtapi

doc/build-osx.md

+3-9
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,8 @@ brew install python
163163

164164
#### Deploy Dependencies
165165

166-
You can deploy a `.dmg` containing the Bitcoin Core application using `make deploy`.
167-
This command depends on a couple of python packages, so it is required that you have `python` installed.
168-
169-
Ensuring that `python` is installed, you can install the deploy dependencies by running the following commands in your terminal:
170-
171-
``` bash
172-
pip3 install ds_store mac_alias
173-
```
166+
You can deploy a `.zip` containing the Bitcoin Core application using `make deploy`.
167+
It is required that you have `python` installed.
174168

175169
## Building Bitcoin Core
176170

@@ -230,7 +224,7 @@ make check # Run tests if Python 3 is available
230224

231225
### 3. Deploy (optional)
232226

233-
You can also create a `.dmg` containing the `.app` bundle by running the following command:
227+
You can also create a `.zip` containing the `.app` bundle by running the following command:
234228

235229
``` bash
236230
make deploy

doc/release-process.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ git -C ./guix.sigs pull
123123
### Create the macOS SDK tarball (first time, or when SDK version changes)
124124

125125
Create the macOS SDK tarball, see the [macdeploy
126-
instructions](/contrib/macdeploy/README.md#deterministic-macos-dmg-notes) for
126+
instructions](/contrib/macdeploy/README.md#deterministic-macos-app-notes) for
127127
details.
128128

129129
### Build and attest to build outputs

0 commit comments

Comments
 (0)