From 60a5632f77742a5d070d9ba9cf7ef93d8e1b34fc Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 18 Nov 2020 21:38:21 +0800 Subject: [PATCH 1/8] build: set minimum supported macOS to 10.14 --- .cirrus.yml | 2 +- ci/test/00_setup_env_mac.sh | 2 +- ci/test/00_setup_env_mac_host.sh | 2 +- contrib/gitian-descriptors/gitian-osx.yml | 2 +- depends/README.md | 2 +- depends/hosts/darwin.mk | 2 +- doc/build-osx.md | 2 +- doc/release-notes.md | 4 ++-- share/qt/Info.plist.in | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index d08192c7fd..ff2a85a7ea 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -127,7 +127,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh" task: - name: 'macOS 10.12 [GOAL: deploy] [no functional tests]' + name: 'macOS 10.14 [GOAL: deploy] [no functional tests]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:bionic diff --git a/ci/test/00_setup_env_mac.sh b/ci/test/00_setup_env_mac.sh index e4450a65ce..4a022f9b39 100644 --- a/ci/test/00_setup_env_mac.sh +++ b/ci/test/00_setup_env_mac.sh @@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8 export CONTAINER_NAME=ci_macos_cross export DOCKER_NAME_TAG=ubuntu:18.04 # Check that bionic can cross-compile to macos (bionic is used in the gitian build as well) -export HOST=x86_64-apple-darwin16 +export HOST=x86_64-apple-darwin18 export PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools" export XCODE_VERSION=11.3.1 export XCODE_BUILD_ID=11C505 diff --git a/ci/test/00_setup_env_mac_host.sh b/ci/test/00_setup_env_mac_host.sh index 5c4cf0fce7..314c8b6316 100644 --- a/ci/test/00_setup_env_mac_host.sh +++ b/ci/test/00_setup_env_mac_host.sh @@ -6,7 +6,7 @@ export LC_ALL=C.UTF-8 -export HOST=x86_64-apple-darwin16 +export HOST=x86_64-apple-darwin18 export PIP_PACKAGES="zmq" export GOAL="install" # ELEMENTS: add -fno-stack-check to work around clang bug on macos diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index 19cab012b4..6b7ad03c2d 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -39,7 +39,7 @@ script: | set -e -o pipefail WRAP_DIR=$HOME/wrapped - HOSTS="x86_64-apple-darwin16" + HOSTS="x86_64-apple-darwin18" CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests GENISOIMAGE=$WRAP_DIR/genisoimage" FAKETIME_HOST_PROGS="" FAKETIME_PROGS="ar ranlib date dmg genisoimage" diff --git a/depends/README.md b/depends/README.md index 5225a6d5c4..bf8f829848 100644 --- a/depends/README.md +++ b/depends/README.md @@ -25,7 +25,7 @@ Common `host-platform-triplets` for cross compilation are: - `i686-pc-linux-gnu` for Linux 32 bit - `x86_64-pc-linux-gnu` for x86 Linux - `x86_64-w64-mingw32` for Win64 -- `x86_64-apple-darwin16` for macOS +- `x86_64-apple-darwin18` for macOS - `arm-linux-gnueabihf` for Linux ARM 32 bit - `aarch64-linux-gnu` for Linux ARM 64 bit - `powerpc64-linux-gnu` for Linux POWER 64-bit (big endian) diff --git a/depends/hosts/darwin.mk b/depends/hosts/darwin.mk index 6099fd4c71..e9faeba336 100644 --- a/depends/hosts/darwin.mk +++ b/depends/hosts/darwin.mk @@ -1,4 +1,4 @@ -OSX_MIN_VERSION=10.12 +OSX_MIN_VERSION=10.14 OSX_SDK_VERSION=10.15.1 XCODE_VERSION=11.3.1 XCODE_BUILD_ID=11C505 diff --git a/doc/build-osx.md b/doc/build-osx.md index ce109d0c59..9b1df8ed3b 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -111,6 +111,6 @@ tail -f $HOME/Library/Application\ Support/Bitcoin/debug.log ``` ## Notes -* Tested on OS X 10.12 Sierra through macOS 10.15 Catalina on 64-bit Intel +* Tested on OS X 10.14 Mojave through macOS 11 Big Sur on 64-bit Intel processors only. * Building with downloaded Qt binaries is not officially supported. See the notes in [#7714](https://github.com/bitcoin/bitcoin/issues/7714). diff --git a/doc/release-notes.md b/doc/release-notes.md index 0331328ff5..14cdeff1b1 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -51,12 +51,12 @@ with the 0.22.0 release. This means that a compiler that supports C++17 will be required to compile 0.22.0. Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin +using the Linux kernel, macOS 10.14+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. -From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no +From Bitcoin Core 0.22.0 onwards, macOS versions earlier than 10.14 are no longer supported. Additionally, Bitcoin Core does not yet change appearance when macOS "dark mode" is activated. diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in index b64b19d8ce..81eb98cdba 100644 --- a/share/qt/Info.plist.in +++ b/share/qt/Info.plist.in @@ -3,7 +3,7 @@ LSMinimumSystemVersion - 10.12.0 + 10.14.0 LSArchitecturePriority From 953cbe25995775c62b45aed2d6a57c84a1d67922 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Sun, 7 Jun 2020 03:47:05 +0200 Subject: [PATCH 2/8] ci: Run nowallet ci config on cirrus https://github.com/bitcoin/bitcoin/pull/19179 (1/3) --- .cirrus.yml | 8 ++++++++ .travis.yml | 10 ++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index ff2a85a7ea..64b5c12c82 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -126,6 +126,14 @@ task: env: FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh" +task: + name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]' + << : *GLOBAL_TASK_TEMPLATE + container: + image: ubuntu:bionic + env: + FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh" + task: name: 'macOS 10.14 [GOAL: deploy] [no functional tests]' << : *GLOBAL_TASK_TEMPLATE diff --git a/.travis.yml b/.travis.yml index 77b59da75f..4cffffb622 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,13 +65,7 @@ jobs: script: - set -o errexit; source ./ci/lint/06_script.sh -# Disabled due to new Travis restrictions; will be removed as part of 0.22 rebase -# - stage: test -# name: '32-bit + dash [GOAL: install] [CentOS 7] [gui]' -# env: >- -# FILE_ENV="./ci/test/00_setup_env_i686_centos.sh" - - stage: test - name: 'x86_64 Linux [GOAL: install] [xenial] [no wallet]' + name: '32-bit + dash [GOAL: install] [CentOS 8] [gui]' env: >- - FILE_ENV="./ci/test/00_setup_env_native_nowallet.sh" + FILE_ENV="./ci/test/00_setup_env_i686_centos.sh" From d08e5845a0bccf3287d9b9f5882ecab344b98066 Mon Sep 17 00:00:00 2001 From: Andrew Poelstra Date: Sun, 11 Jul 2021 19:50:01 +0000 Subject: [PATCH 3/8] ci: Fix doc typos in .cirrus.yml https://github.com/bitcoin/bitcoin/pull/19179 (3/3) --- .cirrus.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 64b5c12c82..6af96ce4a4 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -64,7 +64,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_arm.sh" task: - name: 'Win64 [GOAL: deploy] [unit tests, no gui, no boost::process, no functional tests]' + name: 'Win64 [GOAL: deploy] [unit tests, no gui tests, no boost::process, no functional tests]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:bionic @@ -72,7 +72,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_win64.sh" task: - name: 'x86_64 Linux [GOAL: install] [bionic] [C++17, previous releases, uses qt5 dev package and some depends packages] [unsigned char]' + name: 'x86_64 Linux [GOAL: install] [bionic] [previous releases, uses qt5 dev package and some depends packages] [unsigned char]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:bionic @@ -143,7 +143,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_mac.sh" task: - name: 'macOS 10.14 native [GOAL: install] [GUI] [no depends]' + name: 'macOS 10.15 native [GOAL: install] [GUI] [no depends]' macos_brew_addon_script: - brew install boost libevent berkeley-db4 qt miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt << : *GLOBAL_TASK_TEMPLATE From 0740ceeb1338812f8eaa9333c531b9ef9c3b6005 Mon Sep 17 00:00:00 2001 From: Andrew Poelstra Date: Sun, 11 Jul 2021 20:02:00 +0000 Subject: [PATCH 4/8] ci: Adjust cirrus ci task names https://github.com/bitcoin/bitcoin/pull/20545 (1/1) --- .cirrus.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 6af96ce4a4..b07800cd0a 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -56,7 +56,7 @@ global_task_template: &GLOBAL_TASK_TEMPLATE # - choco install python --version=3.7.7 -y task: - name: 'ARM [GOAL: install] [buster] [unit tests, no functional tests]' + name: 'ARM [unit tests, no functional tests] [buster]' << : *GLOBAL_TASK_TEMPLATE container: image: debian:buster @@ -64,7 +64,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_arm.sh" task: - name: 'Win64 [GOAL: deploy] [unit tests, no gui tests, no boost::process, no functional tests]' + name: 'Win64 [unit tests, no gui tests, no boost::process, no functional tests] [bionic]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:bionic @@ -72,7 +72,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_win64.sh" task: - name: 'x86_64 Linux [GOAL: install] [bionic] [previous releases, uses qt5 dev package and some depends packages] [unsigned char]' + name: '[previous releases, uses qt5 dev package and some depends packages] [unsigned char] [bionic]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:bionic @@ -80,7 +80,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh" task: - name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: thread (TSan), no gui]' + name: '[depends, sanitizers: thread (TSan), no gui] [focal]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:focal @@ -91,7 +91,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh" task: - name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: memory (MSan)]' + name: '[depends, sanitizers: memory (MSan)] [focal]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:focal @@ -99,7 +99,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_msan.sh" task: - name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]' + name: '[no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer] [focal]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:focal @@ -109,7 +109,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_asan.sh" task: - name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: fuzzer,address,undefined]' + name: '[no depends, only system libs, sanitizers: fuzzer,address,undefined] [focal]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:focal @@ -119,7 +119,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh" task: - name: 'x86_64 Linux [GOAL: install] [focal] [multiprocess]' + name: '[multiprocess] [focal]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:focal @@ -127,7 +127,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh" task: - name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]' + name: '[no wallet] [bionic]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:bionic @@ -135,7 +135,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh" task: - name: 'macOS 10.14 [GOAL: deploy] [no functional tests]' + name: 'macOS 10.14 [gui, no tests] [bionic]' << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:bionic @@ -143,7 +143,7 @@ task: FILE_ENV: "./ci/test/00_setup_env_mac.sh" task: - name: 'macOS 10.15 native [GOAL: install] [GUI] [no depends]' + name: 'macOS 10.15 native [gui] [no depends]' macos_brew_addon_script: - brew install boost libevent berkeley-db4 qt miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt << : *GLOBAL_TASK_TEMPLATE From 026508542cdd9401829dc97bceff88337ed6735d Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Sun, 28 Mar 2021 20:29:46 +0300 Subject: [PATCH 5/8] ci: Bump macOS VM image to the latest version https://github.com/bitcoin/bitcoin/pull/21542 (1/1) --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index b07800cd0a..f8c6317bed 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -143,13 +143,13 @@ task: FILE_ENV: "./ci/test/00_setup_env_mac.sh" task: - name: 'macOS 10.15 native [gui] [no depends]' + name: 'macOS 11 native [gui] [no depends]' macos_brew_addon_script: - brew install boost libevent berkeley-db4 qt miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt << : *GLOBAL_TASK_TEMPLATE osx_instance: # Use latest image, but hardcode version to avoid silent upgrades (and breaks) - image: catalina-xcode-12.1 # https://cirrus-ci.org/guide/macOS + image: big-sur-xcode-12.4 # https://cirrus-ci.org/guide/macOS env: DANGER_RUN_CI_ON_HOST: "true" CI_USE_APT_INSTALL: "no" From 4f33ba757d0db7b1a3306535c774315238556e7c Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Mon, 12 Apr 2021 21:43:28 +0300 Subject: [PATCH 6/8] ci: Fix macOS brew install command Details: https://github.com/Homebrew/discussions/discussions/691 https://github.com/bitcoin/bitcoin/pull/21663 (1/1) Conflicts: .cirrus.yml; had to remove libnatpnp which was added upstream in https://github.com/bitcoin/bitcoin/pull/18077 which is a much larger PR that we are NOT backporting. --- .cirrus.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index f8c6317bed..ee0c21923b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -144,8 +144,9 @@ task: task: name: 'macOS 11 native [gui] [no depends]' - macos_brew_addon_script: - - brew install boost libevent berkeley-db4 qt miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt + brew_install_script: + - brew update + - brew install boost libevent berkeley-db4 qt@5 miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt << : *GLOBAL_TASK_TEMPLATE osx_instance: # Use latest image, but hardcode version to avoid silent upgrades (and breaks) From 1852f83a5dbd51ec8eebed286d9615a38cddb62e Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Wed, 2 Jun 2021 10:02:46 +0200 Subject: [PATCH 7/8] ci: Bump macOS image to big-sur-xcode-12.5 This also removes the "brew update" added in commit b7381552cd4f965c45f1560d9cfc2fb09dbfcc1d. https://github.com/bitcoin/bitcoin/pull/22122 (1/1) --- .cirrus.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index ee0c21923b..e44cc323c5 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -145,12 +145,11 @@ task: task: name: 'macOS 11 native [gui] [no depends]' brew_install_script: - - brew update - brew install boost libevent berkeley-db4 qt@5 miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt << : *GLOBAL_TASK_TEMPLATE osx_instance: # Use latest image, but hardcode version to avoid silent upgrades (and breaks) - image: big-sur-xcode-12.4 # https://cirrus-ci.org/guide/macOS + image: big-sur-xcode-12.5 # https://cirrus-ci.org/guide/macOS env: DANGER_RUN_CI_ON_HOST: "true" CI_USE_APT_INSTALL: "no" From 1e63e577db1a33226ba4412915fdfded28536e80 Mon Sep 17 00:00:00 2001 From: Andrew Poelstra Date: Sun, 11 Jul 2021 20:02:10 +0000 Subject: [PATCH 8/8] ci: disable Werror on MacOS build (not a backport) --- ci/test/00_setup_env_mac_host.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/test/00_setup_env_mac_host.sh b/ci/test/00_setup_env_mac_host.sh index 314c8b6316..410f2aa413 100644 --- a/ci/test/00_setup_env_mac_host.sh +++ b/ci/test/00_setup_env_mac_host.sh @@ -10,7 +10,8 @@ export HOST=x86_64-apple-darwin18 export PIP_PACKAGES="zmq" export GOAL="install" # ELEMENTS: add -fno-stack-check to work around clang bug on macos -export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --enable-werror --with-boost-process CXXFLAGS=-fno-stack-check" +# ELEMENTS: remove --enable-werror because it triggers on Boost Thread includes (FIXME remove this after 22.0 rebase when boost-thread is removed) +export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --with-boost-process CXXFLAGS=-fno-stack-check" export CI_OS_NAME="macos" export NO_DEPENDS=1 export OSX_SDK=""