contrib: Update macdeploy README
This commit is contained in:
parent
927a03465f
commit
bf4730dd64
|
@ -1,17 +1,5 @@
|
|||
# MacOS Deployment
|
||||
|
||||
The `macdeployqtplus` script should not be run manually. Instead, after building as usual:
|
||||
|
||||
```bash
|
||||
make deploy
|
||||
```
|
||||
|
||||
During the deployment process, the disk image window will pop up briefly
|
||||
when the fancy settings are applied. This is normal, please do not interfere,
|
||||
the process will unmount the DMG and cleanup before finishing.
|
||||
|
||||
When complete, it will have produced `Bitcoin-Qt.dmg`.
|
||||
|
||||
## SDK Extraction
|
||||
|
||||
### Step 1: Obtaining `Xcode.app`
|
||||
|
@ -20,7 +8,10 @@ Our current macOS SDK
|
|||
(`Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz`) can be
|
||||
extracted from
|
||||
[Xcode_11.3.1.xip](https://download.developer.apple.com/Developer_Tools/Xcode_11.3.1/Xcode_11.3.1.xip).
|
||||
An Apple ID is needed to download this.
|
||||
In order to download this, you may need to first
|
||||
[log in with an Apple ID here](https://developer.apple.com/download/more/).
|
||||
|
||||
The file is ~7.8 GB.
|
||||
|
||||
After Xcode version 7.x, Apple started shipping the `Xcode.app` in a `.xip`
|
||||
archive. This makes the SDK less-trivial to extract on non-macOS machines. One
|
||||
|
@ -42,6 +33,8 @@ On macOS the process is more straightforward:
|
|||
xip -x Xcode_11.3.1.xip
|
||||
```
|
||||
|
||||
The extracted files require ~17 GB of disk space.
|
||||
|
||||
### Step 2: Generating `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz` from `Xcode.app`
|
||||
|
||||
To generate `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz`, run
|
||||
|
@ -78,9 +71,9 @@ These tools inject timestamps by default, which produce non-deterministic binari
|
|||
This version of `cctools` has been patched to use the current version of `clang`'s headers
|
||||
and its `libLTO.so` rather than those from `llvmgcc`, as it was originally done in `toolchain4`.
|
||||
|
||||
To complicate things further, all builds must target an Apple SDK. These SDKs are free to
|
||||
download, but not redistributable. To obtain it, register for an Apple Developer Account,
|
||||
then download [Xcode_11.3.1](https://download.developer.apple.com/Developer_Tools/Xcode_11.3.1/Xcode_11.3.1.xip).
|
||||
To complicate things further, all builds must target a macOS SDK. These SDKs are free to
|
||||
download, but are contained in an Xcode archive that is not redistributable. Instructions
|
||||
on how to obtain this archive (Xcode_11.3.1.xip) were given earlier.
|
||||
|
||||
This file is many gigabytes in size, but most (but not all) of what we need is
|
||||
contained only in a single directory:
|
||||
|
@ -96,6 +89,8 @@ created using these tools. The build process has been designed to avoid includin
|
|||
SDK's files in Gitian's outputs. All interim tarballs are fully deterministic and may be freely
|
||||
redistributed.
|
||||
|
||||
Note: the documentation below may be outdated.
|
||||
|
||||
`genisoimage` is used to create the initial DMG. It is not deterministic as-is, so it has been
|
||||
patched. A system `genisoimage` will work fine, but it will not be deterministic because
|
||||
the file-order will change between invocations. The patch can be seen here: [cdrkit-deterministic.patch](https://github.com/bitcoin/bitcoin/blob/master/depends/patches/native_cdrkit/cdrkit-deterministic.patch).
|
||||
|
|
|
@ -57,7 +57,7 @@ def run():
|
|||
out_sdktgz_path = pathlib.Path("./{}.tar.gz".format(out_name))
|
||||
|
||||
def tarfp_add_with_base_change(tarfp, dir_to_add, alt_base_dir):
|
||||
"""Add all files in dir_to_add to tarfp, but prepent MEMBERPREFIX to the files'
|
||||
"""Add all files in dir_to_add to tarfp, but prepend MEMBERPREFIX to the files'
|
||||
names
|
||||
|
||||
e.g. if the only file under /root/bazdir is /root/bazdir/qux, invoking:
|
||||
|
|
|
@ -31,4 +31,4 @@ be exposed in future releases.
|
|||
|
||||
Compatibility
|
||||
-------------
|
||||
macOS versions earlier than 10.12 are no longer supported.
|
||||
macOS versions earlier than 10.12 (Sierra) are no longer supported.
|
||||
|
|
Loading…
Reference in New Issue