Skip to content

Commit

Permalink
Squashed 'libbitcoinkernel-sys/bitcoin/' changes from e70e527ef21..10…
Browse files Browse the repository at this point in the history
…47757ea3b

1047757ea3b kernel: Add pure kernel bitcoin-chainstate
c568fdf75fd kernel: Add block index utility functions to C header
0f1da1dcba5 kernel: Add function to read block undo data from disk to C header
45af559c9f6 kernel: Add functions to read block from disk to C header
2a7f8a8240c kernel: Add function for copying  block data to C header
b19f5336c03 kernel: Add functions for the block validation state to C header
9c0ffa913f4 kernel: Add validation interface to C header
a93318c6152 kernel: Add interrupt function to C header
51053f33720 kernel: Add import blocks function to C header
6b0ada2af42 kernel: Add chainstate load options for in-memory dbs in C header
34427bfa9c7 kernel: Add options for reindexing in C header
ca57311c969 kernel: Add block validation to C header
44156d84838 Kernel: Add chainstate loading to kernel C header
2cee46cdcc1 kernel: Add chainstate manager object to C header
7102c7ae45e kernel: Add notifications context option to C header
ed628a2a3c4 kerenl: Add chain params context option to C header
27643297ff7 kernel: Add kernel library context object
2ba22cf3f90 kernel: Add logging to kernel library C header
873874c03e9 kernel: Introduce initial kernel C header API
d94adc7270b Merge bitcoin/bitcoin#29702: fees: Remove CLIENT_VERSION serialization
7290bc61c00 Merge bitcoin/bitcoin#31078: build: Fix kernel static lib component install
68f29b24907 Merge bitcoin/bitcoin#31141: doc: Make list of targets in depends README consistent
e9b95665eea Merge bitcoin/bitcoin#31046: init: Some small chainstate load improvements
b8c821cc1ea Merge bitcoin/bitcoin#30724: test: add test for specifying custom pidfile via `-pid`
a0c9595810c doc: Make list of targets in depends README consistent
fa1c5cc9df1 fees: Log non-fatal errors as [warning], instead of info-level
ffe4261cb06 Merge bitcoin/bitcoin#30935: ci: Approximate MAKEJOBS in image build phase
28ce159bc32 Merge bitcoin/bitcoin#30183: rpc: net: follow-ups for #30062
684873931b3 Merge bitcoin/bitcoin#26334: Add Signet and testnet4 launch shortcuts for Windows
9b0e2598089 Merge bitcoin/bitcoin#31121: guix: Enable CET for `glibc` package
d9f8dc64534 Merge bitcoin/bitcoin#31097: validation: Improve input script check error reporting
a16917fb598 rpc, net: improve `mapped_as` doc for getrawaddrman/getpeerinfo
563c4d29268 Merge bitcoin/bitcoin#31105: Update libmultiprocess library
0e9f20625a1 Merge bitcoin/bitcoin#31063: lint: commit-script-check.sh: echo to stderr
e8f72aefd20 Merge bitcoin/bitcoin#29877: tracing: explicitly cast block_connected duration to nanoseconds
86e2a6b749c [test] A non-standard transaction which is also consensus-invalid should return the consensus error
4d3da08d1b9 guix: Enable CET for `glibc` package
a38603456e9 Merge bitcoin/bitcoin#31100: doc: remove dependency install instructions from win docs
90b405516f7 Update libmultiprocess library
479715e9db0 Merge bitcoin/bitcoin#30996: doc: update signet documentation related to build directories
99e041f86fd Merge bitcoin/bitcoin#31099: doc: drop macOS LLVM install instructions
21e2f06a1cc Merge bitcoin/bitcoin#31067: test: Print CompletedProcess object on error
184f12c1542 doc: remove dependency install instructions from win docs
dea9fb9a8b8 Merge bitcoin/bitcoin#30093: optimization: reserve memory allocation for transaction inputs/outputs
79aa8280b2e doc: drop LLVM install instructions
2123c94448e Merge bitcoin/bitcoin#30527: Bump python minimum supported version to 3.10
538ccaed004 Merge bitcoin/bitcoin#31048: build: Bump minimum supported macOS to 13.0
f859ff8a4e9 [validation] Improve script check error reporting
ddddbac9c10 fees: Pin required version to 149900
fa5126adcb1 fees: Pin "version that wrote" to 0
0ca1d1bf69c Merge bitcoin/bitcoin#31092: doc: fuzz: remove Honggfuzz NetDriver instructions
d823ba6e20b doc: fuzz: remove Honggfuzz NetDriver instructions
15563d3388e Merge bitcoin/bitcoin#30859: doc: cmake: prepend "build" to functional/test_runner.py
2ac5ba24bf0 Merge bitcoin/bitcoin#31083: doc: add doxygen for m_args in tests
a0e089a71dc build: Bump minimum supported macOS to 13.0
1fe1b3ba8e9 doc: doxygen comment for m_args usage in tests
82e16e69832 cmake: Refactor install kernel dependencies
42e62779873 build: Add static libraries to Kernel install component
e64b2f1a16e doc: cmake: prepend and explain "build/" where needed
48cf3da6360 Merge bitcoin/bitcoin#30970: build: Add missing USDT header dependency to kernel
d8b835cf18c Merge bitcoin/bitcoin#31070: contrib: fix typos in check-deps.sh
da8824ba301 Fix typos in check-deps.sh
fa43c4f93ca test: Print CompletedProcess object on error
489e5aa3a29 Merge bitcoin/bitcoin#30857: cluster mempool: extend DepGraph functionality
9f45062b9b0 Merge bitcoin/bitcoin#30937: build: scripted-diff: drop config/ subdir for bitcoin-config.h
882f736d0a6 doc: lint: correct outdated comment (s/Makefile.am/CMakeLists.txt/)
1786be7b4a5 scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h
0c2c3bb3f5c Merge bitcoin/bitcoin#30955: Mining interface: getCoinbaseMerklePath() and submitSolution()
9909a34d794 Merge bitcoin/bitcoin#30992: doc: update IBD requirements in doc/README.md
fac6cfe5ac0 lint: commit-script-check.sh: echo to stderr
5fb94550638 Merge bitcoin/bitcoin#31058: refactor: include the proper header rather than forward-declaring RemovalReasonToString
e569eb8d917 Merge bitcoin/bitcoin#30885: scripted-diff: Modernize nLocalServices naming
31cc5006c3d init: Return fatal failure on snapshot validation failure
8f1246e8338 init: Improve chainstate init db error messages
5837e3463fe Merge bitcoin/bitcoin#30967: refactor: Replace g_genesis_wait_cv with m_tip_block_cv
ca2e4ba352c refactor: include the proper header rather than forward-declaring RemovalReasonToString
a9f6a57b691 Merge bitcoin/bitcoin#30920: test: Remove 0.16.3 test from wallet_backwards_compatibility.py
fa71bedf860 ci: Approximate MAKEJOBS in image build phase
03696bb1bd5 Merge bitcoin/bitcoin#31045: ci: Add missing -DWERROR=ON to test-each-commit
56093565bbe Merge bitcoin/bitcoin#31018: test: Treat exclude list warning as failure in CI
bb47b5a6576 Merge bitcoin/bitcoin#31038: test: Fix copy-paste in wallet/test/db_tests ostream operator
3fecf36c7b3 Merge bitcoin/bitcoin#31056: ci: Double ctest timeout
3c4a9419dbe Merge bitcoin/bitcoin#31013: depends: For mingw cross compile use -gcc-posix to prevent library conflict
5d5cc021ce3 Merge bitcoin/bitcoin#31051: test: remove unused code from `script_tests`
caf44e500eb Merge bitcoin/bitcoin#31008: depends: Print ready-to-use `--toolchain` option for CMake invocation
fa5ebc99207 ci: Double ctest timeout
0b3ec8c59b2 clusterlin: remove Cluster type
1c24c625105 clusterlin: merge two DepGraph fuzz tests into simulation test
0606e66fdbb clusterlin: add DepGraph::RemoveTransactions and support for holes in DepGraph
75b5d42419e clusterlin: make DepGraph::AddDependency support multiple dependencies at once
abf50649d13 clusterlin: simplify DepGraphFormatter::Ser
eaab55ffc81 clusterlin: rework DepGraphFormatter::Unser
5901cf7100a clusterlin: abstract out DepGraph::GetReduced{Parents,Children}
e0287bc4b2d test: remove unused code from script_tests
62e45167221 Merge bitcoin/bitcoin#31026: ci: set a ctest test timeout of 1200 (20 minutes)
cd093049dda init: Remove incorrect comment about shutdown condition
635e9f85d76 init: Remove misleading log line when user chooses not to retry
fa1cffacae6 ci: Install missing nproc in macos task
faf7a2bccc7 ci: Add missing -DWERROR=ON to test-each-commit
56aad83307e ci: set a ctest timeout of 1200 (20 minutes)
1b707146717 Merge bitcoin-core/gui#840: qt6: Handle different signatures of `QANEF::nativeEventFilter`
720ce880a35 init: Improve comment describing chainstate load retry behaviour
baea842ff18 init: Remove unneeded argument for mempool_opts checks
ec58dfe8f74 Merge bitcoin/bitcoin#31010: cmake: Avoid hardcoding Qt's major version in Find module / variable names
5fe6878b5f7 Merge bitcoin-core/gui#836: Fix display issues for IPv6 proxy setup in Options Dialog  (UI only, no functionality impact)
f50557f5d36 test: Fix copy-paste in db_tests ostream operator
5ea335a97f8 Merge bitcoin/bitcoin#30793: rpc: add getorphantxs
76e2e8aabd8 Merge bitcoin/bitcoin#31035: doc: Archive 28.0 release notes
f019fcec412 doc: Archive 28.0 release notes
80761afced1 qt6: Handle different signatures of `QANEF::nativeEventFilter`
51c698161b5 Merge bitcoin-core/gui#837: qt6: Fix linking when configured with `-DENABLE_WALLET=OFF`
4be785b3e33 Merge bitcoin-core/gui#839: qt6, test: Handle deprecated code
f117f3f7473 Merge bitcoin-core/gui#838: qt6: Handle deprecated `QLocale::nativeCountryName`
5625840c11d qt6, test: Handle deprecated `QVERIFY_EXCEPTION_THROWN`
772928a13c2 Merge bitcoin/bitcoin#30982: docs: Add instructions on how to self-sign bitcoin-core binaries for macOS
27709f51ee0 docs: Add instructions on how to self-sign bitcoin-core binaries for macOS
cfb59da4b3b Merge bitcoin/bitcoin#30980: fuzz: fix bug in p2p_headers_presync harness
dda2613239b Merge bitcoin/bitcoin#30929: log: Enforce trailing newline
e0ae9c14c4e Merge bitcoin/bitcoin#31011: refactor: move util/pcp and util/netif to common/
98c1536852d test: add getorphantxs tests
93f48fceb7d test: add tx_in_orphanage()
34a9c10e8cd rpc: add getorphantxs
f511ff3654d refactor: move verbosity parsing to rpc/util
36a6d4b0078 doc: update IBD requirements in doc/README.md
fa6d14eacb2 test: Treat exclude list warning as failure in CI
6a370435526 Merge bitcoin/bitcoin#31007: doc: add testnet4 section header for config file
70910eb2ecb Merge bitcoin/bitcoin#31016: test: add missing sync to feature_fee_estimation.py
532491faf1a net: add GetOrphanTransactions() to PeerManager
91b65adff2a refactor: add OrphanTxBase for external use
a1576edab35 test: add missing sync to feature_fee_estimation.py
ae56b3230b2 depends: For mingw cross compile use -gcc-posix to prevent library conflict
fd38711217c ci: make CI job fail when check-deps.sh script fails
d51edecddcb common: move pcp.cpp and netif.cpp files from util to common library since they depend on netaddress.cpp
61cdb1c9d83 doc: add testnet4 section header for config file
deacf3c7cd6 cmake: Avoid hardcoding Qt's major version in Find module
605926da0ab depends: Print ready-to-use `--toolchain` option for CMake invocation
fa2b7d8d6b3 Remove redundant unterminated-logprintf tidy check
bbbb2e43ee9 log: Enforce trailing newline, Remove redundant m_started_new_line
fa22e5c430a refactor: Remove dead code that assumed tip == nullptr
fa2e4439652 refactor: Replace g_genesis_wait_cv with m_tip_block_cv
fa7f52af1a4 refactor: Use wait_for predicate to check for interrupt
5ca28ef28bc refactor: Split up NodeContext shutdown_signal and shutdown_request
fad8e7fba7b bugfix: Mark m_tip_block_cv as guarded by m_tip_block_mutex
fa18586c29d refactor: Add missing GUARDED_BY(m_tip_block_mutex)
fa4c0750331 doc: Clarify waitTipChanged docs
fc642c33ef2 Merge bitcoin/bitcoin#30718: test: switch MiniWallet padding unit from weight to vsize
d7f956a309e Merge bitcoin/bitcoin#30968: init: Remove retry for loop
c33eb2360e2 Merge bitcoin/bitcoin#30043: net: Replace libnatpmp with built-in PCP+NATPMP implementation
f3c74c4a7e1 Merge bitcoin/bitcoin#30989: guix: Drop no longer needed `PATH` modification
5c7cacf649a ci: Remove natpmp build option and libnatpmp dependency
7e7ec984da5 doc: Remove mention of natpmp build options
061c3e32a26 depends: Drop natpmp and associated option from depends
20a18bf6aa3 build: Drop libnatpmp from build system
7b04709862f qt: Changes for built-in PCP+NAT-PMP
52f8ef66c61 net: Replace libnatpmp with built-in NATPMP+PCP implementation in mapport
97c97177cdb net: Add PCP and NATPMP implementation
cb750b4b405 qt6, test: Use `qWarning()` instead of `QWARN()` macro
9123a286e97 qt6: Handle deprecated `QLocale::nativeCountryName`
940edd6ac24 test: refactor: introduce and use `TRUC_CHILD_MAX_VSIZE` constant
c16ae717689 test: switch MiniWallet padding unit from weight to vsize
a647d4400d5 doc: update signet documentation related to build directories
f1daa80521e guix: Drop no longer needed `PATH` modification
d812cf11896 Merge bitcoin/bitcoin#30879: test: re-bucket long-running tests
18d4c43cab4 Merge bitcoin/bitcoin#30921: test: generalize HasReason and use it in FailFmtWithError
d7fcc91416a Merge bitcoin/bitcoin#30974: ci: Inline PACKAGE_MANAGER_INSTALL
29d00a1cee1 Merge bitcoin/bitcoin#30940: depends: Fix build with `MULTIPROCESS=1` in Guix environment
89a8e9b732f Merge bitcoin/bitcoin#30979: contrib: Update asmap link in seeds readme
fafd1a0f648 ci: Inline PACKAGE_MANAGER_INSTALL
36ad9516dbd Merge bitcoin/bitcoin#30981: ci: add timestamps to cirrus jobs
fa7c2838a5f Merge bitcoin/bitcoin#30948: test: Add missing sync_mempools() to fill_mempool()
f951f1fab25 ci: add timestamps to cirrus jobs
f158993fd55 contrib: Update asmap link in seeds readme
d5af7d28f47 Merge bitcoin/bitcoin#30976: depends, doc: Drop package-specific note about CMake
a7498cc7e26 Fix bug in p2p_headers_presync harness
4cf84b344de depends, doc: No need to specify general requirement
e13da501db9 Merge bitcoin/bitcoin#30973: doc: fix `loadtxoutset` example
513b7136c79 Merge bitcoin/bitcoin#30961: ci: add `LLVM_SYMBOLIZER_PATH` to Valgrind fuzz job
286725168ae doc: fix loadtxoutset example
525e9dcba0b Add submitSolution to BlockTemplate interface
47b4875ef05 Add getCoinbaseMerklePath() to Mining interface
63d6ad7c89c Move BlockMerkleBranch back to merkle.{h,cpp}
65f6e7078b1 Merge bitcoin/bitcoin#30510: multiprocess: Add IPC wrapper for Mining interface
da612cea032 Merge bitcoin/bitcoin#30962: validation: Disable CheckForkWarningConditions for background chainstate
e9d60af9889 refactor: Replace init retry for loop with if statement
c1d8870ea41 refactor: Move most of init retry for loop to a function
ccd10fdb97f build: Add missing USDT header dependency to kernel
781c01f5806 init: Check mempool arguments in AppInitParameterInteractions
39219fe145e Merge bitcoin/bitcoin#30946: doc: correct the zmq automatic build info
06e7e836329 doc: correct the zmq automatic build info
a9773b6215e Merge bitcoin/bitcoin#30963: doc: Adjust links in OSS-Fuzz section
fa6c1946d23 doc: Adjust links in OSS-Fuzz section
c0a0c72b4d6 validation: Disable CheckForkWarningConditions for background chainstate
c1832584bfd ci: add LLVM_SYMBOLIZER_PATH to Valgrind fuzz job
393f323bd60 Merge bitcoin/bitcoin#30952: test: Use shell builtins in run_command test case
faf801515f8 test: Add missing sync_mempools() to fill_mempool()
fa48be6f023 test: Refactor fill_mempool to extract send_batch helper
1a332817665 doc: multiprocess documentation improvements
90a5786bba4 Merge bitcoin/bitcoin#30678: wallet: Write best block to disk before backup
d043950ba24 multiprocess: Add serialization code for BlockValidationState
33c2eee285e multiprocess: Add IPC wrapper for Mining interface
06882f84017 multiprocess: Add serialization code for vector<char>
095286f790a multiprocess: Add serialization code for CTransaction
69dfeb18761 multiprocess: update common-types.h to use C++20 concepts
206c6e78eec build: Make bitcoin_ipc_test depend on bitcoin_ipc
070e6a32d5f depends: Update libmultiprocess library for cmake headers target
dabc74e86c3 Merge bitcoin/bitcoin#30409: Introduce waitTipChanged() mining interface, replace RPCNotifyBlockChange, drop CRPCSignals & g_best_block
7bd3ee62f6d test: Use shell builtins in run_command test case
f5a2000579b test: re-bucket long-running tests
06b4c339e89 depends: Fix reproducibility when building with `MULTIPROCESS=1`
04e4d52420a test: add test for specifying custom pidfile via `-pid`
b832ffe0446 refactor: introduce default pid file name constant in tests
d8e3afc3352 depends: Fix build with `MULTIPROCESS=1` in Guix environment
f20fe33e94c test: Add basic balance coverage to wallet_assumeutxo.py
d72df63d169 net: Use GetLocalAddresses in Discover
e02030432b7 net: Add netif utility
754e4254388 crypto: Add missing WriteBE16 function
33adc7521cc Merge bitcoin/bitcoin#30765: refactor: Allow `CScript`'s `operator<<` to accept spans, not just vectors
0894748316c Merge bitcoin/bitcoin#30918: fuzz: Add check in `p2p_headers_presync` that chain work never exceeds minimum work
f57a6754ed6 Merge bitcoin/bitcoin#30826: fuzz: reduce number of iterations in `crypto_aeadchacha20poly1305` target
48c20dbd86c Merge bitcoin/bitcoin#30794: interpreter: use int32_t instead of int type for risczero compile
4148e60909e Merge bitcoin/bitcoin#30679: fix: handle invalid `-rpcbind` port earlier
a8a2628b7a9 Merge bitcoin/bitcoin#30828: interfaces: #30697 follow ups
0d81b3ddedc Merge bitcoin/bitcoin#30568: addrman: change internal id counting to int64_t
c985a34b9c3 Merge bitcoin/bitcoin#26990: cli: Improve error message on multiwallet cli-side commands
037b101e808 test: Add coverage for best block locator write in wallet_backup
31c0df03890 wallet: migration, write best locator before unloading wallet
7e3dbe4180c wallet: Write best block to disk before backup
79f20fa1b1e Merge bitcoin/bitcoin#30561: refactor: move `SignSignature` helpers to test utils
284bd17309a add check that chainwork doesn't exceed minimum work
9aa5d1c3fcd add clarification in comment
197aa249551 Merge bitcoin/bitcoin#30856: build: drop obj/ subdirectory for generated build.h
7025942687f build: drop superfluous `HAVE_BUILD_INFO` define
0dd662510c5 build: drop obj/ subdir for generated build.h, rename to bitcoin-build-info.h
84cd6478c42 Merge bitcoin/bitcoin#30927: Follow-up after AutoFile position caching: remove unused code
caac06f784c streams: reorder/document functions
67a3d590768 streams: remove unused code
2db926f49c8 Merge bitcoin/bitcoin#30889: log: Use ConstevalFormatString
fee4cba4847 gui: Fix proxy details display in Options Dialog
9ba56884f62 Merge bitcoin/bitcoin#30869: ci: Print inner env, Make ccache config more flexible
6c3c619b35c test: generalize HasReason and use it in FailFmtWithError
ab0b5706b25 Merge bitcoin/bitcoin#30875: doc: fixed inconsistencies in documentation between autotools to cmake change
fd08fded63a Merge bitcoin/bitcoin#30639: ci: Use clang-19 in msan tasks
5be34bacf6d qt: Fix linking when configured with `-DENABLE_WALLET=OFF`
a9964c04447 doc: Updating docs from autotools to cmake
fae44c83da9 test: Remove 0.16.3 test from wallet_backwards_compatibility.py
69409bc6e55 Merge bitcoin/bitcoin#30908: doc: remove Eclipser fuzzing documentation
6b97882ab53 Merge bitcoin/bitcoin#30915: ci: Use `ninja` to build in macOS native CI job
e6994efe08b fix: increase rpcbind check robustness
d38e3aed89e fix: handle invalid rpcbind port earlier
83b67f2e6d5 refactor: move host/port checking
73c243965ab test: add tests for invalid rpcbind ports
54227e681a4 rpc, cli: improve error message on multiwallet mode
735436df8ce Remove outdated Eclipser fuzzing documentation
ccccb67851b ci: Use clang-19 in msan tasks
facbcd4cef8 log: Use ConstevalFormatString
d01b85bfecb ci: Use `ninja` to build in macOS native CI job
6fc46927971 Merge bitcoin/bitcoin#29624: doc: update NeedsRedownload() and nStatus comment
2a0949f0977 Merge bitcoin/bitcoin#30888: build: optimize .h generation in GenerateHeaderFrom{Raw,Json}.cmake
bdbc90f29ac Merge bitcoin/bitcoin#30902: Remove Autotools packages from CI (and depends doc)
a95e742b692 Merge bitcoin/bitcoin#30913: ci: Use macos-14 GHA image (x86_64-apple-darwin22.6.0 -> arm64-apple-darwin23.6.0)
225718eda89 Merge bitcoin/bitcoin#30438: guix: (explicitly) build Linux GCC with `--enable-cet`
fab932b4211 ci: Remove incorrectly hardcoded HOST in mac_native task
af9f9878934 doc: update NeedsRedownload() comment
fa8f35d7865 ci: Use macos-14 GHA image
7942951e3fc Remove unused g_best_block
e3a560ca68d rpc: use waitTipChanged for longpoll
460687a09c2 Remove unused CRPCSignals
dca923150e3 Replace RPCNotifyBlockChange with waitTipChanged()
2a40ee11219 rpc: check for negative timeout arg in waitfor*
de7c855b3af rpc: recommend -rpcclienttimeout=0 for waitfor*
77ec072925a rpc: fix waitfornewblock description
285fe9fb51c rpc: add test for waitforblock and waitfornewblock
b94b27cf05c Add waitTipChanged to Mining interface
7eccdaf1608 node: Track last block that received a blockTip notification
ebb8215f236 Rename getTipHash() to getTip() and return BlockRef
89a8f74bbbb refactor: rename BlockKey to BlockRef
9f1aa88d4d9 Merge bitcoin/bitcoin#30884: streams: cache file position within AutoFile
06329eb1348 Merge bitcoin/bitcoin#29436: net: call `Select` with reachable networks in `ThreadOpenConnections`
e983ed41d9f Merge bitcoin/bitcoin#30410: rpc, rest: Improve block rpc error handling, check header before attempting to read block data.
fce9e065c16 Merge bitcoin/bitcoin#28358: Drop -dbcache limit
8d000b85dd4 Merge bitcoin/bitcoin#30868: refactor: add clang-tidy `modernize-use-starts-ends-with` check
3f66642820b Merge bitcoin/bitcoin#30440: Have createNewBlock() return a BlockTemplate interface
2bf721e76a5 Merge bitcoin/bitcoin#30661: fuzz: Test headers pre-sync through p2p
c38e9993de7 Merge bitcoin/bitcoin#30286: cluster mempool: optimized candidate search
fa99e4521b6 ci: Allow CCACHE_DIR bind mount
37679b856ce Merge bitcoin/bitcoin#30899: qt: Translations update
fc7b507e9a5 tidy: add clang-tidy `modernize-use-starts-ends-with` check
7a8a6a06676 doc: Fix comment in `contrib/devtools/check-deps.sh` script
712d105e093 depends, doc: Do not install Autotools packages
b786449e663 ci: Do not install Autotools packages
a240e150e83 streams: remove AutoFile::Get() entirely
ae052957614 qt: Translations update
6a1aa510e31 rpc: check block index before reading block / undo data
6cbf2e5f819 rpc: Improve gettxoutproof error when only header is available.
69fc867ea19 test: add coverage to getblock and getblockstats
5290cbd5850 rpc: Improve getblock / getblockstats error when only header is available.
e5b537bbdfb rest: improve error when only header of a block is available.
e624a9bef16 streams: cache file position within AutoFile
89bf11b8072 guix: build Linux GCC with --enable-cet
a93c171faa7 Drop unneeded nullptr check from CreateNewBlock()
dd87b6dff35 Have createNewBlock return BlockTemplate interface
fae9b60c4ff test: Use LogPrintStr to test m_log_sourcelocations
33381ea530a scripted-diff: Modernize nLocalServices to m_local_services
2a581144f28 build: Minimize I/O operations in GenerateHeaderFromJson.cmake
aa003d1568b build: Minimize I/O operations in GenerateHeaderFromRaw.cmake
9ad2fe7e69e clusterlin: only start/use search when enough iterations left
bd044356edb clusterlin: improve heuristic to decide split transaction (optimization)
71f26293988 clusterlin: include topological pot subsets automatically (optimization)
e20fda77a2d clusterlin: reduce computation of unnecessary pot sets (optimization)
6060a948caf clusterlin bench: add example hard cluster benchmarks
2965fbf203f clusterlin: track upper bound potential set for work items (optimization)
9e43e4ce109 clusterlin: use feerate-sorted depgraph in SearchCandidateFinder
b80e6dfe780 clusterlin: add reordering support for DepGraph
85a285a3061 clusterlin: separate initial search entries per component (optimization)
e4faea9ca79 clusterlin bench: have low/high iter benchmarks instead of per-iter
fa39b1ca638 doc: move-only logging warning
fa252da0b9c ci: Remove hardcoded CCACHE_DIR in cirrus
fa146904e19 ci: Bump default CCACHE_MAXSIZE to 500M
aaaa7cf8bad cirrus: Drop CCACHE_NOHASHDIR
fa7ca182a9b ci: Print inner env
84663291275 chain: simplify `deleteRwSettings` code and improve it's doc
f8d91f49c70 chain: dont check for null settings value in `overwriteRwSetting`
df601993f2d chain: ensure `updateRwSetting` doesn't update to a null settings
5e190cd11f6 Replace CScript _hex_v_u8 appends with _hex
cac846c2fbf Allow CScript's operator<< to accept spans, not just vectors
c78d8ff4cb8 prevector: avoid GCC bogus warnings in insert method
e4e3b44e9cc net: call `Select` with reachable networks in `ThreadOpenConnections`
829becd990b addrman: change `Select` to support multiple networks
f698636ec86 net: add `All()` in `ReachableNets`
a97f43d63a6 fuzz: Add harness for p2p headers sync
c8e2eeeffb4 chain: uniformly use `SettingsAction` enum in settings methods
f482d0e366a fuzz: reduce number of iterations in `crypto_aeadchacha20poly1305` target
1e9e735670f chain: move new settings safely in `overwriteRwSetting`
1c409004c80 test: remove wallet context from `write_wallet_settings_concurrently`
58499b00d0a refactor: move `SignSignature` helpers to test utils
cd0edf26c07 tracing: cast block_connected duration to nanoseconds
cfd03de965a Add Testnet4 launch shortcut for Windows
77b2923f871 Add Signet launch shortcut for Windows
bc52cda1f3c fix use int32_t instead of int type for risczero compile with (-march=rv32i, -mabi=ilp32)
a0eaa4749fe Add FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION in PoW check
a3f6f5acd89 build: Automatically define FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION for fuzz builds
0c02d4b2bdb net_processing: Make MAX_HEADERS_RESULTS a PeerManager option
51f7668d31e addrman: change nid_type from int to int64_t
051ba3290e3 addrman, refactor: introduce user-defined type for internal nId
bdad0243be8 rpc, net: getrawaddrman "mapped_as" follow-ups
fa1b139d17d Bump python minimum supported version to 3.10
ec585f11c38 Reserve space for transaction inputs in CreateTransactionInternal
c76aaaf9003 Reserve space for transaction outputs in CreateTransactionInternal
bb3b980dfd9 validation: drop maximum -dbcache
REVERT: e70e527ef21 kernel: Add pure kernel bitcoin-chainstate
REVERT: ed9a8a54d3c kernel: Add block index utility functions to C header
REVERT: 6338dd45b55 kernel: Add function to read block undo data from disk to C header
REVERT: a2ac0c1e7c9 kernel: Add functions to read block from disk to C header
REVERT: 170060c3372 kernel: Add function for copying  block data to C header
REVERT: 0f8c00bba07 kernel: Add functions for the block validation state to C header
REVERT: 41dba7d2603 kernel: Add validation interface to C header
REVERT: 877cf01f22c kernel: Add interrupt function to C header
REVERT: f77c2b90422 kernel: Add import blocks function to C header
REVERT: 254e17dbeab kernel: Add chainstate load options for in-memory dbs in C header
REVERT: 8baa06d318f kernel: Add options for reindexing in C header
REVERT: 0243ed8a200 kernel: Add block validation to C header
REVERT: 36fbab87e9e Kernel: Add chainstate loading to kernel C header
REVERT: b249e93f295 kernel: Add chainstate manager object to C header
REVERT: 2546745a393 kernel: Add notifications context option to C header
REVERT: 2578746e87f kerenl: Add chain params context option to C header
REVERT: 21107de0ca7 kernel: Add kernel library context object
REVERT: 83cc65c4911 kernel: Add logging to kernel library C header
REVERT: 2f47169f91e kernel: Introduce initial kernel C header API

git-subtree-dir: libbitcoinkernel-sys/bitcoin
git-subtree-split: 1047757ea3b4b78b51d7338ea44e2123851143fe
  • Loading branch information
TheCharlatan committed Nov 2, 2024
1 parent fd80393 commit 8bb47d4
Show file tree
Hide file tree
Showing 343 changed files with 5,875 additions and 2,672 deletions.
18 changes: 7 additions & 11 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
env: # Global defaults
CIRRUS_CLONE_DEPTH: 1
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
CIRRUS_LOG_TIMESTAMP: true
MAKEJOBS: "-j10"
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
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
CCACHE_MAXSIZE: "200M"
CCACHE_DIR: "/tmp/ccache_dir"
CCACHE_NOHASHDIR: "1" # Debug info might contain a stale path if the build dir changes, but this is fine

# A self-hosted machine(s) can be used via Cirrus CI. It can be configured with
# multiple users to run tasks in parallel. No sudo permission is required.
Expand All @@ -16,9 +13,9 @@ env: # Global defaults
# Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
#
# The following specific types should exist, with the following requirements:
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
# - small: For an x86_64 machine, with at least 2 vCPUs and 8 GB of memory.
# - medium: For an x86_64 machine, with at least 4 vCPUs and 16 GB of memory.
# - arm64: For an aarch64 machine, with at least 2 vCPUs and 8 GB of memory.
#
# CI jobs for the latter configuration can be run on x86_64 hardware
# by installing qemu-user-static, which works out of the box with
Expand All @@ -39,14 +36,13 @@ env: # Global defaults
# This requires installing Podman instead of Docker.
#
# Futhermore:
# - apt-get is required due to PACKAGE_MANAGER_INSTALL
# - podman-docker-4.1+ is required due to the bugfix in 4.1
# (https://github.com/bitcoin/bitcoin/pull/21652#issuecomment-1657098200)
# - The ./ci/ dependencies (with cirrus-cli) should be installed. One-liner example
# for a single user setup with sudo permission:
#
# ```
# 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
# 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
# ```
#
# - There are no strict requirements on the hardware. Having fewer CPU threads
Expand Down Expand Up @@ -75,8 +71,8 @@ filter_template: &FILTER_TEMPLATE
base_template: &BASE_TEMPLATE
<< : *FILTER_TEMPLATE
merge_base_script:
# Unconditionally install git (used in fingerprint_script).
- git --version || bash -c "$PACKAGE_MANAGER_INSTALL git"
# Require git (used in fingerprint_script).
- git --version || ( apt-get update && apt-get install -y git )
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
- git fetch --depth=1 $CIRRUS_REPO_CLONE_URL "pull/${CIRRUS_PR}/merge"
- git checkout FETCH_HEAD # Use merged changes to detect silent merge conflicts
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,18 +67,18 @@ jobs:
echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD $EXCLUDE_MERGE_BASE_ANCESTORS | head -1)" >> "$GITHUB_ENV"
- run: |
sudo apt-get update
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
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
- name: Compile and run tests
run: |
# Run tests on commits after the last merge commit and before the PR head commit
# Use clang++, because it is a bit faster and uses less memory than g++
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 }}
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 }}
macos-native-x86_64:
name: 'macOS 13 native, x86_64, no depends, sqlite only, gui'
macos-native-arm64:
name: 'macOS 14 native, arm64, no depends, sqlite only, gui'
# Use latest image, but hardcode version to avoid silent upgrades (and breaks).
# See: https://github.com/actions/runner-images#available-images.
runs-on: macos-13
runs-on: macos-14

# No need to run on the read-only mirror, unless it is a PR.
if: github.repository != 'bitcoin-core/gui' || github.event_name == 'pull_request'
Expand All @@ -105,7 +105,7 @@ jobs:
run: |
# A workaround for "The `brew link` step did not complete successfully" error.
brew install --quiet python@3 || brew link --overwrite python@3
brew install --quiet automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode
brew install --quiet coreutils ninja pkg-config gnu-getopt ccache boost libevent miniupnpc zeromq qt@5 qrencode
- name: Set Ccache directory
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
Expand Down
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.9.18
3.10.14
15 changes: 4 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,11 +122,6 @@ option(REDUCE_EXPORTS "Attempt to reduce exported symbols in the resulting execu
option(WERROR "Treat compiler warnings as errors." OFF)
option(WITH_CCACHE "Attempt to use ccache for compiling." ON)

option(WITH_NATPMP "Enable NAT-PMP." OFF)
if(WITH_NATPMP)
find_package(NATPMP MODULE REQUIRED)
endif()

option(WITH_MINIUPNPC "Enable UPnP." OFF)
if(WITH_MINIUPNPC)
find_package(MiniUPnPc MODULE REQUIRED)
Expand Down Expand Up @@ -183,7 +178,7 @@ if(BUILD_GUI)
if(BUILD_GUI_TESTS)
list(APPEND qt_components Test)
endif()
find_package(Qt5 5.11.3 MODULE REQUIRED
find_package(Qt 5.11.3 MODULE REQUIRED
COMPONENTS ${qt_components}
)
unset(qt_components)
Expand Down Expand Up @@ -241,7 +236,6 @@ if(BUILD_FOR_FUZZING)
set(BUILD_WALLET_TOOL OFF)
set(BUILD_GUI OFF)
set(ENABLE_EXTERNAL_SIGNER OFF)
set(WITH_NATPMP OFF)
set(WITH_MINIUPNPC OFF)
set(WITH_ZMQ OFF)
set(BUILD_TESTS OFF)
Expand All @@ -251,6 +245,7 @@ if(BUILD_FOR_FUZZING)

target_compile_definitions(core_interface INTERFACE
ABORT_ON_FAILED_ASSUME
FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
)
endif()

Expand Down Expand Up @@ -547,7 +542,7 @@ if(WERROR)
unset(werror_flag)
endif()

find_package(Python3 3.9 COMPONENTS Interpreter)
find_package(Python3 3.10 COMPONENTS Interpreter)
if(Python3_EXECUTABLE)
set(PYTHON_COMMAND ${Python3_EXECUTABLE})
else()
Expand Down Expand Up @@ -623,9 +618,7 @@ if(ENABLE_WALLET)
message(" - legacy wallets (Berkeley DB) ..... ${WITH_BDB}")
endif()
message(" external signer ..................... ${ENABLE_EXTERNAL_SIGNER}")
message(" port mapping:")
message(" - using NAT-PMP .................... ${WITH_NATPMP}")
message(" - using UPnP ....................... ${WITH_MINIUPNPC}")
message(" port mapping using UPnP ............. ${WITH_MINIUPNPC}")
message(" ZeroMQ .............................. ${WITH_ZMQ}")
message(" USDT tracing ........................ ${WITH_USDT}")
message(" QR code (GUI) ....................... ${WITH_QRENCODE}")
Expand Down
1 change: 0 additions & 1 deletion CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@
"WITH_BDB": "ON",
"WITH_MINIUPNPC": "ON",
"WITH_MULTIPROCESS": "ON",
"WITH_NATPMP": "ON",
"WITH_QRENCODE": "ON",
"WITH_SQLITE": "ON",
"WITH_USDT": "ON",
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ and extending unit tests can be found in [/src/test/README.md](/src/test/README.

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

The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS,
and that unit/sanity tests are run automatically.
Expand Down
6 changes: 3 additions & 3 deletions ci/test/00_setup_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,18 @@ export RUN_FUZZ_TESTS=${RUN_FUZZ_TESTS:-false}
export BOOST_TEST_RANDOM=${BOOST_TEST_RANDOM:-1}
# See man 7 debconf
export DEBIAN_FRONTEND=noninteractive
export CCACHE_MAXSIZE=${CCACHE_MAXSIZE:-100M}
export CCACHE_MAXSIZE=${CCACHE_MAXSIZE:-500M}
export CCACHE_TEMPDIR=${CCACHE_TEMPDIR:-/tmp/.ccache-temp}
export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1}
# The cache dir.
# This folder exists only on the ci guest, and on the ci host as a volume.
export CCACHE_DIR=${CCACHE_DIR:-$BASE_SCRATCH_DIR/.ccache}
export CCACHE_DIR="${CCACHE_DIR:-$BASE_SCRATCH_DIR/ccache}"
# Folder where the build result is put (bin and lib).
export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out}
# The folder for previous release binaries.
# This folder exists only on the ci guest, and on the ci host as a volume.
export PREVIOUS_RELEASES_DIR=${PREVIOUS_RELEASES_DIR:-$BASE_ROOT_DIR/prev_releases}
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}
export CI_BASE_PACKAGES=${CI_BASE_PACKAGES:-build-essential pkg-config curl ca-certificates ccache python3 rsync git procps bison e2fsprogs cmake}
export GOAL=${GOAL:-install}
export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets}
export CI_RETRY_EXE=${CI_RETRY_EXE:-"retry --"}
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_i686_centos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_centos
export CI_IMAGE_NAME_TAG="quay.io/centos/amd64:stream9"
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"
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"
export PIP_PACKAGES="pyzmq"
export GOAL="install"
export NO_WERROR=1 # Suppress error: #warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform [-Werror=cpp]
Expand Down
5 changes: 2 additions & 3 deletions ci/test/00_setup_env_mac_native.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@

export LC_ALL=C.UTF-8

export HOST=x86_64-apple-darwin
# Homebrew's [email protected] is marked as externally managed (PEP 668).
# Therefore, `--break-system-packages` is needed.
export PIP_PACKAGES="--break-system-packages zmq"
export GOAL="install"
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DWITH_MINIUPNPC=ON -DWITH_NATPMP=ON -DREDUCE_EXPORTS=ON"
export CMAKE_GENERATOR="Ninja"
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DWITH_MINIUPNPC=ON -DREDUCE_EXPORTS=ON"
export CI_OS_NAME="macos"
export NO_DEPENDS=1
export OSX_SDK=""
export CCACHE_MAXSIZE=400M
export RUN_FUZZ_TESTS=true
3 changes: 1 addition & 2 deletions ci/test/00_setup_env_native_asan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ else
fi

export CONTAINER_NAME=ci_native_asan
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}"
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}"
export NO_DEPENDS=1
export GOAL="install"
export BITCOIN_CONFIG="\
Expand All @@ -32,4 +32,3 @@ export BITCOIN_CONFIG="\
-DAPPEND_CXXFLAGS='-std=c++23' \
-DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' \
"
export CCACHE_MAXSIZE=300M
1 change: 0 additions & 1 deletion ci/test/00_setup_env_native_fuzz.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,4 @@ export BITCOIN_CONFIG="\
-DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \
-DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \
"
export CCACHE_MAXSIZE=200M
export LLVM_SYMBOLIZER_PATH="/usr/bin/llvm-symbolizer-18"
1 change: 0 additions & 1 deletion ci/test/00_setup_env_native_fuzz_with_msan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,3 @@ export USE_MEMORY_SANITIZER="true"
export RUN_UNIT_TESTS="false"
export RUN_FUNCTIONAL_TESTS="false"
export RUN_FUZZ_TESTS=true
export CCACHE_MAXSIZE=250M
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_native_fuzz_with_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ export BITCOIN_CONFIG="\
-DCMAKE_C_COMPILER=clang-16 \
-DCMAKE_CXX_COMPILER=clang++-16 \
"
export CCACHE_MAXSIZE=200M
export LLVM_SYMBOLIZER_PATH="/usr/bin/llvm-symbolizer-16"
1 change: 0 additions & 1 deletion ci/test/00_setup_env_native_msan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,3 @@ export BITCOIN_CONFIG="\
"
export USE_MEMORY_SANITIZER="true"
export RUN_FUNCTIONAL_TESTS="false"
export CCACHE_MAXSIZE=250M
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8

export CONTAINER_NAME=ci_native_nowallet_libbitcoinkernel
export CI_IMAGE_NAME_TAG="docker.io/debian:bookworm"
# Use minimum supported python3.9 (or best-effort 3.11) and clang-16, see doc/dependencies.md
# Use minimum supported python3.10 (or best-effort 3.11) and clang-16, see doc/dependencies.md
export PACKAGES="python3-zmq clang-16 llvm-16 libc++abi-16-dev libc++-16-dev"
export DEP_OPTS="NO_WALLET=1 CC=clang-16 CXX='clang++-16 -stdlib=libc++'"
export GOAL="install"
Expand Down
4 changes: 2 additions & 2 deletions ci/test/00_setup_env_native_previous_releases.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ export LC_ALL=C.UTF-8

export CONTAINER_NAME=ci_native_previous_releases
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:22.04"
# Use minimum supported python3.9 (or best effort 3.10) and gcc-11, see doc/dependencies.md
# Use minimum supported python3.10 and gcc-11, see doc/dependencies.md
export PACKAGES="gcc-11 g++-11 python3-zmq"
export DEP_OPTS="NO_UPNP=1 NO_NATPMP=1 DEBUG=1 CC=gcc-11 CXX=g++-11"
export DEP_OPTS="NO_UPNP=1 DEBUG=1 CC=gcc-11 CXX=g++-11"
export TEST_RUNNER_EXTRA="--previous-releases --coverage --extended --exclude feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash
export RUN_UNIT_TESTS_SEQUENTIAL="true"
export RUN_UNIT_TESTS="false"
Expand Down
5 changes: 2 additions & 3 deletions ci/test/00_setup_env_native_tidy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
export CONTAINER_NAME=ci_native_tidy
export TIDY_LLVM_V="18"
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq libevent-dev libboost-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev systemtap-sdt-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev libdb++-dev"
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq libevent-dev libboost-dev libminiupnpc-dev libzmq3-dev systemtap-sdt-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev libdb++-dev"
export NO_DEPENDS=1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
Expand All @@ -18,11 +18,10 @@ export RUN_CHECK_DEPS=true
export RUN_TIDY=true
export GOAL="install"
export BITCOIN_CONFIG="\
-DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DWITH_NATPMP=ON -DWITH_MINIUPNPC=ON -DWITH_USDT=ON -DWITH_BDB=ON -DWARN_INCOMPATIBLE_BDB=OFF \
-DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DWITH_MINIUPNPC=ON -DWITH_USDT=ON -DWITH_BDB=ON -DWARN_INCOMPATIBLE_BDB=OFF \
-DENABLE_HARDENING=OFF \
-DCMAKE_C_COMPILER=clang-${TIDY_LLVM_V} \
-DCMAKE_CXX_COMPILER=clang++-${TIDY_LLVM_V} \
-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O0 -g0' \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO='-O0 -g0' \
"
export CCACHE_MAXSIZE=200M
4 changes: 2 additions & 2 deletions ci/test/00_setup_env_native_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ export LC_ALL=C.UTF-8

export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
export CONTAINER_NAME=ci_native_valgrind
export PACKAGES="valgrind clang-16 llvm-16 libclang-rt-16-dev python3-zmq libevent-dev libboost-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libsqlite3-dev"
export PACKAGES="valgrind clang-16 llvm-16 libclang-rt-16-dev python3-zmq libevent-dev libboost-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libsqlite3-dev"
export USE_VALGRIND=1
export NO_DEPENDS=1
export TEST_RUNNER_EXTRA="--exclude feature_init,rpc_bind,feature_bind_extra" # feature_init excluded for now, see https://github.com/bitcoin/bitcoin/issues/30011 ; bind tests excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export GOAL="install"
# TODO enable GUI
export BITCOIN_CONFIG="\
-DWITH_ZMQ=ON -DWITH_BDB=ON -DWITH_NATPMP=ON -DWITH_MINIUPNPC=ON -DWARN_INCOMPATIBLE_BDB=OFF -DBUILD_GUI=OFF \
-DWITH_ZMQ=ON -DWITH_BDB=ON -DWITH_MINIUPNPC=ON -DWARN_INCOMPATIBLE_BDB=OFF -DBUILD_GUI=OFF \
-DCMAKE_C_COMPILER=clang-16 \
-DCMAKE_CXX_COMPILER=clang++-16 \
"
10 changes: 6 additions & 4 deletions ci/test/01_base_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ if [ "$(git config --global ${CFG_DONE})" == "true" ]; then
exit 0
fi

MAKEJOBS="-j$( nproc )" # Use nproc, because MAKEJOBS is the default in docker image builds.

if [ -n "$DPKG_ADD_ARCH" ]; then
dpkg --add-architecture "$DPKG_ADD_ARCH"
fi
Expand All @@ -36,7 +38,7 @@ if [ -n "$PIP_PACKAGES" ]; then
fi

if [[ ${USE_MEMORY_SANITIZER} == "true" ]]; then
${CI_RETRY_EXE} git clone --depth=1 https://github.com/llvm/llvm-project -b "llvmorg-18.1.3" /msan/llvm-project
${CI_RETRY_EXE} git clone --depth=1 https://github.com/llvm/llvm-project -b "llvmorg-19.1.0" /msan/llvm-project

cmake -G Ninja -B /msan/clang_build/ \
-DLLVM_ENABLE_PROJECTS="clang" \
Expand All @@ -45,7 +47,7 @@ if [[ ${USE_MEMORY_SANITIZER} == "true" ]]; then
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" \
-S /msan/llvm-project/llvm

ninja -C /msan/clang_build/ "-j$( nproc )" # Use nproc, because MAKEJOBS is the default in docker image builds
ninja -C /msan/clang_build/ "$MAKEJOBS"
ninja -C /msan/clang_build/ install-runtimes

update-alternatives --install /usr/bin/clang++ clang++ /msan/clang_build/bin/clang++ 100
Expand All @@ -64,7 +66,7 @@ if [[ ${USE_MEMORY_SANITIZER} == "true" ]]; then
-DLIBCXX_HARDENING_MODE=debug \
-S /msan/llvm-project/runtimes

ninja -C /msan/cxx_build/ "-j$( nproc )" # Use nproc, because MAKEJOBS is the default in docker image builds
ninja -C /msan/cxx_build/ "$MAKEJOBS"

# Clear no longer needed source folder
du -sh /msan/llvm-project
Expand All @@ -74,7 +76,7 @@ fi
if [[ "${RUN_TIDY}" == "true" ]]; then
${CI_RETRY_EXE} git clone --depth=1 https://github.com/include-what-you-use/include-what-you-use -b clang_"${TIDY_LLVM_V}" /include-what-you-use
cmake -B /iwyu-build/ -G 'Unix Makefiles' -DCMAKE_PREFIX_PATH=/usr/lib/llvm-"${TIDY_LLVM_V}" -S /include-what-you-use
make -C /iwyu-build/ install "-j$( nproc )" # Use nproc, because MAKEJOBS is the default in docker image builds
make -C /iwyu-build/ install "$MAKEJOBS"
fi

mkdir -p "${DEPENDS_DIR}/SDKs" "${DEPENDS_DIR}/sdk-sources"
Expand Down
Loading

0 comments on commit 8bb47d4

Please sign in to comment.