Skip to content

Commit 845b93d

Browse files
committed
Squashed 'libbitcoinkernel-sys/bitcoin/' changes from 64d1449ff4..a8d09748e2
a8d09748e2 Add sans utxo set block validation 42d3cb24d3 block header 6ee488a911 kernel: Fix bitcoin-chainstate for windows f3cdc1d068 kernel: Add Purpose section to header documentation e12e49cd9f kernel: Allowing reducing exports d12156dc93 kernel: Add pure kernel bitcoin-chainstate 6073d02483 Kernel: Add functions for working with outpoints 1cf094c3d2 kernel: Add block hash type and block tree utility functions to C header 6d78409470 kernel: Add function to read block undo data from disk to C header 3a97c00c39 kernel: Add functions to read block from disk to C header c7d52b5d85 kernel: Add function for copying block data to C header 01406a7939 kernel: Add functions for the block validation state to C header 1a4b0f99b3 kernel: Add validation interface to C header b784e3dece kernel: Add interrupt function to C header 1b48bf08da kernel: Add import blocks function to C header c261da1804 kernel: Add chainstate load options for in-memory dbs in C header 898d063f11 kernel: Add options for reindexing in C header 3f4ecce178 kernel: Add block validation to C header 97caa08c3b kernel: Add chainstate loading when instantiating a ChainstateManager b94bea8101 kernel: Add chainstate manager option for setting worker threads eaf6829898 kernel: Add chainstate manager object to C header 15e4a3f26d kernel: Add notifications context option to C header a4cd536a8e kernel: Add chain params context option to C header d7387a5b67 kernel: Add kernel library context object 5e2d066fe8 kernel: Add logging to kernel library C header f34e2a470d kernel: Introduce initial kernel C header API 9ce01e051b doc: Add docstrings for ConnectBlock and SpendBlock d7e812db1d validation: Move coin existence and spend check to SpendBlock cf3b9c77b9 validation: Move SetBestBlock out of ConnectBlock ee0c36f0b5 validation: Add SpendBlock function 78a3397898 validation: Use vector of outputs instead of CCoinsViewCache in CheckInputScripts 4d2a58f3f1 consensus: Use Coin span in CheckTxInputs 0d4274d9bd consensus: Use Coin span in GetTransactionSigOpCost 4a3d86c6fc consensus: Use Coin span in GetP2SHSigOpCount b510893d00 Merge bitcoin/bitcoin#33494: depends: Update URL for `qrencode` package source tarball ec5841888d Merge bitcoin/bitcoin#32513: ci: remove 3rd party js from windows dll gha job d735e2e9b3 Merge bitcoin/bitcoin#32998: Bump SCRIPT_VERIFY flags to 64 bit de1dc6b47b Merge bitcoin/bitcoin#33515: Improve LastCommonAncestor performance + add tests 919e6d01e9 Merge bitcoin/bitcoin#33489: build: Drop support for EOL macOS 13 452ea59281 Merge bitcoin/bitcoin#33454: net: support overriding the proxy selection in ConnectNode() a33bd767a3 Merge bitcoin/bitcoin#33464: p2p: Use network-dependent timers for inbound inv scheduling 2578da69f4 Merge bitcoin/bitcoin#33485: test: set par=2 in default config for functional test framework 25dbe4bc86 Merge bitcoin/bitcoin#33533: test: addrman: check isTerrible when time is more than 10min in the future cfb0d74698 Merge bitcoin/bitcoin#33121: test: fix p2p_leak_tx.py 86eaa4d6cd Merge bitcoin/bitcoin#33482: contrib: fix macOS deployment with no translations 007900ee9b Merge bitcoin/bitcoin#33434: depends: static libxcb-cursor 8e47ed6906 test: addrman: check isTerrible when time is more than 10min in the future 3635d62f5a chain: make use of pskip in LastCommonAncestor (optimization) 2e09d66fbb tests: add unit tests for CBlockIndex::GetAncestor and LastCommonAncestor 156927903d ci: Check windows manifests for all executables e1a1b14c93 ci: use a more generic way of finding mt.exe 1ed00a0d39 Merge bitcoin/bitcoin#33504: Mempool: Do not enforce TRUC checks on reorg c76de2eea1 net: support overriding the proxy selection in ConnectNode() 75353a0163 Merge bitcoin/bitcoin#32326: net: improve the interface around FindNode() and avoid a recursive mutex lock 87e7f37918 doc: clarify peer address in getpeerinfo and addnode RPC help 2a4450ccbb net: change FindNode() to not return a node and rename it 4268abae1a net: avoid recursive m_nodes_mutex lock in DisconnectNode() acc7f2a433 Merge bitcoin/bitcoin#33401: ci: Remove bash -c from cmake invocation using eval 1aaaaa078b fuzz: Drop unused workaround after Apple-Clang bump fadad7a494 Drop support for EOL macOS 13 50194029e7 ci: Remove bash -c from cmake invocation using eval f41f97240c Merge bitcoin/bitcoin#28584: Fuzz: extend CConnman tests cc4a2cc6bd Merge bitcoin/bitcoin#33453: docs: Undeprecate datacarrier and datacarriersize configuration options 7502d4e940 Merge bitcoin/bitcoin#33260: test: Use extra_port() helper in feature_bind_extra.py 14ae71f323 test: make notfound_on_unannounced more reliable 99bc552980 test: fix (w)txid confusion in p2p_leak_tx.py 576dd97cb9 test: increase timeout in p2p_leak_tx.py 8f73d95221 Merge bitcoin/bitcoin#33299: wallet: reduce unconditional logging during load 0f7d4ee4e8 p2p: Use different inbound inv timer per network 93a70a42d3 depends: Update URL for `qrencode` package source tarball 6de8051263 depends: Use hash instead of file name for package download stamp 46135d90ea depends: Drop redundant check for downloaded file 771978952a depends: Fix `$(package)_fetched` target 25212dfdb4 Merge bitcoin/bitcoin#33487: ci: use latest versions of lint deps 06df14ba75 test: add more TRUC reorg coverge 26e71c237d Mempool: Do not enforce TRUC checks on reorg bbe8e9063c fuzz: don't bypass_limits for most mempool harnesses d4f47f9771 ci: use latest versions of lint deps fc861332b3 wallet, log: reduce unconditional logging during load 3a4d1a25cf net: merge AlreadyConnectedToAddress() and FindNode(CNetAddr) d8fe258cd6 Merge bitcoin/bitcoin#33484: doc: rpc: fix case typo in `finalizepsbt` help (final_scriptwitness) dda5228e02 test: set par=2 in default config for functional test framework ff05bebcc4 doc: rpc: fix case typo in `finalizepsbt` help (final_scriptwitness) 200150beba Merge bitcoin/bitcoin#33313: test/refactor: use test deque to avoid quadratic iteration 7e08445449 Merge bitcoin/bitcoin#33399: key: use static context for libsecp256k1 calls where applicable 7b5261f7ef contrib: fix using macdploy script without translations. 65e909dfdd Merge bitcoin/bitcoin#33430: rpc: addpeeraddress: throw on invalid IP 31b29f8eb6 Merge bitcoin/bitcoin#33229: multiprocess: Don't require bitcoin -m argument when IPC options are used e62e0a12b3 Merge bitcoin/bitcoin#33230: cli: Handle arguments that can be either JSON or string 7ae0497eef ci: remove 3rd party js from windows dll gha job 05d984b1a4 Merge bitcoin/bitcoin#33475: bugfix: miner: fix `addPackageTxs` unsigned integer overflow b807dfcdc5 miner: fix `addPackageTxs` unsigned integer overflow d41b503ae1 Merge bitcoin/bitcoin#33446: rpc: fix getblock(header) returns target for tip 5ae8edbc30 Merge bitcoin/bitcoin#33158: macdeploy: avoid use of `Bitcoin Core` in Linux cross build df67bb6fd8 test: Remove convert_to_json_for_cli 44a493e150 cli: Allow arguments to be both strings and json ad4a49090d Merge bitcoin/bitcoin#33408: msvc: Update vcpkg manifest dd61f08fd5 Merge bitcoin/bitcoin#33031: wallet: Set descriptor cache upgraded flag for migrated wallets 350692e561 Merge bitcoin/bitcoin#33388: test: don't throw from the destructor of DebugLogHelper 94db966a3b net: use generic network key for addrcache eca50854e1 depends: static libxcb_cursor 89144eb473 Merge bitcoin/bitcoin#33448: net/rpc: Report inv information for debugging eaa1a3cd0b Merge bitcoin/bitcoin#33425: ci: remove Clang build from msan fuzz job b77137a564 ci: link against -lstdc++ in native fuzz with msan job a86e1a6e32 Merge bitcoin/bitcoin#33427: rpc: Always return per-wtxid entries in submitpackage tx-results 6861dadfcb Merge bitcoin/bitcoin#33459: doc: remove unrelated `bitcoin-wallet` binary from `libbitcoin_ipc` description 3b3ab3a50a Merge bitcoin/bitcoin#33302: ci: disable cirrus cache in 32bit arm job 2738b63e02 test: validate behaviour of getpeerinfo last_inv_sequence and inv_to_send fbde8d9a81 doc: remove unrelated `bitcoin-wallet` binary from `libbitcoin_ipc` description 34fefb6335 Merge bitcoin/bitcoin#33435: system: improve handling around GetTotalRAM() 56791b5829 test: split out `system_ram_tests` to signal when total ram cannot be determined 337a6e7386 system: improve handling around GetTotalRAM() 451ba9ada4 datacarrier: Undeprecate configuration option 77b2ebb811 rpc/net: report per-peer last_inv_sequence bf7996cbc3 rpc: fix getblock(header) returns target for tip 4c3c1f42cf test: add block 2016 to mock mainnet 953544d028 Merge bitcoin/bitcoin#33429: fuzz: reduce iterations in slow targets df101c97c2 Merge bitcoin/bitcoin#33422: build: Remove lingering Windows registry & shortcuts (#32132 follow-up) 56c6daa64f Merge bitcoin/bitcoin#28592: p2p: Increase tx relay rate 79752b9c0b build(windows): Remove lingering registry entries and shortcuts upon install cad9a7fd73 rpc: Always return per-wtxid entries in submitpackage tx-results 6a33970fef fuzz: Reduce iterations in slow targets edb871cba2 Merge bitcoin/bitcoin#33412: Update libmultiprocess subtree to fix intermittent mptest hang 2427939935 test: forbid copying of DebugLogHelper d6aa266d43 test: don't throw from the destructor of DebugLogHelper eaf2c46475 Merge bitcoin/bitcoin#33378: Remove unnecessary casts when calling socket operations 5aec516b2c Merge bitcoin/bitcoin#33333: coins: warn on oversized `-dbcache` 316a0c5132 rpc: addpeeraddress: throw on invalid IP 74fa028da1 Merge bitcoin/bitcoin#33420: test: Avoid interface_ipc.py Duplicate ID errors 168360f4ae coins: warn on oversized -dbcache 6c720459be system: add helper for fetching total system memory e9c52272eb test: Avoid interface_ipc.py Duplicate ID errors c49a43591f Merge commit '535fa0ad0d2637f845beae92ea9dbbbbbe377c74' into pr/subtree-5 535fa0ad0d Squashed 'src/ipc/libmultiprocess/' changes from 13424cf2ecc1..47d79db8a552 453b0fa286 bitcoin: Make wrapper not require -m 1444ed855f Merge bitcoin/bitcoin#33407: cmake: Install `bitcoin` manpage 29e836fae6 test: add tool_bitcoin to test bitcoin wrapper behavior 0972f55040 init: add exe name to bitcoind, bitcoin-node -version output to be able to distinguish these in tests 2b0cd1f3fb Merge bitcoin/bitcoin#33395: net: do not apply whitelist permissions to onion inbounds ef20c2d11d build, msvc: Update vcpkg manifest baseline 1ff9e92948 key: use static context for libsecp256k1 calls where applicable f563ce9081 net: Do not apply whitelist permission to onion inbounds 947bed28fe Merge bitcoin/bitcoin#33380: test: Add submitblock test in interface_ipc 7584a4fda9 cmake: Install `bitcoin` manpage 67f632b6de net: remove unnecessary casts in socket operations c4adfbf706 Merge bitcoin/bitcoin#33373: depends: systemtap 5.3 5aa3d3135d Merge bitcoin/bitcoin#33391: test: Prevent disk space warning during node_init_tests bdf01c6f61 test: Prevent disk space warning during node_init_tests 0a26731c4c test: Add submitblock test in interface_ipc 2d6a0c4649 Merge bitcoin/bitcoin#33379: cmake: Fix regression in `secp256k1.cmake` 9193c3e434 cmake: Fix regression in `secp256k1.cmake` 28efd724b4 depends: systemtap 5.3 75e6984ec8 test/refactor: use test deque to avoid quadratic iteration 652424ad16 test: additional test coverage for script_verify_flags 00c253d494 ci: disable cirrus cache in 32bit arm job ff18b6bbaf ci: refactor docker action to return provider str 8e434a8499 macdeploy: rename macOS output to bitcoin-macos-app.zip 05353d9cf0 macdeploy: combine appname & -zip arguments fabc2615af test: Use extra_port() helper in feature_bind_extra.py 417437eb01 script/verify_flags: extend script_verify_flags to 64 bits 3cbbcb66ef script/interpreter: make script_verify_flag_name an ordinary enum bddcadee82 script/verify_flags: make script_verify_flags type safe a5ead122fe script/interpreter: introduce script_verify_flags typename 4577fb2b1e rpc: have getdeploymentinfo report script verify flags a3986935f0 validation: export GetBlockScriptFlags() 5db8cd2d37 Move mapFlagNames and FormatScriptFlags logic to script/interpreter.h adefb51c54 rpc/net: add per-peer inv_to_send sizes 88b0647f02 wallet: Always write last hardened cache flag in migrated wallets 8a08eef645 tests: Check that the last hardened cache upgrade occurs 0802398e74 fuzz: make it possible to mock (fuzz) CThreadInterrupt 6d9e5d130d fuzz: add CConnman::SocketHandler() to the tests 3265df63a4 fuzz: add CConnman::InitBinds() to the tests 91cbf4dbd8 fuzz: add CConnman::CreateNodeFromAcceptedSocket() to the tests 50da7432ec fuzz: add CConnman::OpenNetworkConnection() to the tests e6a917c8f8 fuzz: add Fuzzed NetEventsInterface and use it in connman tests e883b37768 fuzz: set the output argument of FuzzedSock::Accept() b81f37031c p2p: Increase tx relay rate REVERT: 64d1449ff4 kernel: Fix bitcoin-chainstate for windows REVERT: ba247a6a71 kernel: Add Purpose section to header documentation REVERT: b0697ccbf7 kernel: Allowing reducing exports REVERT: 9d23c437bf kernel: Add pure kernel bitcoin-chainstate REVERT: 10e8e06caf Kernel: Add functions for working with outpoints REVERT: ae64f8984d kernel: Add functions to get the block hash from a block REVERT: 2c2f277d12 kernel: Add block hash type and block tree utility functions to C header REVERT: 6062e2eeca kernel: Add function to read block undo data from disk to C header REVERT: e96af0baf5 kernel: Add functions to read block from disk to C header REVERT: 60e1515586 kernel: Add function for copying block data to C header REVERT: 7b105b7d02 kernel: Add functions for the block validation state to C header REVERT: 1a58dbb815 kernel: Add validation interface to C header REVERT: 86ed87d5a6 kernel: Add interrupt function to C header REVERT: e424c45546 kernel: Add import blocks function to C header REVERT: cf7b562f2e kernel: Add chainstate load options for in-memory dbs in C header REVERT: e26a198acf kernel: Add options for reindexing in C header REVERT: 4196583e03 kernel: Add block validation to C header REVERT: a7149076e2 kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: d36b447e6c kernel: Add chainstate manager option for setting worker threads REVERT: d4e612af67 kernel: Add chainstate manager object to C header REVERT: f19c807674 kernel: Add notifications context option to C header REVERT: cc0043d99b kernel: Add chain params context option to C header REVERT: 8b3ceea4f1 kernel: Add kernel library context object REVERT: 039e222756 kernel: Add logging to kernel library C header REVERT: d192006d7f kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: a8d09748e2e8b864ee6c2049426542d012c479bb
1 parent da985d5 commit 845b93d

File tree

166 files changed

+2891
-1034
lines changed

Some content is hidden

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

166 files changed

+2891
-1034
lines changed

.github/actions/configure-docker/action.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
name: 'Configure Docker'
22
description: 'Set up Docker build driver and configure build cache args'
33
inputs:
4-
use-cirrus:
5-
description: 'Use cirrus cache'
4+
cache-provider:
5+
description: 'gha or cirrus cache provider'
66
required: true
7+
options:
8+
- gh
9+
- cirrus
710
runs:
811
using: 'composite'
912
steps:
@@ -32,7 +35,7 @@ runs:
3235
# which are set automatically when running on GitHub infra: https://docs.docker.com/build/cache/backends/gha/#synopsis
3336
3437
# Use cirrus cache host
35-
if [[ ${{ inputs.use-cirrus }} == 'true' ]]; then
38+
if [[ ${{ inputs.cache-provider }} == 'cirrus' ]]; then
3639
url_args="url=${CIRRUS_CACHE_HOST},url_v2=${CIRRUS_CACHE_HOST}"
3740
else
3841
url_args=""

.github/workflows/ci.yml

Lines changed: 58 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@ jobs:
3333
name: 'determine runners'
3434
runs-on: ubuntu-latest
3535
outputs:
36-
use-cirrus-runners: ${{ steps.runners.outputs.use-cirrus-runners }}
36+
provider: ${{ steps.runners.outputs.provider }}
3737
steps:
3838
- id: runners
3939
run: |
4040
if [[ "${REPO_USE_CIRRUS_RUNNERS}" == "${{ github.repository }}" ]]; then
41-
echo "use-cirrus-runners=true" >> "$GITHUB_OUTPUT"
41+
echo "provider=cirrus" >> "$GITHUB_OUTPUT"
4242
echo "::notice title=Runner Selection::Using Cirrus Runners"
4343
else
44-
echo "use-cirrus-runners=false" >> "$GITHUB_OUTPUT"
44+
echo "provider=gha" >> "$GITHUB_OUTPUT"
4545
echo "::notice title=Runner Selection::Using GitHub-hosted runners"
4646
fi
4747
@@ -105,7 +105,7 @@ jobs:
105105
name: ${{ matrix.job-name }}
106106
# Use any image to support the xcode-select below, but hardcode version to avoid silent upgrades (and breaks).
107107
# See: https://github.com/actions/runner-images#available-images.
108-
runs-on: macos-14
108+
runs-on: macos-15
109109

110110
# When a contributor maintains a fork of the repo, any pull request they make
111111
# to their own fork, or to the main repository, will trigger two CI runs:
@@ -123,10 +123,10 @@ jobs:
123123
include:
124124
- job-type: standard
125125
file-env: './ci/test/00_setup_env_mac_native.sh'
126-
job-name: 'macOS 14 native, arm64, no depends, sqlite only, gui'
126+
job-name: 'macOS native, no depends, sqlite only, gui'
127127
- job-type: fuzz
128128
file-env: './ci/test/00_setup_env_mac_native_fuzz.sh'
129-
job-name: 'macOS 14 native, arm64, fuzz'
129+
job-name: 'macOS native, fuzz'
130130

131131
env:
132132
DANGER_RUN_CI_ON_HOST: 1
@@ -145,8 +145,8 @@ jobs:
145145
# Use the earliest Xcode supported by the version of macOS denoted in
146146
# doc/release-notes-empty-template.md and providing at least the
147147
# minimum clang version denoted in doc/dependencies.md.
148-
# See: https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes
149-
sudo xcode-select --switch /Applications/Xcode_15.0.app
148+
# See: https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes
149+
sudo xcode-select --switch /Applications/Xcode_16.0.app
150150
clang --version
151151
152152
- name: Install Homebrew packages
@@ -211,11 +211,16 @@ jobs:
211211
steps:
212212
- *CHECKOUT
213213

214-
- name: Configure Developer Command Prompt for Microsoft Visual C++
215-
# Using microsoft/setup-msbuild is not enough.
216-
uses: ilammy/msvc-dev-cmd@v1
217-
with:
218-
arch: x64
214+
- &SET_UP_VS
215+
name: Set up VS Developer Prompt
216+
shell: pwsh -Command "$PSVersionTable; $PSNativeCommandUseErrorActionPreference = $true; $ErrorActionPreference = 'Stop'; & '{0}'"
217+
run: |
218+
$vswherePath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
219+
$installationPath = & $vswherePath -latest -property installationPath
220+
& "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x64 -no_logo && set" | foreach-object {
221+
$name, $value = $_ -split '=', 2
222+
echo "$name=$value" >> $env:GITHUB_ENV
223+
}
219224
220225
- name: Get tool information
221226
shell: pwsh
@@ -263,14 +268,26 @@ jobs:
263268
run: |
264269
cmake --build . -j $NUMBER_OF_PROCESSORS --config Release
265270
266-
- name: Get bitcoind manifest
271+
- name: Check executable manifests
267272
if: matrix.job-type == 'standard'
268273
working-directory: build
274+
shell: pwsh -Command "$PSVersionTable; $PSNativeCommandUseErrorActionPreference = $true; $ErrorActionPreference = 'Stop'; & '{0}'"
269275
run: |
270-
mt.exe -nologo -inputresource:bin/Release/bitcoind.exe -out:bitcoind.manifest
271-
cat bitcoind.manifest
272-
echo
273-
mt.exe -nologo -inputresource:bin/Release/bitcoind.exe -validate_manifest
276+
mt.exe -nologo -inputresource:bin\Release\bitcoind.exe -out:bitcoind.manifest
277+
Get-Content bitcoind.manifest
278+
279+
Get-ChildItem -Filter "bin\Release\*.exe" | ForEach-Object {
280+
$exeName = $_.Name
281+
282+
# Skip as they currently do not have manifests
283+
if ($exeName -eq "fuzz.exe" -or $exeName -eq "bench_bitcoin.exe" -or $exeName -eq "test_bitcoin-qt.exe") {
284+
Write-Host "Skipping $exeName (no manifest present)"
285+
return
286+
}
287+
288+
Write-Host "Checking $exeName"
289+
& mt.exe -nologo -inputresource:$_.FullName -validate_manifest
290+
}
274291
275292
- name: Run test suite
276293
if: matrix.job-type == 'standard'
@@ -313,7 +330,7 @@ jobs:
313330
windows-cross:
314331
name: 'Linux->Windows cross, no tests'
315332
needs: runners
316-
runs-on: ${{ needs.runners.outputs.use-cirrus-runners == 'true' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
333+
runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
317334
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
318335

319336
env:
@@ -333,7 +350,7 @@ jobs:
333350
- name: Configure Docker
334351
uses: ./.github/actions/configure-docker
335352
with:
336-
use-cirrus: ${{ needs.runners.outputs.use-cirrus-runners }}
353+
cache-provider: ${{ needs.runners.outputs.provider }}
337354

338355
- name: CI script
339356
run: ./ci/test_run_all.sh
@@ -371,19 +388,26 @@ jobs:
371388
- name: Run bitcoind.exe
372389
run: ./bin/bitcoind.exe -version
373390

374-
- name: Find mt.exe tool
375-
shell: pwsh
376-
run: |
377-
$sdk_dir = (Get-ItemProperty 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots' -Name KitsRoot10).KitsRoot10
378-
$sdk_latest = (Get-ChildItem "$sdk_dir\bin" -Directory | Where-Object { $_.Name -match '^\d+\.\d+\.\d+\.\d+$' } | Sort-Object Name -Descending | Select-Object -First 1).Name
379-
"MT_EXE=${sdk_dir}bin\${sdk_latest}\x64\mt.exe" >> $env:GITHUB_ENV
391+
- *SET_UP_VS
380392

381-
- name: Get bitcoind manifest
382-
shell: pwsh
393+
- name: Check executable manifests
394+
shell: pwsh -Command "$PSVersionTable; $PSNativeCommandUseErrorActionPreference = $true; $ErrorActionPreference = 'Stop'; & '{0}'"
383395
run: |
384-
& $env:MT_EXE -nologo -inputresource:bin\bitcoind.exe -out:bitcoind.manifest
396+
mt.exe -nologo -inputresource:bin\bitcoind.exe -out:bitcoind.manifest
385397
Get-Content bitcoind.manifest
386-
& $env:MT_EXE -nologo -inputresource:bin\bitcoind.exe -validate_manifest
398+
399+
Get-ChildItem -Filter "bin\*.exe" | ForEach-Object {
400+
$exeName = $_.Name
401+
402+
# Skip as they currently do not have manifests
403+
if ($exeName -eq "fuzz.exe" -or $exeName -eq "bench_bitcoin.exe") {
404+
Write-Host "Skipping $exeName (no manifest present)"
405+
return
406+
}
407+
408+
Write-Host "Checking $exeName"
409+
& mt.exe -nologo -inputresource:$_.FullName -validate_manifest
410+
}
387411
388412
- name: Run unit tests
389413
# Can't use ctest here like other jobs as we don't have a CMake build tree.
@@ -423,7 +447,7 @@ jobs:
423447
ci-matrix:
424448
name: ${{ matrix.name }}
425449
needs: runners
426-
runs-on: ${{ needs.runners.outputs.use-cirrus-runners == 'true' && matrix.cirrus-runner || matrix.fallback-runner }}
450+
runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && matrix.cirrus-runner || matrix.fallback-runner }}
427451
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
428452
timeout-minutes: ${{ matrix.timeout-minutes }}
429453

@@ -440,6 +464,7 @@ jobs:
440464
fallback-runner: 'ubuntu-24.04-arm'
441465
timeout-minutes: 120
442466
file-env: './ci/test/00_setup_env_arm.sh'
467+
provider: 'gha'
443468

444469
- name: 'ASan + LSan + UBSan + integer, no depends, USDT'
445470
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md' # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
@@ -514,7 +539,7 @@ jobs:
514539
- name: Configure Docker
515540
uses: ./.github/actions/configure-docker
516541
with:
517-
use-cirrus: ${{ needs.runners.outputs.use-cirrus-runners }}
542+
cache-provider: ${{ matrix.provider || needs.runners.outputs.provider }}
518543

519544
- name: Enable bpfcc script
520545
if: ${{ env.CONTAINER_NAME == 'ci_native_asan' }}
@@ -551,7 +576,7 @@ jobs:
551576
- name: Configure Docker
552577
uses: ./.github/actions/configure-docker
553578
with:
554-
use-cirrus: ${{ needs.runners.outputs.use-cirrus-runners }}
579+
cache-provider: ${{ needs.runners.outputs.provider }}
555580

556581
- name: CI script
557582
run: |

ci/lint/01_install.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ python3 --version
4141
${CI_RETRY_EXE} pip3 install \
4242
codespell==2.4.1 \
4343
lief==0.16.6 \
44-
mypy==1.4.1 \
45-
pyzmq==25.1.0 \
46-
ruff==0.5.5 \
47-
vulture==2.6
44+
mypy==1.18.2 \
45+
pyzmq==27.1.0 \
46+
ruff==0.13.2 \
47+
vulture==2.14
4848

4949
SHELLCHECK_VERSION=v0.11.0
5050
curl -sL "https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | \

ci/test/00_setup_env_native_fuzz_with_msan.sh

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

99
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
10+
export APT_LLVM_V="21"
1011
LIBCXX_DIR="/cxx_build/"
1112
export MSAN_FLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O1 -fno-optimize-sibling-calls"
12-
LIBCXX_FLAGS="-nostdinc++ -nostdlib++ -isystem ${LIBCXX_DIR}include/c++/v1 -L${LIBCXX_DIR}lib -Wl,-rpath,${LIBCXX_DIR}lib -lc++ -lc++abi -lpthread -Wno-unused-command-line-argument"
13+
# -lstdc++ to resolve link issues due to upstream packaging
14+
LIBCXX_FLAGS="-nostdinc++ -nostdlib++ -isystem ${LIBCXX_DIR}include/c++/v1 -L${LIBCXX_DIR}lib -Wl,-rpath,${LIBCXX_DIR}lib -lc++ -lc++abi -lpthread -Wno-unused-command-line-argument -lstdc++"
1315
export MSAN_AND_LIBCXX_FLAGS="${MSAN_FLAGS} ${LIBCXX_FLAGS}"
1416

1517
export CONTAINER_NAME="ci_native_fuzz_msan"
18+
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} llvm-${APT_LLVM_V}-dev libclang-${APT_LLVM_V}-dev libclang-rt-${APT_LLVM_V}-dev"
1619
export DEP_OPTS="DEBUG=1 NO_QT=1 CC=clang CXX=clang++ CFLAGS='${MSAN_FLAGS}' CXXFLAGS='${MSAN_AND_LIBCXX_FLAGS}'"
1720
export GOAL="all"
1821
# Setting CMAKE_{C,CXX}_FLAGS_DEBUG flags to an empty string ensures that the flags set in MSAN_FLAGS remain unaltered.

ci/test/01_base_install.sh

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,23 +58,6 @@ fi
5858
if [[ -n "${USE_INSTRUMENTED_LIBCPP}" ]]; then
5959
${CI_RETRY_EXE} git clone --depth=1 https://github.com/llvm/llvm-project -b "llvmorg-21.1.1" /llvm-project
6060

61-
if [ -n "${APT_LLVM_V}" ]; then
62-
63-
cmake -G Ninja -B /clang_build/ \
64-
-DLLVM_ENABLE_PROJECTS="clang" \
65-
-DCMAKE_BUILD_TYPE=Release \
66-
-DLLVM_TARGETS_TO_BUILD=Native \
67-
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" \
68-
-S /llvm-project/llvm
69-
70-
ninja -C /clang_build/ "$MAKEJOBS"
71-
ninja -C /clang_build/ install-runtimes
72-
73-
update-alternatives --install /usr/bin/clang++ clang++ /clang_build/bin/clang++ 100
74-
update-alternatives --install /usr/bin/clang clang /clang_build/bin/clang 100
75-
update-alternatives --install /usr/bin/llvm-symbolizer llvm-symbolizer /clang_build/bin/llvm-symbolizer 100
76-
fi
77-
7861
cmake -G Ninja -B /cxx_build/ \
7962
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
8063
-DCMAKE_BUILD_TYPE=Release \

ci/test/03_test_script.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ if [[ "${RUN_TIDY}" == "true" ]]; then
130130
BITCOIN_CONFIG_ALL="$BITCOIN_CONFIG_ALL -DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
131131
fi
132132

133-
bash -c "cmake -S $BASE_ROOT_DIR -B ${BASE_BUILD_DIR} $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG" || (
133+
eval "CMAKE_ARGS=($BITCOIN_CONFIG_ALL $BITCOIN_CONFIG)"
134+
cmake -S "$BASE_ROOT_DIR" -B "$BASE_BUILD_DIR" "${CMAKE_ARGS[@]}" || (
134135
cd "${BASE_BUILD_DIR}"
135136
# shellcheck disable=SC2046
136137
cat $(cmake -P "${BASE_ROOT_DIR}/ci/test/GetCMakeLogFiles.cmake")

cmake/module/Maintenance.cmake

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,24 +96,24 @@ function(add_macos_deploy_target)
9696
VERBATIM
9797
)
9898

99-
string(REPLACE " " "-" osx_volname ${CLIENT_NAME})
99+
set(macos_zip "bitcoin-macos-app")
100100
if(CMAKE_HOST_APPLE)
101101
add_custom_command(
102-
OUTPUT ${PROJECT_BINARY_DIR}/${osx_volname}.zip
103-
COMMAND Python3::Interpreter ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR} -zip
102+
OUTPUT ${PROJECT_BINARY_DIR}/${macos_zip}.zip
103+
COMMAND Python3::Interpreter ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} -translations-dir=${QT_TRANSLATIONS_DIR} -zip=${macos_zip}
104104
DEPENDS ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt
105105
VERBATIM
106106
)
107107
add_custom_target(deploydir
108-
DEPENDS ${PROJECT_BINARY_DIR}/${osx_volname}.zip
108+
DEPENDS ${PROJECT_BINARY_DIR}/${macos_zip}.zip
109109
)
110110
add_custom_target(deploy
111-
DEPENDS ${PROJECT_BINARY_DIR}/${osx_volname}.zip
111+
DEPENDS ${PROJECT_BINARY_DIR}/${macos_zip}.zip
112112
)
113113
else()
114114
add_custom_command(
115115
OUTPUT ${PROJECT_BINARY_DIR}/dist/${macos_app}/Contents/MacOS/Bitcoin-Qt
116-
COMMAND ${CMAKE_COMMAND} -E env OBJDUMP=${CMAKE_OBJDUMP} $<TARGET_FILE:Python3::Interpreter> ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR}
116+
COMMAND ${CMAKE_COMMAND} -E env OBJDUMP=${CMAKE_OBJDUMP} $<TARGET_FILE:Python3::Interpreter> ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} -translations-dir=${QT_TRANSLATIONS_DIR}
117117
DEPENDS ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt
118118
VERBATIM
119119
)
@@ -128,13 +128,13 @@ function(add_macos_deploy_target)
128128
)
129129
else()
130130
add_custom_command(
131-
OUTPUT ${PROJECT_BINARY_DIR}/dist/${osx_volname}.zip
131+
OUTPUT ${PROJECT_BINARY_DIR}/dist/${macos_zip}.zip
132132
WORKING_DIRECTORY dist
133-
COMMAND ${PROJECT_SOURCE_DIR}/cmake/script/macos_zip.sh ${ZIP_EXECUTABLE} ${osx_volname}.zip
133+
COMMAND ${PROJECT_SOURCE_DIR}/cmake/script/macos_zip.sh ${ZIP_EXECUTABLE} ${macos_zip}.zip
134134
VERBATIM
135135
)
136136
add_custom_target(deploy
137-
DEPENDS ${PROJECT_BINARY_DIR}/dist/${osx_volname}.zip
137+
DEPENDS ${PROJECT_BINARY_DIR}/dist/${macos_zip}.zip
138138
)
139139
endif()
140140
endif()

cmake/secp256k1.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# Distributed under the MIT software license, see the accompanying
33
# file COPYING or https://opensource.org/license/mit/.
44

5+
enable_language(C)
6+
57
function(add_secp256k1 subdir)
68
message("")
79
message("Configuring secp256k1 subtree...")
@@ -30,7 +32,6 @@ function(add_secp256k1 subdir)
3032
string(STRIP "${SECP256K1_APPEND_LDFLAGS} ${APPEND_LDFLAGS}" SECP256K1_APPEND_LDFLAGS)
3133
set(SECP256K1_APPEND_LDFLAGS ${SECP256K1_APPEND_LDFLAGS} CACHE STRING "" FORCE)
3234
# We want to build libsecp256k1 with the most tested RelWithDebInfo configuration.
33-
enable_language(C)
3435
foreach(config IN LISTS CMAKE_BUILD_TYPE CMAKE_CONFIGURATION_TYPES)
3536
if(config STREQUAL "")
3637
continue()

contrib/guix/libexec/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ mkdir -p "$DISTSRC"
369369
;;
370370
*darwin*)
371371
cmake --build build --target deploy ${V:+--verbose}
372-
mv build/dist/Bitcoin-Core.zip "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.zip"
372+
mv build/dist/bitcoin-macos-app.zip "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.zip"
373373
mkdir -p "unsigned-app-${HOST}"
374374
cp --target-directory="unsigned-app-${HOST}" \
375375
contrib/macdeploy/detached-sig-create.sh

contrib/guix/symbol-check.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@
112112
'libfontconfig.so.1', # font support
113113
'libfreetype.so.6', # font parsing
114114
'libdl.so.2', # programming interface to dynamic linker
115-
'libxcb-cursor.so.0',
116115
'libxcb-icccm.so.4',
117116
'libxcb-image.so.0',
118117
'libxcb-shm.so.0',
@@ -249,7 +248,7 @@ def check_MACHO_libraries(binary) -> bool:
249248
return ok
250249

251250
def check_MACHO_min_os(binary) -> bool:
252-
if binary.build_version.minos == [13,0,0]:
251+
if binary.build_version.minos == [14,0,0]:
253252
return True
254253
return False
255254

0 commit comments

Comments
 (0)