Skip to content
90 changes: 45 additions & 45 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ jobs:
shell: bash
steps:
- name: Checkout Repo
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.8'

Expand Down Expand Up @@ -85,17 +85,17 @@ jobs:
shell: bash
steps:
- name: Checkout Repo
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.8'

- name: cppcheck cache files
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
.cppcheck
Expand Down Expand Up @@ -152,39 +152,39 @@ 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++

- 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
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++

- 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
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++

steps:
- name: Get Source
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.config.python-version }}

Expand All @@ -208,17 +208,17 @@ 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
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'
xcode-version: '16.0.0'

- name: Configure CMake Wallet
run: |
Expand Down Expand Up @@ -291,34 +291,34 @@ 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
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-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
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
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.config.python-version }}

Expand All @@ -338,17 +338,17 @@ 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
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'
xcode-version: '16.0.0'

- name: Configure Native Wallet
run: |
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -454,19 +454,19 @@ 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
packages: boost@1.85 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
packages: boost@1.85 miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium

steps:
- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.config.python-version }}

Expand All @@ -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

Expand Down Expand Up @@ -550,10 +550,10 @@ jobs:

steps:
- name: Get Source
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.8'

Expand All @@ -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
Expand Down Expand Up @@ -685,10 +685,10 @@ jobs:

steps:
- name: Get Source
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.8'

Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -846,14 +846,14 @@ 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"

steps:
- name: Initialize Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.8'

Expand All @@ -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

Expand Down
10 changes: 9 additions & 1 deletion autogen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

export LC_ALL=C
set -e

srcdir="$(dirname $0)"
cd "$srcdir"
if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="$(command -v glibtoolize)"; then
Expand All @@ -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
34 changes: 24 additions & 10 deletions contrib/install_db4.sh
Original file line number Diff line number Diff line change
@@ -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 <base-dir> [<ci-mode>] [<extra-bdb-configure-flag> ...]"
echo
Expand Down Expand Up @@ -37,16 +50,17 @@ check_exists() {
sha256_check() {
# Args: <sha256_hash> <filename>
#
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
}

Expand Down
7 changes: 5 additions & 2 deletions params/install-params.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<EOF
$expectedhash $filename
EOF
fi

# Check the exit code of the shasum command:
CHECKSUM_RESULT=$?
Expand Down
Loading