From 377f68edd11159478ff7210106cd1283e71eaede Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 01:38:54 -0700 Subject: [PATCH 01/12] GA: Update to checkout@v6 --- .github/workflows/build-and-test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 0881a4022d84..d767ac315380 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -19,7 +19,7 @@ jobs: shell: bash steps: - name: Checkout Repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 @@ -85,7 +85,7 @@ jobs: shell: bash steps: - name: Checkout Repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 @@ -181,7 +181,7 @@ jobs: steps: - name: Get Source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Initialize Python uses: actions/setup-python@v5 @@ -315,7 +315,7 @@ jobs: steps: - name: Get Source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Initialize Python uses: actions/setup-python@v5 @@ -550,7 +550,7 @@ jobs: steps: - name: Get Source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Initialize Python uses: actions/setup-python@v5 @@ -685,7 +685,7 @@ jobs: steps: - name: Get Source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Initialize Python uses: actions/setup-python@v5 From 1ac48c7dcfb6cb693f795a69159d53234f5b03bd Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 01:39:40 -0700 Subject: [PATCH 02/12] GA: Update to setup-python@v6 --- .github/workflows/build-and-test.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index d767ac315380..25b9b707a488 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -24,7 +24,7 @@ jobs: fetch-depth: 0 - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.8' @@ -90,7 +90,7 @@ jobs: fetch-depth: 0 - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.8' @@ -184,7 +184,7 @@ jobs: uses: actions/checkout@v6 - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.config.python-version }} @@ -318,7 +318,7 @@ jobs: uses: actions/checkout@v6 - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.config.python-version }} @@ -466,7 +466,7 @@ jobs: steps: - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.config.python-version }} @@ -553,7 +553,7 @@ jobs: uses: actions/checkout@v6 - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.8' @@ -688,7 +688,7 @@ jobs: uses: actions/checkout@v6 - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.8' @@ -853,7 +853,7 @@ jobs: steps: - name: Initialize Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.8' From bc1c751838ceae5b730b91ed6688d337bbf91e67 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 01:42:48 -0700 Subject: [PATCH 03/12] GA: Update to cache@v5 --- .github/workflows/build-and-test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 25b9b707a488..aedd948ec249 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -95,7 +95,7 @@ jobs: python-version: '3.8' - name: cppcheck cache files - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | .cppcheck @@ -208,7 +208,7 @@ jobs: cmake-version: '3.31.6' - name: ccache cache files - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: .ccache key: ${{ runner.os }}-cmake-${{ matrix.config.name }}-ccache @@ -338,7 +338,7 @@ jobs: sudo ./contrib/install_db4.sh /usr/local true - name: ccache cache files - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: .ccache key: ${{ runner.os }}-${{ matrix.config.id }}-native-ccache @@ -568,7 +568,7 @@ jobs: cmake-version: '3.31.6' - name: depends cache files - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | depends/built @@ -699,7 +699,7 @@ jobs: - name: depends cache files if: matrix.config.no_depends != 1 - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | depends/built @@ -709,7 +709,7 @@ jobs: restore-keys: ${{ runner.os }}-depends-${{ matrix.config.host }}-v2 - name: ccache cache files - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: .ccache key: ${{ runner.os }}-depbuild-${{ matrix.config.id }}-ccache From e79b077c28fa8e5dab2331a26b42274298d7a7a9 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 01:43:29 -0700 Subject: [PATCH 04/12] GA: Update to upload-artifact@v7 --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index aedd948ec249..66000f637f77 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -421,7 +421,7 @@ jobs: - name: Upload Build Artifact if: matrix.config.functional_tests == true - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: native-${{ matrix.config.os }}-built path: native-${{ matrix.config.os }}-built.tar @@ -809,7 +809,7 @@ jobs: - name: Upload Build Artifact if: matrix.config.functional_tests == true - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ matrix.config.host }}-built path: ${{ matrix.config.host }}-built.tar From 4e881a988d03ff2425f40689f5c7e5d6fa089054 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 01:53:11 -0700 Subject: [PATCH 05/12] GA: Update to download-artifact@v8 --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 66000f637f77..a249389b30c9 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -482,7 +482,7 @@ jobs: pip install pyzmq - name: Download Build Artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: native-${{ matrix.config.os }}-built @@ -871,7 +871,7 @@ jobs: pip install pyzmq - name: Download Build Artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: ${{ matrix.config.host }}-built From 5abc2e696f5b71d05ca84018f57180ec2b4d52e7 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 01:51:06 -0700 Subject: [PATCH 06/12] GA: Update to macOS 15 for x86 and arm --- .github/workflows/build-and-test.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index a249389b30c9..f3625c383cc4 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -164,7 +164,7 @@ jobs: cxx: g++ - name: macOS - os: macos-13 + os: macos-15-intel python-version: '3.10' packages: autoconf automake libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium boost_root: true @@ -172,7 +172,7 @@ jobs: cxx: clang++ - name: macOS-latest - os: macos-14 + os: macos-15 python-version: '3.12' packages: autoconf automake libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium boost_root: true @@ -215,7 +215,7 @@ jobs: restore-keys: ${{ runner.os }}-cmake-${{ matrix.config.name }}-ccache - name: Set Xcode Version - if: matrix.config.os == 'macos-14' + if: matrix.config.os == 'macos-15' uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '15.0.1' @@ -291,7 +291,7 @@ jobs: - name: x64-macOS id: macOS-nodepends - os: macos-13 + os: macos-15-intel python-version: '3.10' packages: autoconf automake ccache libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg unit_tests: true @@ -303,7 +303,7 @@ jobs: - name: arm64-macOS-latest id: macOS-nodepends-latest - os: macos-14 + os: macos-15 python-version: '3.12' packages: autoconf automake ccache libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg unit_tests: true @@ -345,7 +345,7 @@ jobs: restore-keys: ${{ runner.os }}-${{ matrix.config.id }}-native-ccache - name: Set Xcode Version - if: matrix.config.os == 'macos-14' + if: matrix.config.os == 'macos-15' uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '15.0.1' @@ -454,13 +454,13 @@ jobs: - name: x64-macOS id: macOS-nodepends - os: macos-13 + os: macos-15-intel python-version: '3.10' packages: boost miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium - name: arm64-macOS-latest id: macOS-nodepends-latest - os: macos-14 + os: macos-15 python-version: '3.12' packages: boost miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium @@ -846,7 +846,7 @@ jobs: - name: x86_64 macOS [Full Functional Tests] id: macos-x86_64-tests - os: macos-13 + os: macos-15-intel host: x86_64-apple-darwin16 packages: None test_runner_extra: "--all --exclude feature_dbcrash" From 8bcb8bc42c93cb582d7ea3db9acef2d83d47c2a1 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 01:52:17 -0700 Subject: [PATCH 07/12] GA: Use xcode 16.0.0 for macos --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index f3625c383cc4..d0993417b8bf 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -218,7 +218,7 @@ jobs: if: matrix.config.os == 'macos-15' uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '15.0.1' + xcode-version: '16.0.0' - name: Configure CMake Wallet run: | @@ -348,7 +348,7 @@ jobs: if: matrix.config.os == 'macos-15' uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '15.0.1' + xcode-version: '16.0.0' - name: Configure Native Wallet run: | From dcd559b521f75538c21a974e5a6028ada52a081b Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 02:02:55 -0700 Subject: [PATCH 08/12] GA: Add missing libnatpmp-dev to cmake cmake linux runners were not installing libnatpmp-dev. --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index d0993417b8bf..cc21eda62f01 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -152,14 +152,14 @@ jobs: - name: Linux os: ubuntu-22.04 python-version: '3.8' - packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev qt5-image-formats-plugins libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo + packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev qt5-image-formats-plugins libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo cc: gcc cxx: g++ - name: Linux-latest os: ubuntu-24.04 python-version: '3.8' - packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev qt5-image-formats-plugins libevent-dev bsdmainutils libboost-system1.74-dev libboost-filesystem1.74-dev libboost-chrono1.74-dev libboost-test1.74-dev libboost-thread1.74-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo + packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev qt5-image-formats-plugins libevent-dev bsdmainutils libboost-system1.74-dev libboost-filesystem1.74-dev libboost-chrono1.74-dev libboost-test1.74-dev libboost-thread1.74-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo cc: gcc cxx: g++ From 82cad184754ad5956567567ead437a8818037843 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 02:17:06 -0700 Subject: [PATCH 09/12] GA: Revert to versioned boost for macos. Starting with boost 1.89, the `system` library stub was removed, thus breaking macos builds as brew defaults to a much more recent version. --- .github/workflows/build-and-test.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index cc21eda62f01..a4e03b818eae 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -166,7 +166,7 @@ jobs: - name: macOS os: macos-15-intel python-version: '3.10' - packages: autoconf automake libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium + packages: autoconf automake libtool boost@1.85 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium boost_root: true cc: clang cxx: clang++ @@ -174,7 +174,7 @@ jobs: - name: macOS-latest os: macos-15 python-version: '3.12' - packages: autoconf automake libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium + packages: autoconf automake libtool boost@1.85 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium boost_root: true cc: clang cxx: clang++ @@ -293,25 +293,25 @@ jobs: id: macOS-nodepends os: macos-15-intel python-version: '3.10' - packages: autoconf automake ccache libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg + packages: autoconf automake ccache libtool boost@1.85 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg unit_tests: true functional_tests: true goal: deploy cc: clang cxx: clang++ - BITCOIN_CONFIG: "--enable-zmq --enable-gui --enable-reduce-exports --enable-werror --enable-debug --with-boost=/usr/local/opt/boost" + BITCOIN_CONFIG: "--enable-zmq --enable-gui --enable-reduce-exports --enable-werror --enable-debug" - name: arm64-macOS-latest id: macOS-nodepends-latest os: macos-15 python-version: '3.12' - packages: autoconf automake ccache libtool boost miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg + packages: autoconf automake ccache libtool boost@1.85 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg unit_tests: true functional_tests: true goal: deploy cc: clang cxx: clang++ - BITCOIN_CONFIG: "--enable-zmq --enable-gui --enable-reduce-exports --enable-werror --enable-debug --with-boost=/opt/homebrew/opt/boost" + BITCOIN_CONFIG: "--enable-zmq --enable-gui --enable-reduce-exports --enable-werror --enable-debug" steps: - name: Get Source @@ -456,13 +456,13 @@ jobs: id: macOS-nodepends os: macos-15-intel python-version: '3.10' - packages: boost miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium + packages: boost@1.85 miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium - name: arm64-macOS-latest id: macOS-nodepends-latest os: macos-15 python-version: '3.12' - packages: boost miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium + packages: boost@1.85 miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium steps: - name: Initialize Python From fc594c625d668d3f7a563cb9ba5e37585707ddf2 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 02:26:33 -0700 Subject: [PATCH 10/12] Build: Patch for newer autoreconf Newer versions of autoreconf will deny manual changes to input files even if the `--force` option is given, instead favoring a new `--replace-handwritten` flag. This check is necessary as we use a sed patch for the chiabls build config file when using autotools. --- autogen.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh index 2c434e9ef057..dd935697da0e 100755 --- a/autogen.sh +++ b/autogen.sh @@ -5,6 +5,7 @@ export LC_ALL=C set -e + srcdir="$(dirname $0)" cd "$srcdir" if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="$(command -v glibtoolize)"; then @@ -13,4 +14,11 @@ if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="$(command -v glibtoolize)"; then fi command -v autoreconf >/dev/null || \ (echo "configuration failed, please install autoconf first" && exit 1) -autoreconf --install --force --warnings=all + +if autoreconf --help | grep -q -- "--replace-handwritten"; then + echo "--replace-handwritten supported" + autoreconf --verbose --replace-handwritten --install --force --warnings=all +else + echo "--replace-handwritten NOT supported" + autoreconf --verbose --install --force --warnings=all +fi From 272f0b28019fd8cf07aadb807abeab618e1ab1f5 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 02:35:30 -0700 Subject: [PATCH 11/12] Build: Update install_db4.sh macOS versions starting with macOS 11 need more special handling for the install_db4.sh script. Update from upstream. --- contrib/install_db4.sh | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/contrib/install_db4.sh b/contrib/install_db4.sh index f50c73f302ba..f21f36d0fa3f 100755 --- a/contrib/install_db4.sh +++ b/contrib/install_db4.sh @@ -1,10 +1,23 @@ #!/bin/sh - +# Copyright (c) 2017-2021 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Install libdb4.8 (Berkeley DB). - export LC_ALL=C set -e +# Set C_FLAG for Mac OS version > 11.0.0 +# shellcheck disable=SC2039,SC2004 +if [[ "$OSTYPE" == "darwin"* ]]; then + os_ver_str=$(sw_vers -productVersion) + os_ver=${os_ver_str//.} + required_ver=1100 + + if (($os_ver > $required_ver)); then + export CFLAGS="-Wno-error=implicit-function-declaration" + fi +fi + if [ -z "${1}" ]; then echo "Usage: $0 [] [ ...]" echo @@ -37,16 +50,17 @@ check_exists() { sha256_check() { # Args: # - if check_exists sha256sum; then - echo "${1} ${2}" | sha256sum -c + if [ "$(uname)" = "FreeBSD" ]; then + # sha256sum exists on FreeBSD, but takes different arguments than the GNU version + sha256 -c "${1}" "${2}" + elif [ "$(uname)" = "Darwin" ]; then + echo "${1} ${2}" | shasum -a 256 -c + elif check_exists sha256sum; then + echo "${1} ${2}" | sha256sum -c elif check_exists sha256; then - if [ "$(uname)" = "FreeBSD" ]; then - sha256 -c "${1}" "${2}" - else - echo "${1} ${2}" | sha256 -c - fi + echo "${1} ${2}" | sha256 -c else - echo "${1} ${2}" | shasum -a 256 -c + echo "${1} ${2}" | shasum -a 256 -c fi } From dd2e3d9c64883c71a6d85472ba76da38b5e9fd34 Mon Sep 17 00:00:00 2001 From: Fuzzbawls Date: Thu, 18 Jun 2026 02:42:15 -0700 Subject: [PATCH 12/12] Build: Update install-params.sh macOS versions starting with macOS 11 need more special handling for the install-params.sh script. --- params/install-params.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/params/install-params.sh b/params/install-params.sh index 8c863730cd3d..91fa4214c4e5 100755 --- a/params/install-params.sh +++ b/params/install-params.sh @@ -45,11 +45,14 @@ function install_params { filename="share/pivx/$filename" fi - if ! [ -f "$output" ] - then + if ! [ -f "$output" ]; then + if [ "$(uname)" = "Darwin" ]; then + echo "$expectedhash $filename" | shasum -a 256 -c + else "$SHA256CMD" $SHA256ARGS -c <