Skip to content

Commit 831d2cb

Browse files
committed
Merge commit '8bb47d4c2c57eb33cdb346ea75c549954d5f9cb1'
2 parents 820d9b3 + 8bb47d4 commit 831d2cb

File tree

343 files changed

+5875
-2672
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

343 files changed

+5875
-2672
lines changed

libbitcoinkernel-sys/bitcoin/.cirrus.yml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
env: # Global defaults
22
CIRRUS_CLONE_DEPTH: 1
3-
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
3+
CIRRUS_LOG_TIMESTAMP: true
44
MAKEJOBS: "-j10"
55
TEST_RUNNER_PORT_MIN: "14000" # Must be larger than 12321, which is used for the http cache. See https://cirrus-ci.org/guide/writing-tasks/#http-cache
66
CI_FAILFAST_TEST_LEAVE_DANGLING: "1" # Cirrus CI does not care about dangling processes and setting this variable avoids killing the CI script itself on error
7-
CCACHE_MAXSIZE: "200M"
8-
CCACHE_DIR: "/tmp/ccache_dir"
9-
CCACHE_NOHASHDIR: "1" # Debug info might contain a stale path if the build dir changes, but this is fine
107

118
# A self-hosted machine(s) can be used via Cirrus CI. It can be configured with
129
# multiple users to run tasks in parallel. No sudo permission is required.
@@ -16,9 +13,9 @@ env: # Global defaults
1613
# Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
1714
#
1815
# The following specific types should exist, with the following requirements:
19-
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
20-
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
21-
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
16+
# - small: For an x86_64 machine, with at least 2 vCPUs and 8 GB of memory.
17+
# - medium: For an x86_64 machine, with at least 4 vCPUs and 16 GB of memory.
18+
# - arm64: For an aarch64 machine, with at least 2 vCPUs and 8 GB of memory.
2219
#
2320
# CI jobs for the latter configuration can be run on x86_64 hardware
2421
# by installing qemu-user-static, which works out of the box with
@@ -39,14 +36,13 @@ env: # Global defaults
3936
# This requires installing Podman instead of Docker.
4037
#
4138
# Futhermore:
42-
# - apt-get is required due to PACKAGE_MANAGER_INSTALL
4339
# - podman-docker-4.1+ is required due to the bugfix in 4.1
4440
# (https://github.com/bitcoin/bitcoin/pull/21652#issuecomment-1657098200)
4541
# - The ./ci/ dependencies (with cirrus-cli) should be installed. One-liner example
4642
# for a single user setup with sudo permission:
4743
#
4844
# ```
49-
# apt update && apt install git screen python3 bash podman-docker curl -y && curl -L -o cirrus "https://github.com/cirruslabs/cirrus-cli/releases/latest/download/cirrus-linux-$(dpkg --print-architecture)" && mv cirrus /usr/local/bin/cirrus && chmod +x /usr/local/bin/cirrus
45+
# apt update && apt install git screen python3 bash podman-docker uidmap slirp4netns curl -y && curl -L -o cirrus "https://github.com/cirruslabs/cirrus-cli/releases/latest/download/cirrus-linux-$(dpkg --print-architecture)" && mv cirrus /usr/local/bin/cirrus && chmod +x /usr/local/bin/cirrus
5046
# ```
5147
#
5248
# - There are no strict requirements on the hardware. Having fewer CPU threads
@@ -75,8 +71,8 @@ filter_template: &FILTER_TEMPLATE
7571
base_template: &BASE_TEMPLATE
7672
<< : *FILTER_TEMPLATE
7773
merge_base_script:
78-
# Unconditionally install git (used in fingerprint_script).
79-
- git --version || bash -c "$PACKAGE_MANAGER_INSTALL git"
74+
# Require git (used in fingerprint_script).
75+
- git --version || ( apt-get update && apt-get install -y git )
8076
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
8177
- git fetch --depth=1 $CIRRUS_REPO_CLONE_URL "pull/${CIRRUS_PR}/merge"
8278
- git checkout FETCH_HEAD # Use merged changes to detect silent merge conflicts

libbitcoinkernel-sys/bitcoin/.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,18 @@ jobs:
6767
echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD $EXCLUDE_MERGE_BASE_ANCESTORS | head -1)" >> "$GITHUB_ENV"
6868
- run: |
6969
sudo apt-get update
70-
sudo apt-get install clang ccache build-essential cmake pkg-config python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
70+
sudo apt-get install clang ccache build-essential cmake pkg-config python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libminiupnpc-dev libzmq3-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
7171
- name: Compile and run tests
7272
run: |
7373
# Run tests on commits after the last merge commit and before the PR head commit
7474
# Use clang++, because it is a bit faster and uses less memory than g++
75-
git rebase --exec "echo Running test-one-commit on \$( git log -1 ) && CC=clang CXX=clang++ cmake -B build -DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWITH_BDB=ON -DWITH_NATPMP=ON -DWITH_MINIUPNPC=ON -DWITH_USDT=ON && cmake --build build -j $(nproc) && ctest --test-dir build -j $(nproc) && ./build/test/functional/test_runner.py -j $(( $(nproc) * 2 ))" ${{ env.TEST_BASE }}
75+
git rebase --exec "echo Running test-one-commit on \$( git log -1 ) && CC=clang CXX=clang++ cmake -B build -DWERROR=ON -DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWITH_BDB=ON -DWITH_MINIUPNPC=ON -DWITH_USDT=ON && cmake --build build -j $(nproc) && ctest --test-dir build -j $(nproc) && ./build/test/functional/test_runner.py -j $(( $(nproc) * 2 ))" ${{ env.TEST_BASE }}
7676
77-
macos-native-x86_64:
78-
name: 'macOS 13 native, x86_64, no depends, sqlite only, gui'
77+
macos-native-arm64:
78+
name: 'macOS 14 native, arm64, no depends, sqlite only, gui'
7979
# Use latest image, but hardcode version to avoid silent upgrades (and breaks).
8080
# See: https://github.com/actions/runner-images#available-images.
81-
runs-on: macos-13
81+
runs-on: macos-14
8282

8383
# No need to run on the read-only mirror, unless it is a PR.
8484
if: github.repository != 'bitcoin-core/gui' || github.event_name == 'pull_request'
@@ -105,7 +105,7 @@ jobs:
105105
run: |
106106
# A workaround for "The `brew link` step did not complete successfully" error.
107107
brew install --quiet python@3 || brew link --overwrite python@3
108-
brew install --quiet automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode
108+
brew install --quiet coreutils ninja pkg-config gnu-getopt ccache boost libevent miniupnpc zeromq qt@5 qrencode
109109
110110
- name: Set Ccache directory
111111
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.9.18
1+
3.10.14

libbitcoinkernel-sys/bitcoin/CMakeLists.txt

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,6 @@ option(REDUCE_EXPORTS "Attempt to reduce exported symbols in the resulting execu
122122
option(WERROR "Treat compiler warnings as errors." OFF)
123123
option(WITH_CCACHE "Attempt to use ccache for compiling." ON)
124124

125-
option(WITH_NATPMP "Enable NAT-PMP." OFF)
126-
if(WITH_NATPMP)
127-
find_package(NATPMP MODULE REQUIRED)
128-
endif()
129-
130125
option(WITH_MINIUPNPC "Enable UPnP." OFF)
131126
if(WITH_MINIUPNPC)
132127
find_package(MiniUPnPc MODULE REQUIRED)
@@ -183,7 +178,7 @@ if(BUILD_GUI)
183178
if(BUILD_GUI_TESTS)
184179
list(APPEND qt_components Test)
185180
endif()
186-
find_package(Qt5 5.11.3 MODULE REQUIRED
181+
find_package(Qt 5.11.3 MODULE REQUIRED
187182
COMPONENTS ${qt_components}
188183
)
189184
unset(qt_components)
@@ -241,7 +236,6 @@ if(BUILD_FOR_FUZZING)
241236
set(BUILD_WALLET_TOOL OFF)
242237
set(BUILD_GUI OFF)
243238
set(ENABLE_EXTERNAL_SIGNER OFF)
244-
set(WITH_NATPMP OFF)
245239
set(WITH_MINIUPNPC OFF)
246240
set(WITH_ZMQ OFF)
247241
set(BUILD_TESTS OFF)
@@ -251,6 +245,7 @@ if(BUILD_FOR_FUZZING)
251245

252246
target_compile_definitions(core_interface INTERFACE
253247
ABORT_ON_FAILED_ASSUME
248+
FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
254249
)
255250
endif()
256251

@@ -547,7 +542,7 @@ if(WERROR)
547542
unset(werror_flag)
548543
endif()
549544

550-
find_package(Python3 3.9 COMPONENTS Interpreter)
545+
find_package(Python3 3.10 COMPONENTS Interpreter)
551546
if(Python3_EXECUTABLE)
552547
set(PYTHON_COMMAND ${Python3_EXECUTABLE})
553548
else()
@@ -623,9 +618,7 @@ if(ENABLE_WALLET)
623618
message(" - legacy wallets (Berkeley DB) ..... ${WITH_BDB}")
624619
endif()
625620
message(" external signer ..................... ${ENABLE_EXTERNAL_SIGNER}")
626-
message(" port mapping:")
627-
message(" - using NAT-PMP .................... ${WITH_NATPMP}")
628-
message(" - using UPnP ....................... ${WITH_MINIUPNPC}")
621+
message(" port mapping using UPnP ............. ${WITH_MINIUPNPC}")
629622
message(" ZeroMQ .............................. ${WITH_ZMQ}")
630623
message(" USDT tracing ........................ ${WITH_USDT}")
631624
message(" QR code (GUI) ....................... ${WITH_QRENCODE}")

libbitcoinkernel-sys/bitcoin/CMakePresets.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@
8686
"WITH_BDB": "ON",
8787
"WITH_MINIUPNPC": "ON",
8888
"WITH_MULTIPROCESS": "ON",
89-
"WITH_NATPMP": "ON",
9089
"WITH_QRENCODE": "ON",
9190
"WITH_SQLITE": "ON",
9291
"WITH_USDT": "ON",

libbitcoinkernel-sys/bitcoin/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ and extending unit tests can be found in [/src/test/README.md](/src/test/README.
5353

5454
There are also [regression and integration tests](/test), written
5555
in Python.
56-
These tests can be run (if the [test dependencies](/test) are installed) with: `test/functional/test_runner.py`
56+
These tests can be run (if the [test dependencies](/test) are installed) with: `build/test/functional/test_runner.py`
57+
(assuming `build` is your build directory).
5758

5859
The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS,
5960
and that unit/sanity tests are run automatically.

libbitcoinkernel-sys/bitcoin/ci/test/00_setup_env.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,18 @@ export RUN_FUZZ_TESTS=${RUN_FUZZ_TESTS:-false}
5353
export BOOST_TEST_RANDOM=${BOOST_TEST_RANDOM:-1}
5454
# See man 7 debconf
5555
export DEBIAN_FRONTEND=noninteractive
56-
export CCACHE_MAXSIZE=${CCACHE_MAXSIZE:-100M}
56+
export CCACHE_MAXSIZE=${CCACHE_MAXSIZE:-500M}
5757
export CCACHE_TEMPDIR=${CCACHE_TEMPDIR:-/tmp/.ccache-temp}
5858
export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1}
5959
# The cache dir.
6060
# This folder exists only on the ci guest, and on the ci host as a volume.
61-
export CCACHE_DIR=${CCACHE_DIR:-$BASE_SCRATCH_DIR/.ccache}
61+
export CCACHE_DIR="${CCACHE_DIR:-$BASE_SCRATCH_DIR/ccache}"
6262
# Folder where the build result is put (bin and lib).
6363
export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out}
6464
# The folder for previous release binaries.
6565
# This folder exists only on the ci guest, and on the ci host as a volume.
6666
export PREVIOUS_RELEASES_DIR=${PREVIOUS_RELEASES_DIR:-$BASE_ROOT_DIR/prev_releases}
67-
export CI_BASE_PACKAGES=${CI_BASE_PACKAGES:-build-essential libtool autotools-dev automake pkg-config curl ca-certificates ccache python3 rsync git procps bison e2fsprogs cmake}
67+
export CI_BASE_PACKAGES=${CI_BASE_PACKAGES:-build-essential pkg-config curl ca-certificates ccache python3 rsync git procps bison e2fsprogs cmake}
6868
export GOAL=${GOAL:-install}
6969
export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets}
7070
export CI_RETRY_EXE=${CI_RETRY_EXE:-"retry --"}

libbitcoinkernel-sys/bitcoin/ci/test/00_setup_env_i686_centos.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
99
export HOST=i686-pc-linux-gnu
1010
export CONTAINER_NAME=ci_i686_centos
1111
export CI_IMAGE_NAME_TAG="quay.io/centos/amd64:stream9"
12-
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux e2fsprogs cmake"
12+
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux e2fsprogs cmake"
1313
export PIP_PACKAGES="pyzmq"
1414
export GOAL="install"
1515
export NO_WERROR=1 # Suppress error: #warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform [-Werror=cpp]

libbitcoinkernel-sys/bitcoin/ci/test/00_setup_env_mac_native.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@
66

77
export LC_ALL=C.UTF-8
88

9-
export HOST=x86_64-apple-darwin
109
# Homebrew's python@3.12 is marked as externally managed (PEP 668).
1110
# Therefore, `--break-system-packages` is needed.
1211
export PIP_PACKAGES="--break-system-packages zmq"
1312
export GOAL="install"
14-
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DWITH_MINIUPNPC=ON -DWITH_NATPMP=ON -DREDUCE_EXPORTS=ON"
13+
export CMAKE_GENERATOR="Ninja"
14+
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DWITH_MINIUPNPC=ON -DREDUCE_EXPORTS=ON"
1515
export CI_OS_NAME="macos"
1616
export NO_DEPENDS=1
1717
export OSX_SDK=""
18-
export CCACHE_MAXSIZE=400M
1918
export RUN_FUZZ_TESTS=true

libbitcoinkernel-sys/bitcoin/ci/test/00_setup_env_native_asan.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ else
1919
fi
2020

2121
export CONTAINER_NAME=ci_native_asan
22-
export PACKAGES="systemtap-sdt-dev clang-18 llvm-18 libclang-rt-18-dev python3-zmq qtbase5-dev qttools5-dev qttools5-dev-tools libevent-dev libboost-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE}"
22+
export PACKAGES="systemtap-sdt-dev clang-18 llvm-18 libclang-rt-18-dev python3-zmq qtbase5-dev qttools5-dev qttools5-dev-tools libevent-dev libboost-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE}"
2323
export NO_DEPENDS=1
2424
export GOAL="install"
2525
export BITCOIN_CONFIG="\
@@ -32,4 +32,3 @@ export BITCOIN_CONFIG="\
3232
-DAPPEND_CXXFLAGS='-std=c++23' \
3333
-DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' \
3434
"
35-
export CCACHE_MAXSIZE=300M

0 commit comments

Comments
 (0)