-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: set minimum supported macOS to 10.12 #17550
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
ACK 7d7bf2f |
So this bumps the supported OSX version, but doesn't bump the SDK? (At least not a major version of the SDK?) Edit: What I'm trying to ask is, could we have bumped the supported OSX version without bumping the SDK? |
That's what this PR is doing. This increases our minimum supported macOS version from |
post-IRC-grilling-ACK 7d7bf2f |
7d7bf2f build: set minimum supported macOS to 10.12 (fanquake) Pull request description: Extracted from #16392 as this doesn't need to wait for the other build changes. Reasoning: * `10.10` has been unsupported since July 2017 (~3 years at `v0.20.0` release) * `10.11` has been unsupported since July 2018 (~2 years at `v0.20.0` release) * macOS users are consistent at upgrading to new releases. * Qt 5.12 LTS only supports [macOS > 10.12](https://doc-snapshots.qt.io/qt5-5.12/supported-platforms.html). As long as we're supporting macOS < 10.12 we would not be able to bump Qt in depends to 5.12 for the `v0.20.0` release. Once we drop support for 10.12 and start using the 10.15 SDK there are some other follow ups: * Enabling support for [`thread_local`](https://github.com/bitcoin/bitcoin/blob/master/configure.ac#L901). * Removing some of the macOS notification code * Removing macOS [startup item code](https://github.com/bitcoin/bitcoin/blob/master/src/qt/guiutil.cpp#L695). There was also some related discussion in the `#bitcoin-builds` channel yesterday arvo. ACKs for top commit: laanwj: ACK 7d7bf2f dongcarl: post-IRC-grilling-ACK 7d7bf2f Tree-SHA512: 30b0ed75e3b4df2d3f94db2091b7982c1ea7be8fb3a2732d8efd1a53ef1e492d7265a47e90c38e92f66e638d10e9400a6ecb56e5093688bb26d1621645b453e8
7d7bf2f build: set minimum supported macOS to 10.12 (fanquake) Pull request description: Extracted from bitcoin#16392 as this doesn't need to wait for the other build changes. Reasoning: * `10.10` has been unsupported since July 2017 (~3 years at `v0.20.0` release) * `10.11` has been unsupported since July 2018 (~2 years at `v0.20.0` release) * macOS users are consistent at upgrading to new releases. * Qt 5.12 LTS only supports [macOS > 10.12](https://doc-snapshots.qt.io/qt5-5.12/supported-platforms.html). As long as we're supporting macOS < 10.12 we would not be able to bump Qt in depends to 5.12 for the `v0.20.0` release. Once we drop support for 10.12 and start using the 10.15 SDK there are some other follow ups: * Enabling support for [`thread_local`](https://github.com/bitcoin/bitcoin/blob/master/configure.ac#L901). * Removing some of the macOS notification code * Removing macOS [startup item code](https://github.com/bitcoin/bitcoin/blob/master/src/qt/guiutil.cpp#L695). There was also some related discussion in the `#bitcoin-builds` channel yesterday arvo. ACKs for top commit: laanwj: ACK 7d7bf2f dongcarl: post-IRC-grilling-ACK 7d7bf2f Tree-SHA512: 30b0ed75e3b4df2d3f94db2091b7982c1ea7be8fb3a2732d8efd1a53ef1e492d7265a47e90c38e92f66e638d10e9400a6ecb56e5093688bb26d1621645b453e8
Gitian builds
|
The macOS startup item code was disabled for builds targeting macOS > 10.11 in bitcoin#15208. Now that we require macOS 10.12 as a minimum, bitcoin#17550, we can remove the startup item code entirely, as the API we were using was removed in macOS 10.12.
27d82b6 gui: remove macOS start on login code (fanquake) Pull request description: The macOS startup item code was disabled for builds targeting macOS > `10.11` in #15208. Now that we require macOS `10.12` as a minimum (#17550), we can remove the startup item code entirely. The API we were using, `LSSharedFileListItemCopyResolvedURL`, `LSSharedFileListCopySnapshot` etc, was removed in macOS `10.12` SDK. ACKs for top commit: jonasschnelli: utACK 27d82b6 jonasschnelli: Tested ACK 27d82b6 - successfully compiled on 10.15.1 Tree-SHA512: 7420757b91c7820e6a63280887155394547134a9cebcf3721af0284da23292627f94cd431241e033075b3fd86d79ace3ebf1b25d17763acbf71e07a742395409
27d82b6 gui: remove macOS start on login code (fanquake) Pull request description: The macOS startup item code was disabled for builds targeting macOS > `10.11` in bitcoin#15208. Now that we require macOS `10.12` as a minimum (bitcoin#17550), we can remove the startup item code entirely. The API we were using, `LSSharedFileListItemCopyResolvedURL`, `LSSharedFileListCopySnapshot` etc, was removed in macOS `10.12` SDK. ACKs for top commit: jonasschnelli: utACK 27d82b6 jonasschnelli: Tested ACK 27d82b6 - successfully compiled on 10.15.1 Tree-SHA512: 7420757b91c7820e6a63280887155394547134a9cebcf3721af0284da23292627f94cd431241e033075b3fd86d79ace3ebf1b25d17763acbf71e07a742395409
f9f210d doc: fix GetTimeMicros() comment in random.cpp (fanquake) a889711 rand: remove getentropy() fallback for macOS < 10.12 (fanquake) Pull request description: We [no longer support macOS < 10.12](#17550) (our binaries will not run), so remove the fallback for when `getentropy()` wasn't available. From the manpage: ```bash HISTORY The getentropy() function appeared in OSX 10.12 ``` Note that compiling on macOS you'll see a new unused function warning: ```bash random.cpp:256:13: warning: unused function 'GetDevURandom' [-Wunused-function] static void GetDevURandom(unsigned char *ent32) ^ 1 warning generated. ``` This will likely be addressed as part of #17563. ACKs for top commit: vasild: ACK f9f210d (code review, not tested) elichai: utACK f9f210d practicalswift: ACK f9f210d -- patch looks correct laanwj: ACK f9f210d hebasto: ACK f9f210d, tested on macOS 10.13.6: compiled Tree-SHA512: 6bd2a721f23605a8bca0b7b51f42d628ebf92a18e74eb43194331ba745ee449223aff84119892781c40b188c70b75417447f4e390e3d9ac549292de2b1e8b308
… 10.12 f9f210d doc: fix GetTimeMicros() comment in random.cpp (fanquake) a889711 rand: remove getentropy() fallback for macOS < 10.12 (fanquake) Pull request description: We [no longer support macOS < 10.12](bitcoin#17550) (our binaries will not run), so remove the fallback for when `getentropy()` wasn't available. From the manpage: ```bash HISTORY The getentropy() function appeared in OSX 10.12 ``` Note that compiling on macOS you'll see a new unused function warning: ```bash random.cpp:256:13: warning: unused function 'GetDevURandom' [-Wunused-function] static void GetDevURandom(unsigned char *ent32) ^ 1 warning generated. ``` This will likely be addressed as part of bitcoin#17563. ACKs for top commit: vasild: ACK f9f210d (code review, not tested) elichai: utACK f9f210d practicalswift: ACK f9f210d -- patch looks correct laanwj: ACK f9f210d hebasto: ACK f9f210d, tested on macOS 10.13.6: compiled Tree-SHA512: 6bd2a721f23605a8bca0b7b51f42d628ebf92a18e74eb43194331ba745ee449223aff84119892781c40b188c70b75417447f4e390e3d9ac549292de2b1e8b308
Summary: ``` Reasoning: 10.10 has been unsupported since July 2017 (~3 years at v0.20.0 release) 10.11 has been unsupported since July 2018 (~2 years at v0.20.0 release) macOS users are consistent at upgrading to new releases. Qt 5.12 LTS only supports macOS > 10.12. As long as we're supporting macOS < 10.12 we would not be able to bump Qt in depends to 5.12 for the v0.20.0 release. ``` Backport of core [[bitcoin/bitcoin#17550 | PR17550]]. Test Plan: Run the OSX Gitian build. Run the binary on 10.12 and 10.15. Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D5514
Summary: ``` Reasoning: 10.10 has been unsupported since July 2017 (~3 years at v0.20.0 release) 10.11 has been unsupported since July 2018 (~2 years at v0.20.0 release) macOS users are consistent at upgrading to new releases. Qt 5.12 LTS only supports macOS > 10.12. As long as we're supporting macOS < 10.12 we would not be able to bump Qt in depends to 5.12 for the v0.20.0 release. ``` Backport of core [[bitcoin/bitcoin#17550 | PR17550]]. Test Plan: Run the OSX Gitian build. Run the binary on 10.12 and 10.15. Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D5514
The macOS startup item code was disabled for builds targeting macOS > 10.11 in bitcoin#15208. Now that we require macOS 10.12 as a minimum, bitcoin#17550, we can remove the startup item code entirely, as the API we were using was removed in macOS 10.12.
Summary: ``` Reasoning: 10.10 has been unsupported since July 2017 (~3 years at v0.20.0 release) 10.11 has been unsupported since July 2018 (~2 years at v0.20.0 release) macOS users are consistent at upgrading to new releases. Qt 5.12 LTS only supports macOS > 10.12. As long as we're supporting macOS < 10.12 we would not be able to bump Qt in depends to 5.12 for the v0.20.0 release. ``` Backport of core [[bitcoin/bitcoin#17550 | PR17550]]. Includes fix D5530 (368a0fa) by Fabien. Test Plan: Run the OSX Gitian build. Run the binary on 10.12 and 10.15. Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D5514
Modernise macOS cross-compilation toolchain Cherry-picked from the following upstream PRs: - bitcoin/bitcoin#13617 - Excluding the QT GUI changes. - bitcoin/bitcoin#17550 - bitcoin/bitcoin#16392 - Excluding the QT GUI changes. - bitcoin/bitcoin#18589 - bitcoin/bitcoin#19240 - bitcoin/bitcoin#19407 - bitcoin/bitcoin#17919 - Only the ancillary changes, not the `FORCE_USE_SYSTEM_CLANG` change. - bitcoin/bitcoin#19530 After these changes, macOS versions earlier than 10.12 are no longer supported. To cross-compile for macOS: - Follow the instructions in `contrib/macdeploy/README.md` to generate `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz` (requires an Apple Developer Account) - Extract it into `depends/SDKs` (creating that folder first if it does not exist) - `HOST=x86_64-apple-darwin16 ./zcutil/build.sh`
Modernise macOS cross-compilation toolchain Cherry-picked from the following upstream PRs: - bitcoin/bitcoin#13617 - Excluding the QT GUI changes. - bitcoin/bitcoin#17550 - bitcoin/bitcoin#16392 - Excluding the QT GUI changes. - bitcoin/bitcoin#18589 - bitcoin/bitcoin#19240 - bitcoin/bitcoin#19407 - bitcoin/bitcoin#17919 - Only the ancillary changes, not the `FORCE_USE_SYSTEM_CLANG` change. - bitcoin/bitcoin#19530 After these changes, macOS versions earlier than 10.12 are no longer supported. To cross-compile for macOS: - Follow the instructions in `contrib/macdeploy/README.md` to generate `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz` (requires an Apple Developer Account) - Extract it into `depends/SDKs` (creating that folder first if it does not exist) - `HOST=x86_64-apple-darwin16 ./zcutil/build.sh`
7d7bf2f build: set minimum supported macOS to 10.12 (fanquake) Pull request description: Extracted from bitcoin#16392 as this doesn't need to wait for the other build changes. Reasoning: * `10.10` has been unsupported since July 2017 (~3 years at `v0.20.0` release) * `10.11` has been unsupported since July 2018 (~2 years at `v0.20.0` release) * macOS users are consistent at upgrading to new releases. * Qt 5.12 LTS only supports [macOS > 10.12](https://doc-snapshots.qt.io/qt5-5.12/supported-platforms.html). As long as we're supporting macOS < 10.12 we would not be able to bump Qt in depends to 5.12 for the `v0.20.0` release. Once we drop support for 10.12 and start using the 10.15 SDK there are some other follow ups: * Enabling support for [`thread_local`](https://github.com/bitcoin/bitcoin/blob/master/configure.ac#L901). * Removing some of the macOS notification code * Removing macOS [startup item code](https://github.com/bitcoin/bitcoin/blob/master/src/qt/guiutil.cpp#L695). There was also some related discussion in the `#bitcoin-builds` channel yesterday arvo. ACKs for top commit: laanwj: ACK 7d7bf2f dongcarl: post-IRC-grilling-ACK 7d7bf2f Tree-SHA512: 30b0ed75e3b4df2d3f94db2091b7982c1ea7be8fb3a2732d8efd1a53ef1e492d7265a47e90c38e92f66e638d10e9400a6ecb56e5093688bb26d1621645b453e8
27d82b6 gui: remove macOS start on login code (fanquake) Pull request description: The macOS startup item code was disabled for builds targeting macOS > `10.11` in bitcoin#15208. Now that we require macOS `10.12` as a minimum (bitcoin#17550), we can remove the startup item code entirely. The API we were using, `LSSharedFileListItemCopyResolvedURL`, `LSSharedFileListCopySnapshot` etc, was removed in macOS `10.12` SDK. ACKs for top commit: jonasschnelli: utACK 27d82b6 jonasschnelli: Tested ACK 27d82b6 - successfully compiled on 10.15.1 Tree-SHA512: 7420757b91c7820e6a63280887155394547134a9cebcf3721af0284da23292627f94cd431241e033075b3fd86d79ace3ebf1b25d17763acbf71e07a742395409
… 10.12 f9f210d doc: fix GetTimeMicros() comment in random.cpp (fanquake) a889711 rand: remove getentropy() fallback for macOS < 10.12 (fanquake) Pull request description: We [no longer support macOS < 10.12](bitcoin#17550) (our binaries will not run), so remove the fallback for when `getentropy()` wasn't available. From the manpage: ```bash HISTORY The getentropy() function appeared in OSX 10.12 ``` Note that compiling on macOS you'll see a new unused function warning: ```bash random.cpp:256:13: warning: unused function 'GetDevURandom' [-Wunused-function] static void GetDevURandom(unsigned char *ent32) ^ 1 warning generated. ``` This will likely be addressed as part of bitcoin#17563. ACKs for top commit: vasild: ACK f9f210d (code review, not tested) elichai: utACK f9f210d practicalswift: ACK f9f210d -- patch looks correct laanwj: ACK f9f210d hebasto: ACK f9f210d, tested on macOS 10.13.6: compiled Tree-SHA512: 6bd2a721f23605a8bca0b7b51f42d628ebf92a18e74eb43194331ba745ee449223aff84119892781c40b188c70b75417447f4e390e3d9ac549292de2b1e8b308
The macOS startup item code was disabled for builds targeting macOS > 10.11 in #15208. Now that we require macOS 10.12 as a minimum, #17550, we can remove the startup item code entirely, as the API we were using was removed in macOS 10.12.
e1b89ac Fix QPainter non-determinism on macOS (Andrew Chow) 831c317 macOS deploy: use the new plistlib API (Jonas Schnelli) 5857aaf doc: Document ALLOW_HOST_PACKAGES dependency option (skmcontrib) 2329e08 build: Fix behavior when ALLOW_HOST_PACKAGES unset (Hennadii Stepanov) 1768870 depends: native_ds_store 1.3.0 (fanquake) 3f9f3e5 depends: pull upstream libdmg-hfsplus changes (fanquake) f7606dc depends: latest config.guess & config.sub (fanquake) cc3ae74 depends: bump native_cctools for fixed lto with external clang (Cory Fields) b26c648 depends: enable lto support for Apple's ld64 (Cory Fields) 50933d7 depends: Add documentation for FORCE_USE_SYSTEM_CLANG make flag (Carl Dong) ba3ddf2 depends: Reformat make options as definition list (Carl Dong) 3b855a7 depends: Add justifications for macOS clang flags (Carl Dong) 4104de0 depends: specify libc++ header location for darwin (Cory Fields) cd4335f depends: force a new host id string if FORCE_USE_SYSTEM_CLANG is in use (Cory Fields) d30e1af depends: Allow building with system clang (Carl Dong) 234828b depends: Decouple toolchain + binutils (Carl Dong) 1dd3a5a doc: explain why passing -mlinker-version is required (fanquake) 5cc0d0f darwin: pass mlinker-version so that clang enables new features (Cory Fields) 813a552 macos: Bump to xcode 11.3.1 and 10.15 SDK (Cory Fields) ee7085f depends: bump MacOS toolchain (Cory Fields) e5b092b contrib: macdeploy: Remove historical extraction notes (Carl Dong) 5893caf contrib: macdeploy: Use apple-sdk-tools instead of xar+pbzx (Carl Dong) 9f2d4ba native_cctools: Don't use libc++ from pinned clang (Carl Dong) 0c8d217 Adapt rest of tooling to new SDK naming scheme (Carl Dong) bdacfa8 contrib: macdeploy: Correctly generate macOS SDK (Carl Dong) f7eee2c Fix naming of macOS SDK and clarify version (Andrew Chow) 62f9e23 build: use macOS 10.14 SDK (fanquake) bc2e1af depends: native_cctools 921, ld64 409.12, libtapi 1000.10.8 (fanquake) a296d87 depends: clang 6.0.1 (fanquake) 8f6c475 build: Set minimum supported macOS to 10.12 (Fuzzbawls) Pull request description: This backports the following upstream PRs to update the macOS cross-compiling tools: bitcoin#17550 bitcoin#16392 bitcoin#18589 bitcoin#19240 bitcoin#19407 bitcoin#17919 bitcoin#19530 bitcoin#17057 bitcoin#20333 bitcoin#18051 bitcoin#19124 bitcoin#20298 bitcoin#20447 The tools being updated are ### Clang Upgraded from `3.7.1` to `8.0.0` ### cctools * cctools `877.8` -> `949.0.1` * LD64 `253.9` -> `530` * TAPI `1000.10.8` ### DSStore Upgraded from `1.1.2` to `1.3.0` (this removes the biplist dependency) This also effectively bumps our minimum supported macOS version to 10.12 (Sierra). ACKs for top commit: furszy: tested ACK e1b89ac random-zebra: utACK e1b89ac Tree-SHA512: f5cec8db57e07d8855070646b9e1400d48aac1d01e3c2c3b3e134665c6372d6535f3328888bb9a75087f7b3d5231ecb4b509723bfa51bd40770ffe2810c67f65
Extracted from #16392 as this doesn't need to wait for the other build changes.
Reasoning:
10.10
has been unsupported since July 2017 (~3 years atv0.20.0
release)10.11
has been unsupported since July 2018 (~2 years atv0.20.0
release)v0.20.0
release.Once we drop support for 10.12 and start using the 10.15 SDK there are some other follow ups:
thread_local
.There was also some related discussion in the
#bitcoin-builds
channel yesterday arvo.