Skip to content

Commit e140532

Browse files
committed
Squashed 'libbitcoinkernel-sys/bitcoin/' changes from 538671edce5..817865d57da
817865d57da kernel: Add pure kernel bitcoin-chainstate 978c42f17a6 kernel: Add functions to get the block hash from a block 8ee7a37d47d kernel: Add block index utility functions to C header 39bfe310326 kernel: Add function to read block undo data from disk to C header 7dd9fadf21b kernel: Add functions to read block from disk to C header 3d263b772c3 kernel: Add function for copying block data to C header e10251de624 kernel: Add functions for the block validation state to C header f048bda7007 kernel: Add validation interface to C header c4a98917088 kernel: Add interrupt function to C header 827763ea777 kernel: Add import blocks function to C header 1d6da27ae27 kernel: Add chainstate load options for in-memory dbs in C header 80dba983532 kernel: Add options for reindexing in C header 65a62bef87b kernel: Add block validation to C header ca607108407 kernel: Add chainstate loading to kernel C header 9ee454ec719 kernel: Add chainstate manager option for setting worker threads 0973992717a kernel: Add chainstate manager object to C header 58900f44af1 kernel: Add notifications context option to C header a5a2686a757 kernel: Add chain params context option to C header 04363c950be kernel: Add kernel library context object cd841a2f1ff kernel: Add logging to kernel library C header 6fdc7aa72c2 kernel: Introduce initial kernel C header API 85f96b01b77 Merge bitcoin/bitcoin#30909: wallet, assumeutxo: Don't Assume m_chain_tx_count, Improve wallet RPC errors 601a6a69172 Merge bitcoin/bitcoin#30965: kernel: Move block tree db open to block manager eaf4b928e72 Merge bitcoin/bitcoin#31746: test: Added coverage to the waitfornewblock rpc 992f37f2e10 Merge bitcoin/bitcoin#31600: rpc: have getblocktemplate mintime account for timewarp 8fa10edcd17 Merge bitcoin/bitcoin#31428: ci: Allow build dir on CI host 809d7e763cc Merge bitcoin/bitcoin#31751: test: fix intermittent timeout in p2p_1p1c_network.py 6835e9686c4 Merge bitcoin/bitcoin#31545: ci: optionally use local docker build cache c7869cb2143 Merge bitcoin/bitcoin#30844: RPC: improve SFFO arg parsing, error catching and coverage 1e0c5bd74ae Merge bitcoin/bitcoin#30125: test: improve BDB parser (handle internal/overflow pages, support all page sizes) 1d6c6e98c13 Merge bitcoin/bitcoin#31633: net: Disconnect message follow-ups to #28521 152a2dcdefa test: fix intermittent timeout in p2p_1p1c_network.py ad2f9324c61 Merge bitcoin/bitcoin#31740: depends: Update libmultiprocess library before converting to subtree e1676b08f7b doc: release notes 0082f6acc1d rpc: have mintime account for timewarp rule 79d45b10f1b rpc: clarify BIP94 behavior for curtime 07135481378 refactor: add GetMinimumTime() helper 93747d934b8 test: Added coverage to the waitfornewblock rpc b432e367427 Merge bitcoin/bitcoin#31736: doc: update links in ci.yml 74ea7edafae Merge bitcoin/bitcoin#31522: ci: Enable DEBUG=1 for one GCC-12+ build to catch 117966 regressions f34c580bd81 Merge bitcoin/bitcoin#31620: test: Remove --noshutdown flag, Tidy startup failures 1681c08d42c doc: update links in ci.yml b0869648aa9 Merge bitcoin/bitcoin#21590: Safegcd-based modular inverses in MuHash3072 4e0aa1835b3 test: Add test for IPC serialization bug 2221c8814d7 depends: Update libmultiprocess library before converting to subtree 0a931a9787b Merge bitcoin/bitcoin#31599: qa: Improve framework.generate* enforcement (#31403 follow-up) 4ac1efb147d Merge bitcoin/bitcoin#30322: test: raise an error in `_bulk_tx_` when `target_vsize` is too low 8775731e6d4 Merge bitcoin/bitcoin#31241: wallet: remove BDB dependency from wallet migration benchmark 9ecc7af41f6 Merge bitcoin/bitcoin#31674: init: Lock blocksdir in addition to datadir 551a09486c4 net: Switch to DisconnectMsg in CConnman 2d07384243c Merge bitcoin/bitcoin#31658: test: p2p: fix sending of manual INVs in tx download test 796e1a4c5d1 Merge bitcoin/bitcoin#31718: Docs: fix typos in documentation files 81b9800c87e fix typos d5a2ba44ba4 Merge bitcoin/bitcoin#31416: doc: Fix incorrect send RPC docs 9914e737297 Merge bitcoin/bitcoin#31704: doc: add a section in the fuzzing documentation about using MSan faf2f2c654d test: Avoid redundant stop and error spam on shutdown 188b02116d8 Merge bitcoin/bitcoin#31635: test: add coverage for unknown address type for `createwalletdescriptor` 2317e6cf2da Merge bitcoin/bitcoin#31696: test: Check that reindex with prune wipes blk files 94f0adcc31d Merge bitcoin/bitcoin#31541: qa: Use `sys.executable` when invoking other Python scripts 59876b3ad71 Merge bitcoin/bitcoin#31376: Miner: never create a template which exploits the timewarp bug 449a25b9582 Merge bitcoin/bitcoin#31709: cmake: Fail if `Libmultiprocess` is missing when `WITH_MULTIPROCESS=ON` 5acf12bafeb Merge bitcoin/bitcoin#31583: rpc: add target to getmininginfo field and show next block info 78fa88c53ad Merge bitcoin/bitcoin#31548: fuzz: Abort when global PRNG is used before SeedRand::ZEROS c31166ac77a cmake: Fail if `Libmultiprocess` is missing when `WITH_MULTIPROCESS=ON` 5d6f6fd00d7 Merge bitcoin/bitcoin#31490: refactor: inline `UndoWriteToDisk` and `WriteBlockToDisk` to reduce serialization calls 7b4d072e4fa Merge bitcoin/bitcoin#31690: doc: Amend notes on benchmarking e94c9d17123 [doc] Amend notes on benchmarking 5c3e4d8b293 doc: add a section about using MSan a4df12323c4 doc: add release notes c75872ffdd9 test: use DIFF_1_N_BITS in tool_signet_miner 4131f322ac0 test: check difficulty adjustment using alternate mainnet c4f68c12e22 Use OP_0 for BIP34 padding in signet and tests cf0a62878be rpc: add next to getmininginfo 2d18a078a2d rpc: add target and bits to getchainstates f153f57acc9 rpc: add target and bits to getblockchaininfo 523520f8279 Merge bitcoin/bitcoin#30866: descriptor: Add proper Clone function to miniscript::Node baa504fdfaf rpc: add target to getmininginfo result 2a7bfebd5e7 Add target to getblock(header) in RPC and REST 341f9325167 rpc: add GetTarget helper d20d96fa41c test: use REGTEST_N_BITS in feature_block 7ddbed4f9fc rpc: add nBits to getmininginfo ba7b9f3d7bf build: move pow and chain to bitcoin_common c4cc9e3e9df consensus: add DeriveTarget() to pow.h fa9aced8006 test: Check that reindex with prune wipes blk files 66d21d0eb65 qa: check parsed multipath descriptors dont share references 09a1875ad8c miniscript: Make NodeRef a unique_ptr 9ccb46f91ac miniscript: Ensure there is no NodeRef copy constructor or assignment operator 6d11c9c60b5 descriptor: Add proper Clone function to miniscript::Node 5691fa93c48 Merge bitcoin/bitcoin#31661: depends: Override default build type for `libevent` 8fc7140846f Merge bitcoin/bitcoin#31671: Update leveldb subtree to latest upstream a9edec94198 Merge bitcoin/bitcoin#31701: test: Bump sync_mempools timeout in p2p_1p1c_network.py fa80a7dac4b test: Bump sync_mempools timeout in p2p_1p1c_network.py 1111b0ac196 ci: Add missing --combinedlogslen to test-each-commit task d44626a9c2e depends: Override default build type for `libevent` d7f56cc5d9e Merge bitcoin/bitcoin#31590: descriptors: Try pubkeys of both parities when retrieving the private keys for an xonly pubkey in a descriptor fa9593efc2e test: Use high-level python types 0cdddeb2240 kernel: Move block tree db open to BlockManager constructor 7fbb1bc44b1 kernel: Move block tree db open to block manager fa8ade300f4 refactor: Avoid GCC false positive error fa40807fa83 ci: Enable DEBUG=1 for one GCC-12+ build to catch 117966 regressions 4601b7ca611 Merge bitcoin/bitcoin#31125: depends: add *FLAGS to gen_id eb243ff06c4 Merge bitcoin/bitcoin#31593: ci: Bump centos stream 10 6dc60126701 Merge bitcoin/bitcoin#31657: ci: Supply `--platform` argument to `docker` commands. 4e52a634430 Merge bitcoin/bitcoin#31691: util: fix compiler warning about deprecated space before _MiB 2e839dd641d Merge bitcoin/bitcoin#30774: depends: Qt 5.15.16 d3339a7cd5f util: fix compiler warning about deprecated space before _MiB 6e29de21010 ci: Supply `platform` argument to docker commands. faaabfaea76 ci: Bump centos stream 10 89720b7a1b3 Merge bitcoin/bitcoin#31543: cmake: Always provide `RPATH` on NetBSD 5b3a81f44da Merge bitcoin/bitcoin#31626: depends: Use base system's `sha256sum` utility on FreeBSD 832d5730730 Merge bitcoin/bitcoin#31651: ci: Turn CentOS task into native one 5ac1e0814ae Merge bitcoin/bitcoin#31621: doc: Update dependency installation for Debian/Ubuntu 370b9c1a0b9 Merge bitcoin/bitcoin#31675: [test] fix p2p_orphan_handling.py empty orphanage check 8996fef8aeb test: p2p: check that INV messages not matching wtxidrelay are ignored 2656a5658c1 tests: add a test for the new blocksdir lock bdc0a68e676 init: lock blocksdir in addition to datadir cabb2e5c242 refactor: introduce a more general LockDirectories for init 1db331ba764 init: allow a new xor key to be written if the blocksdir is newly created 2e75ebb6169 [test] fix p2p_orphan_handling.py empty orphanage check 57ba59c0cdf refactor: Remove redundant reindex check 160c27ec078 doc: Update dependency installation for Debian/Ubuntu and CI 910a11fa663 build: remove LEVELDB_IS_BIG_ENDIAN 9ec64253ab6 Update leveldb subtree to latest upstream d336b7ab85d Squashed 'src/leveldb/' changes from 688561cba8..04b5790928 31a0e5f0905 depends: Qt 5.15.16 e0b33368222 test: p2p: fix sending of manual INVs in tx download test fabefd99158 ci: Turn CentOS task into native one 4da7bfdcc90 test: add coverage for unknown address type for `createwalletdescriptor` 01df180bfb8 depends: add mold & ld.lld to gen_id d032ac80633 depends: add *FLAGS to gen_id bbac17608d1 net: Bring back log message when resetting socket 04b848e4827 net: Specify context in disconnecting log message 0c4954ac7d9 net_processing: Add missing use of DisconnectMsg 727c5427696 depends: Use base system's `sha256sum` utility f5883286e32 Add a fuzz test for Num3072 multiplication and inversion a26ce628942 Safegcd based modular inverse for Num3072 91ce8cef2d8 Add benchmark for MuHash finalization 223081ece65 scripted-diff: rename block and undo functions for consistency baaa3b28467 refactor,blocks: remove costly asserts and modernize affected logs fa39f27a0f8 refactor,blocks: deduplicate block's serialized size calculations dfb2f9d0048 refactor,blocks: inline `WriteBlockToDisk` 42bc4914658 refactor,blocks: inline `UndoWriteToDisk` 86b85bb11f8 bench: add SaveBlockBench 34f9a0157aa refactor,bench: rename bench/readblock.cpp to bench/readwriteblock.cpp fa3c787b62a fuzz: Abort when global PRNG is used before SeedRand::ZEROS 92787dd52cd test: raise an error when target_vsize is below tx virtual size a8780c937f7 test: raise an error if output value is <= 0 in `create_self_transfer` f6e88931f07 test: test that `create_self_transfer_multi` respects `target_vsize` fae3bf6b870 test: Avoid redundant stop and error spam on startup failure fa0dc09b900 test: Remove --noshutdown flag fad441fba07 test: Treat leftover process as error c0045e6cee0 Add test for multipath miniscript expression b4ac48090f2 descriptor: Use InferXOnlyPubkey for miniscript XOnly pubkey from script 4c50c21f6bf tests: Check ExpandPrivate matches for both parsed descriptors 092569e8580 descriptor: Try the other parity in ConstPubkeyProvider::GetPrivKey() 1b51616f2e3 test: improve rogue calls in mining functions 8888ee4403f ci: Allow build dir on CI host 9d2d9f7ce29 rpc: Include assumeutxo as a failure reason of rescanblockchain 595edee1690 test, assumeutxo: import descriptors during background sync d73ae603d44 rpc: Improve importdescriptor RPC error messages 27f99b6d63b validation: Don't assume m_chain_tx_count in GuessVerificationProgress 42d5d533631 interfaces: Add helper function for wallet on pruning e87429a2d0f ci: optionally use local docker build cache 11115e9aa84 cmake: Always provide `RPATH` on NetBSD d38ade7bc40 qa: Use `sys.executable` when invoking other Python scripts 18619b47325 wallet: remove BDB dependency from wallet migration benchmark fad83e759a4 doc: Fix incorrect send RPC docs 733fa0b0a14 miner: never create a template which exploits the timewarp bug d45eb3964f6 test: compare BDB dumps of test framework parser and wallet tool 01ddd9f646a test: complete BDB parser (handle internal/overflow pages, support all page sizes) cddcbaf81e8 RPC: improve SFFO arg parsing, error catching and coverage 4f4cd353194 rpc: decouple sendtoaddress 'subtractfeefromamount' boolean parsing REVERT: 538671edce5 kernel: Add pure kernel bitcoin-chainstate REVERT: 0f79e00c5b3 kernel: Add functions to get the block hash from a block REVERT: 6f7a47f53b1 kernel: Add block index utility functions to C header REVERT: 5af7950c744 kernel: Add function to read block undo data from disk to C header REVERT: b456fb6c0b3 kernel: Add functions to read block from disk to C header REVERT: b6c157fee16 kernel: Add function for copying block data to C header REVERT: 011cd3f5967 kernel: Add functions for the block validation state to C header REVERT: 9532bfb8173 kernel: Add validation interface to C header REVERT: 8dde5a04ebc kernel: Add interrupt function to C header REVERT: 729d2d39397 kernel: Add import blocks function to C header REVERT: dfa7109e8f0 kernel: Add chainstate load options for in-memory dbs in C header REVERT: d012fe0147f kernel: Add options for reindexing in C header REVERT: 6d12d7868c1 kernel: Add block validation to C header REVERT: 8ad7b67c652 Kernel: Add chainstate loading to kernel C header REVERT: 5d09bf54370 kernel: Add chainstate manager option for setting worker threads REVERT: 9cea88cb607 kernel: Add chainstate manager object to C header REVERT: c74f2c8a234 kernel: Add notifications context option to C header REVERT: b90b7e07b80 kerenl: Add chain params context option to C header REVERT: 438f55f0650 kernel: Add kernel library context object REVERT: 870c3727803 kernel: Add logging to kernel library C header REVERT: 7aed64b54db kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 817865d57daa822370b0f67e1e079fdd25ab3130
1 parent 230a439 commit e140532

File tree

151 files changed

+6328
-1550
lines changed

Some content is hidden

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

151 files changed

+6328
-1550
lines changed

.cirrus.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,13 @@ task:
140140
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
141141

142142
task:
143-
name: '32-bit CentOS, dash, gui'
143+
name: 'CentOS, depends, gui'
144144
<< : *GLOBAL_TASK_TEMPLATE
145145
persistent_worker:
146146
labels:
147147
type: small
148148
env:
149-
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
149+
FILE_ENV: "./ci/test/00_setup_env_native_centos.sh"
150150

151151
task:
152152
name: 'previous releases, depends DEBUG'

.github/workflows/ci.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# Copyright (c) 2023 The Bitcoin Core developers
1+
# Copyright (c) 2023-present The Bitcoin Core developers
22
# Distributed under the MIT software license, see the accompanying
33
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
44

55
name: CI
66
on:
7-
# See: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request.
7+
# See: https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request.
88
pull_request:
9-
# See: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push.
9+
# See: https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#push.
1010
push:
1111
branches:
1212
- '**'
@@ -26,7 +26,7 @@ jobs:
2626
name: 'test each commit'
2727
runs-on: ubuntu-24.04
2828
if: github.event_name == 'pull_request' && github.event.pull_request.commits != 1
29-
timeout-minutes: 360 # Use maximum time, see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes. Assuming a worst case time of 1 hour per commit, this leads to a --max-count=6 below.
29+
timeout-minutes: 360 # Use maximum time, see https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes. Assuming a worst case time of 1 hour per commit, this leads to a --max-count=6 below.
3030
env:
3131
MAX_COUNT: 6
3232
steps:
@@ -67,12 +67,12 @@ 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 libzmq3-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
70+
sudo apt-get install clang ccache build-essential cmake pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-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 -DWERROR=ON -DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWITH_BDB=ON -DWITH_USDT=ON -DCMAKE_CXX_FLAGS='-Wno-error=unused-member-function' && cmake --build build -j $(nproc) && ctest --output-on-failure --stop-on-failure --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_USDT=ON -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON -DCMAKE_CXX_FLAGS='-Wno-error=unused-member-function' && cmake --build build -j $(nproc) && ctest --output-on-failure --stop-on-failure --test-dir build -j $(nproc) && ./build/test/functional/test_runner.py -j $(( $(nproc) * 2 )) --combinedlogslen=99999999" ${{ env.TEST_BASE }}
7676
7777
macos-native-arm64:
7878
name: ${{ matrix.job-name }}
@@ -168,7 +168,7 @@ jobs:
168168
job-type: [standard, fuzz]
169169
include:
170170
- job-type: standard
171-
generate-options: '-DBUILD_GUI=ON -DWITH_BDB=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DWERROR=ON'
171+
generate-options: '-DBUILD_GUI=ON -DWITH_BDB=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DWERROR=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DBUILD_KERNEL_TEST=OFF'
172172
job-name: 'Win64 native, VS 2022'
173173
- job-type: fuzz
174174
generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="sqlite" -DBUILD_GUI=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
@@ -270,16 +270,16 @@ jobs:
270270
timeout-minutes: 120
271271
env:
272272
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
273-
DANGER_CI_ON_HOST_CACHE_FOLDERS: 1
273+
DANGER_CI_ON_HOST_FOLDERS: 1
274274
steps:
275275
- name: Checkout
276276
uses: actions/checkout@v4
277277

278-
- name: Set Ccache directory
279-
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
280-
281-
- name: Set base root directory
282-
run: echo "BASE_ROOT_DIR=${RUNNER_TEMP}" >> "$GITHUB_ENV"
278+
- name: Set CI directories
279+
run: |
280+
echo "CCACHE_DIR=${{ runner.temp }}/ccache_dir" >> "$GITHUB_ENV"
281+
echo "BASE_ROOT_DIR=${{ runner.temp }}" >> "$GITHUB_ENV"
282+
echo "BASE_BUILD_DIR=${{ runner.temp }}/build-asan" >> "$GITHUB_ENV"
283283
284284
- name: Restore Ccache cache
285285
id: ccache-cache

CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ cmake_dependent_option(WITH_DBUS "Enable DBus support." ON "CMAKE_SYSTEM_NAME ST
144144

145145
option(WITH_MULTIPROCESS "Build multiprocess bitcoin-node and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables. Requires libmultiprocess library. Experimental." OFF)
146146
if(WITH_MULTIPROCESS)
147-
find_package(Libmultiprocess COMPONENTS Lib)
148-
find_package(LibmultiprocessNative COMPONENTS Bin
147+
find_package(Libmultiprocess REQUIRED COMPONENTS Lib)
148+
find_package(LibmultiprocessNative REQUIRED COMPONENTS Bin
149149
NAMES Libmultiprocess
150150
)
151151
endif()
@@ -399,6 +399,7 @@ target_link_libraries(core_interface INTERFACE warn_interface)
399399
if(MSVC)
400400
try_append_cxx_flags("/W3" TARGET warn_interface SKIP_LINK)
401401
try_append_cxx_flags("/wd4018" TARGET warn_interface SKIP_LINK)
402+
try_append_cxx_flags("/wd4146" TARGET warn_interface SKIP_LINK)
402403
try_append_cxx_flags("/wd4244" TARGET warn_interface SKIP_LINK)
403404
try_append_cxx_flags("/wd4267" TARGET warn_interface SKIP_LINK)
404405
try_append_cxx_flags("/wd4715" TARGET warn_interface SKIP_LINK)
@@ -582,8 +583,13 @@ endif()
582583
# Relevant discussions:
583584
# - https://github.com/hebasto/bitcoin/pull/236#issuecomment-2183120953
584585
# - https://github.com/bitcoin/bitcoin/pull/30312#issuecomment-2191235833
585-
set(CMAKE_SKIP_BUILD_RPATH TRUE)
586-
set(CMAKE_SKIP_INSTALL_RPATH TRUE)
586+
# NetBSD always requires runtime paths to be set for executables.
587+
if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
588+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
589+
else()
590+
set(CMAKE_SKIP_BUILD_RPATH TRUE)
591+
set(CMAKE_SKIP_INSTALL_RPATH TRUE)
592+
endif()
587593
add_subdirectory(test)
588594
add_subdirectory(doc)
589595

ci/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ If the repository is not a fresh git clone, you might have to clean files from p
99

1010
The ci needs to perform various sysadmin tasks such as installing packages or writing to the user's home directory.
1111
While it should be fine to run
12-
the ci system locally on you development box, the ci scripts can generally be assumed to have received less review and
12+
the ci system locally on your development box, the ci scripts can generally be assumed to have received less review and
1313
testing compared to other parts of the codebase. If you want to keep the work tree clean, you might want to run the ci
1414
system in a virtual machine with a Linux operating system of your choice.
1515

ci/test/00_setup_env.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,10 @@ 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 pkg-config curl ca-certificates ccache python3 rsync git procps bison e2fsprogs cmake}
67+
export CI_BASE_PACKAGES=${CI_BASE_PACKAGES:-build-essential pkgconf 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 --"}
71+
72+
# The --platform argument used with `docker build` and `docker run`.
73+
export CI_IMAGE_PLATFORM=${CI_IMAGE_PLATFORM:-"linux"} # Force linux, but use native arch by default

ci/test/00_setup_env_arm.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export HOST=arm-linux-gnueabihf
1010
export DPKG_ADD_ARCH="armhf"
1111
export PACKAGES="python3-zmq g++-arm-linux-gnueabihf busybox libc6:armhf libstdc++6:armhf libfontconfig1:armhf libxcb1:armhf"
1212
export CONTAINER_NAME=ci_arm_linux
13-
export CI_IMAGE_NAME_TAG="docker.io/arm64v8/debian:bookworm" # Check that https://packages.debian.org/bookworm/g++-arm-linux-gnueabihf (version 12.2, similar to guix) can cross-compile
13+
export CI_IMAGE_NAME_TAG="docker.io/debian:bookworm" # Check that https://packages.debian.org/bookworm/g++-arm-linux-gnueabihf (version 12.2, similar to guix) can cross-compile
14+
export CI_IMAGE_PLATFORM="linux/arm64"
1415
export USE_BUSY_BOX=true
1516
export RUN_UNIT_TESTS=true
1617
export RUN_FUNCTIONAL_TESTS=false

ci/test/00_setup_env_i686_centos.sh

Lines changed: 0 additions & 17 deletions
This file was deleted.

ci/test/00_setup_env_i686_multiprocess.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export LC_ALL=C.UTF-8
88

99
export HOST=i686-pc-linux-gnu
1010
export CONTAINER_NAME=ci_i686_multiprocess
11-
export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:24.04"
11+
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
12+
export CI_IMAGE_PLATFORM="linux/amd64"
1213
export PACKAGES="llvm clang g++-multilib"
1314
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
1415
export GOAL="install"

ci/test/00_setup_env_mac_native.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export LC_ALL=C.UTF-8
1111
export PIP_PACKAGES="--break-system-packages zmq"
1212
export GOAL="install"
1313
export CMAKE_GENERATOR="Ninja"
14-
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DREDUCE_EXPORTS=ON"
14+
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON -DREDUCE_EXPORTS=ON"
1515
export CI_OS_NAME="macos"
1616
export NO_DEPENDS=1
1717
export OSX_SDK=""
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2020-present The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export CONTAINER_NAME=ci_native_centos
10+
export CI_IMAGE_NAME_TAG="quay.io/centos/centos:stream10"
11+
export CI_BASE_PACKAGES="gcc-c++ glibc-devel libstdc++-devel ccache make git python3 python3-pip which patch xz procps-ng ksh rsync coreutils bison e2fsprogs cmake"
12+
export PIP_PACKAGES="pyzmq"
13+
export DEP_OPTS="DEBUG=1" # Temporarily enable a DEBUG=1 build to check for GCC-bug-117966 regressions. This can be removed once the minimum GCC version is bumped to 12 in the previous releases task, see https://github.com/bitcoin/bitcoin/issues/31436#issuecomment-2530717875
14+
export GOAL="install"
15+
export BITCOIN_CONFIG="-DWITH_ZMQ=ON -DBUILD_GUI=ON -DREDUCE_EXPORTS=ON -DCMAKE_BUILD_TYPE=Debug"

0 commit comments

Comments
 (0)