Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
290 commits
Select commit Hold shift + click to select a range
d1ed2a6
http: check rpcallowip immediately after accepting connection
pinheadmz May 23, 2026
55d3cd5
doc: add release note describing change for forbidden clients
pinheadmz Jun 24, 2026
bc7d905
addrman: remove unreachable tried-collision branch
brunoerg Jul 8, 2026
1fc9277
test: cover disconnect on private broadcast peer with relay=false
brunoerg Jul 7, 2026
5d57f2c
test: cover unused mempool space in coins cache
w0xlt Jun 8, 2026
46c8c47
net_processing: bump last_inv_sequence for bip35 messages explicitly
ajtowns Jul 11, 2026
026f70e
net_processing: Remove per-peer rate-limiting
ajtowns Feb 19, 2026
6cfc65d
txmempool: Add ExtractBestByMiningScoreWithTopology
ajtowns Feb 19, 2026
e1b7490
net_processing: Replace CompareInvMempoolOrder
ajtowns Jun 2, 2026
749bb44
txmempool: Drop CompareMiningScoreWithTopology
ajtowns Feb 19, 2026
7927650
util/tokenbucket.h: Provide a generic TokenBucket class
ajtowns Feb 19, 2026
df31ee5
net_processing: add a global delay queue for sending txs
ajtowns Jul 11, 2026
6307bd0
net_processing: Provide a 30bpm heartbeat log while inv backlog is in…
ajtowns Jun 5, 2026
74a47a5
init: add -txsendrate configuration parameter
ajtowns Feb 19, 2026
4842903
rpc: report -txsendrate and bucket info via getnetworkinfo
ajtowns Feb 19, 2026
5cde663
tests: basic functional test for tx rate limiting
ajtowns Feb 19, 2026
12b0dc3
doc: Add release note for -txsendrate etc
ajtowns Apr 28, 2026
349c72e
net_processing: Drop unnecessary txid arg from InitiateTxBroadcastToAll
ajtowns May 29, 2026
226e638
depends: Update Qt to 6.8.4
hebasto Jul 14, 2026
e6ca996
clusterlin: avoid heap allocations in GetLinearization
sipa Jul 9, 2026
4b91ad1
clusterlin: reserve the suboptimal-chunk queue up front
sipa Jul 9, 2026
efb4eae
clusterlin: avoid recomputing intersections in MergeChunks
sipa Jul 9, 2026
7949404
ipc, moveonly: combine ipc_test.cpp and ipc_tests.cpp
ryanofsky Apr 16, 2026
33d37f3
ipc, refactor: Drop connect/listen/serve exe_name parameters
ryanofsky Apr 30, 2025
00287b9
ipc, refactor: Change Protocol class field order
ryanofsky Apr 30, 2025
7c86d48
ipc, refactor: use native path separators in test
ryanofsky Apr 30, 2025
dbcc192
ipc, refactor: fix include order
ryanofsky Apr 30, 2025
3449797
ipc: Avoid 'unistd.h' error with MSVC
ryanofsky Jun 22, 2026
2ee9b69
ipc, refactor: Add ProcessId type alias and use it
ryanofsky Apr 30, 2025
3859805
ipc, refactor: Add SocketId type alias and use it
ryanofsky Apr 30, 2025
e9f1981
ipc, refactor: Add Stream type alias and use it
ryanofsky Apr 30, 2025
b524545
lint: remove E712 Ruff ignore
willcl-ark Jul 14, 2026
6eca111
lint: remove E731 Ruff ignore
willcl-ark Jul 16, 2026
19af439
wallet: Deserialize directly in CWalletTx's ctor
achow101 Jun 9, 2026
72ebdd6
wallet: Remove unused CWalletTx CopyFrom and copy constructor
achow101 Jul 13, 2026
798ba6d
wallet: Make CWalletTx::tx private and use CWalletTx::GetTx to access
achow101 Jun 9, 2026
56cf27d
wallet: Store all witness variants of a transaction
furszy Jun 14, 2026
0b1af01
wallet: Replace CWalletTx::SetTx with Update
achow101 Jun 9, 2026
2d55c7a
wallet: Show alternate wtxids in gettransaction
achow101 Jun 9, 2026
ef2afc6
test: Test for wallet txs with alternate wtxids
achow101 Jun 9, 2026
99bdcb0
test: compat, ensure downgrade preserves tx witness variants
furszy Jun 14, 2026
6c9d76d
doc: release note for alternate_wtxids in gettransaction
achow101 Jun 22, 2026
ca9ffb8
rpc: add OpenRPC discovery alias
willcl-ark Jun 22, 2026
7298281
bitcoin-util: replace netmagic command with getchainparams command
ajtowns Jul 14, 2026
2d3f72f
ipc, refactor: Update mp::SpawnProcess call
ryanofsky Jul 17, 2026
be4e64d
test: characterize extra transaction miscount
l0rinc Jul 15, 2026
6aa5d8d
blockencodings: fix extra transaction count
l0rinc Jul 15, 2026
21b4b79
test: Move cluster_linearize.h contents into cluster_linearize namespace
hebasto Jul 16, 2026
fa5cbb8
uint256: Workaround GCC-14 stringop-overread bug in Compare
achow101 Jul 18, 2026
af50ba8
test: add shared SipHash vectors
l0rinc Jul 15, 2026
25bfca0
refactor: simplify adding SipHash-1-3-UJ
l0rinc Jul 15, 2026
c2d7931
crypto: add generic SipHash-1-3-UJ
sipa Jul 15, 2026
a0ccd4a
crypto: add fixed-width SipHash-1-3-UJ
sipa Jul 15, 2026
3aea854
test: add SipHash-1-3-UJ coverage
sipa Jul 16, 2026
7ff55cc
bench: add fixed-width SipHash benchmarks
l0rinc Jul 15, 2026
2beab94
coins: use SipHash-1-3-UJ for `CCoinsMap`
l0rinc Jul 15, 2026
3bfdcbd
coins: reuse cache hasher for txid set
l0rinc Jul 16, 2026
a3b5dc0
cmake: Add `GenerateWindowsInstaller` script
hebasto Jun 19, 2026
a99b27f
validation: handle null mempool on delete
l0rinc Jul 19, 2026
008a3e2
guix: split builds into Linux(gui) and macOS/Windows
fanquake May 13, 2026
0b0785d
guix: split macOS and win builds
fanquake Jun 16, 2026
51d36df
qt: Fix `-Wsfinae-incomplete` warnings when building with GCC 16.x
hebasto Jul 20, 2026
006f8f7
Merge bitcoin/bitcoin#35090: fuzz: add p2p_private_broadcast harness
sedited Jul 20, 2026
c8b2aeb
qt: Avoid implicit `NSApplication` instantiation
hebasto Jul 20, 2026
fd59d68
qt, test: Enable tests on macOS with `minimal` QPA plugin
hebasto Jul 20, 2026
e0c196f
Merge bitcoin/bitcoin#35721: lint: drop most remaining default Ruff r…
sedited Jul 20, 2026
4906594
Merge bitcoin-core/gui#950: qt, test: Run GUI tests on macOS with `mi…
hebasto Jul 20, 2026
d1d8526
Merge bitcoin/bitcoin#35681: test: cover disconnect on private broadc…
sedited Jul 20, 2026
7502b9d
fuzz: check http_request body matches framing
Ameen-Alam Jul 20, 2026
b36c2d7
Merge bitcoin/bitcoin#35490: test: cover unused mempool space in coin…
sedited Jul 21, 2026
d673ca7
Merge bitcoin/bitcoin#35537: guix: split builds into Linux, Linux GUI…
hebasto Jul 21, 2026
7e1a750
guix, refactor: Use `target` variable instead of hardcoded value
hebasto Jul 21, 2026
fae067e
fuzz: Avoid dangling prevoutfetch threads after AFL fork
Jul 21, 2026
cf0f2ae
p2p: Assume v2transport for addresses from seeds
mzumsande Jul 21, 2026
faada35
fuzz: [refactor] Use 100'000 digit separator in __AFL_LOOP
Jul 21, 2026
a7e980a
build: Quote host paths in NSIS installer template
hebasto Jul 21, 2026
f3f3021
ci: Put space and non-ASCII char in `BASE_BUILD_DIR`
hebasto Jul 20, 2026
883ef1d
Merge bitcoin/bitcoin#35727: blockencodings: fix extra transaction count
sedited Jul 21, 2026
32eb521
Merge bitcoin/bitcoin#35215: coins: use SipHash-1-3-UJ for CCoinsMap …
achow101 Jul 21, 2026
e446ea0
depends, zeromq: Apply upstream patch
hebasto Jul 22, 2026
a31c302
Merge bitcoin/bitcoin#35746: ci: Test build directory path with spaces
hebasto Jul 22, 2026
8f2ed31
Merge bitcoin/bitcoin#35767: fuzz: Avoid dangling prevoutfetch thread…
sedited Jul 22, 2026
559d042
Merge bitcoin/bitcoin#35736: bitcoin-util: replace netmagic command w…
fanquake Jul 22, 2026
fc4ceda
Merge bitcoin-core/gui#949: Fix `-Wsfinae-incomplete` warnings when b…
hebasto Jul 22, 2026
efa1800
Merge bitcoin/bitcoin#35769: depends, zeromq: Apply upstream patch
fanquake Jul 22, 2026
bc49bd1
Merge bitcoin/bitcoin#35709: depends: Update Qt to 6.8.4
fanquake Jul 22, 2026
faa50c0
refactor: Run clang-format on qt test_main.cpp
Jul 22, 2026
fa0c833
test: Nudge toward QT_STYLE_OVERRIDE=fusion on macOS
Jul 22, 2026
075e7f4
net: Simplify `AddressPosition` comparitor
rustaceanrob Jun 6, 2026
fa7f553
test: Suppress implicit-unsigned-integer-truncation:SaltedCoinsCacheH…
Jul 22, 2026
b8844d3
Merge bitcoin/bitcoin#35766: p2p: Assume v2transport for addresses fr…
fanquake Jul 22, 2026
6ced9ad
Merge bitcoin/bitcoin#35770: net: Simplify `AddressPosition` comparitor
fanquake Jul 22, 2026
a2e074d
Merge bitcoin-core/gui#951: test: Nudge toward QT_STYLE_OVERRIDE=fusi…
hebasto Jul 22, 2026
8916f79
scripted-diff: Use C.UTF-8 locale in Guix scripts
hebasto Jul 22, 2026
80f8314
guix: Fix `glibc` version in comment
hebasto Jul 22, 2026
d3d74e7
ipc, refactor: Update mp::g_thread_context references
ryanofsky Jul 22, 2026
8a90c7c
guix: Build for macOS using LLVM toolchain only
hebasto Jul 22, 2026
c9cedeb
coins: group private cache helpers
l0rinc Jul 22, 2026
5311b15
Merge bitcoin/bitcoin#33014: rpc: Fix internal bug in descriptorproce…
achow101 Jul 22, 2026
7b6f9ba
Merge bitcoin/bitcoin#34672: mining: add reason/debug to `submitSolut…
achow101 Jul 22, 2026
22a03ca
Merge bitcoin/bitcoin#35694: clusterlin: minor SFL optimizations
fanquake Jul 23, 2026
a33f240
Squashed 'src/secp256k1/' changes from bd0287d650..d2d04864ef
fanquake Jul 23, 2026
c26d4e2
Update secp256k1 subtree to latest master
fanquake Jul 23, 2026
419f742
doc: fix outdated i2p URLs in comments
nebula-21 Jul 23, 2026
7295b8b
chainparams: remove my testnet3 seed
Sjors Jul 23, 2026
711eb10
guix: Add copyright headers to Guix scripts
hebasto Jul 23, 2026
2cb3bfa
scripted-diff: Use long form of shell options in Guix scripts
hebasto Jul 23, 2026
5114329
Merge bitcoin/bitcoin#35782: doc: fix outdated i2p URLs in comments
fanquake Jul 23, 2026
9755d33
Merge bitcoin/bitcoin#34808: cmake, translation: Use native Qt TS fil…
sedited Jul 23, 2026
d472a77
Merge bitcoin/bitcoin#32764: guix: Build for macOS using LLVM toolcha…
fanquake Jul 23, 2026
290cb2f
Merge bitcoin/bitcoin#35775: scripted-diff: Use C.UTF-8 locale in Gui…
fanquake Jul 23, 2026
5266734
Merge bitcoin/bitcoin#34683: rpc: support a formal description of our…
achow101 Jul 23, 2026
774d11c
Merge bitcoin/bitcoin#35664: test: add CLTV and CHECK(MULTI)SIGVERIFY…
achow101 Jul 23, 2026
edf4b80
Merge bitcoin/bitcoin#35781: Update secp256k1 subtree to latest master
sedited Jul 23, 2026
26b730c
Merge bitcoin/bitcoin#35320: key: validate BIP32 seed length in CExtK…
achow101 Jul 23, 2026
afa5e46
Merge bitcoin/bitcoin#35076: doc: clarify pruning impact on wallet sync
achow101 Jul 23, 2026
610dd32
Merge bitcoin/bitcoin#35783: chainparams: remove my testnet3 seed
sedited Jul 24, 2026
1eac6a7
fuzz: populate wallet TXO index in wallet_create_transaction
frankomosh Jul 24, 2026
9ed3d6e
guix: modernise style in *-base-gcc
fanquake Apr 17, 2026
7dc87f8
guix: disable-lto in *-base-gcc
fanquake Apr 20, 2026
e0b8fbd
guix: disable-nls in *-base-gcc
fanquake Apr 20, 2026
9c25896
guix: mirror some arguments from linux-gcc to mingw-w64-gcc
fanquake Apr 20, 2026
baa5a2c
guix: pass --disable-tm-clone-registry to base GCC
fanquake Jun 1, 2026
1b76e04
net: increase inbound capacity for block-relay-only connections
mzumsande Apr 4, 2023
cc59aee
test: add functional test for inbound maxconnection limits
amitiuttarwar Sep 1, 2023
0bd3d3d
init: make inbound tx relay percentage configurable
amitiuttarwar Sep 8, 2023
3ed7f06
p2p: trigger possible eviction if we support bloom filters and change…
mzumsande Sep 10, 2023
69ce0db
test: add test that EvictTxPeerIfFull only evicts tx-relaying peers
brunoerg May 21, 2026
c115084
doc: Update docs that refer to -maxconnections
mzumsande Aug 5, 2024
05c35c4
refactor: Make all `const static` class members `constexpr`
rustaceanrob Jul 23, 2026
f5d7cc6
doc: Discourage adding AI agents as commit authors
sedited Jul 24, 2026
3a2c52f
Merge bitcoin/bitcoin#35792: refactor: Make all `const static` class …
fanquake Jul 24, 2026
3f313a7
build: set CMAKE_VISIBILITY_INLINES_HIDDEN in REDUCE_EXPORTS
fanquake Jul 24, 2026
11ebbd9
Merge bitcoin/bitcoin#28463: p2p: Increase inbound capacity for block…
achow101 Jul 24, 2026
6b059d9
Merge bitcoin/bitcoin#32800: rpc: Distinguish between vsize and sigop…
achow101 Jul 24, 2026
b33a7fc
Merge bitcoin/bitcoin#34628: p2p: Replace per-peer transaction rate-l…
sedited Jul 25, 2026
e34b8d5
Merge bitcoin/bitcoin#35794: doc: Discourage adding AI agents as comm…
fanquake Jul 25, 2026
a92e934
guix: Drop unused `(guix licenses)` import from `manifest_build.scm`
hebasto Jul 26, 2026
e75b76b
Merge bitcoin/bitcoin#35261: guix: disable LTO in GCC
hebasto Jul 26, 2026
69465de
init: ignore empty addnode values
w0xlt Jul 23, 2026
90ce21e
rpc: reject empty node argument in addnode
w0xlt Jul 26, 2026
a2aab6d
Merge bitcoin/bitcoin#35810: guix: Drop unused `(guix licenses)` impo…
fanquake Jul 27, 2026
7dea464
Merge bitcoin/bitcoin#35692: addrman: remove unreachable tried-collis…
sedited Jul 27, 2026
5907a5c
gui: Add ExceptionSafeConnect that takes a lambda
achow101 Jul 27, 2026
e8eaa80
util: LineReader - Don't include newline and acknowledge single-char \r
hodlinator Jul 28, 2026
5d5cdcd
util: Make LineReader consistently use string_views
hodlinator Jul 28, 2026
dff44e4
util: LineReader - Drop support for raw std::byte spans
hodlinator Jul 28, 2026
492a715
gui: Adds option to not load the wallet after migration
polespinasa Jul 27, 2026
4cea595
add release notes
polespinasa Jul 27, 2026
cb51f97
gui: Menu action for exporting a watchonly wallet
achow101 May 13, 2025
6573196
doc: Release note for export watchonly wallet gui action
achow101 Jul 27, 2026
a9d181f
Merge bitcoin/bitcoin#35084: ipc: Add nonunix platform support
sedited Jul 29, 2026
8ecbe27
Merge bitcoin/bitcoin#35606: script: qa: Improve `Key::Fingerprint` t…
sedited Jul 29, 2026
fd7d4f2
Merge bitcoin/bitcoin#35795: build: set CMAKE_VISIBILITY_INLINES_HIDD…
hebasto Jul 29, 2026
b12a70f
guix: turn linux/win linker warnings into errors
fanquake Jul 23, 2026
cc9b0f2
guix: consolidate LLVM toolchain setup
fanquake Jul 23, 2026
288f76e
guix: consolidate mingw-w64 toolchain setup
fanquake Jul 24, 2026
665f11d
guix: consolidate gcc toolchain setup
fanquake Jul 24, 2026
683ae4c
guix: consolidate config flags
fanquake Jul 24, 2026
7e5952b
Merge bitcoin/bitcoin#35821: guix: followups to #35537
hebasto Jul 29, 2026
146988e
Merge bitcoin/bitcoin#35551: test: add interface_gui.py to test bitco…
achow101 Jul 29, 2026
9b38d07
Merge bitcoin-core/gui#953: Adds option to not load the wallet after …
hebasto Jul 29, 2026
67998e1
Merge bitcoin/bitcoin#35553: test: Add missing test case for getdata …
achow101 Jul 29, 2026
87bc4c7
Merge bitcoin/bitcoin#35787: init, rpc: ignore empty addnode values
achow101 Jul 29, 2026
6e2962e
Merge bitcoin/bitcoin#35753: kernel: handle null mempool on chainstat…
achow101 Jul 29, 2026
9611a35
Merge bitcoin/bitcoin#35828: util: Make LineReader consistently use s…
achow101 Jul 29, 2026
fa7fe79
wallet: Remove meaningless bool fallback in FundTransaction
Jul 29, 2026
45f5609
qa: Enable `interface_gui.py` on macOS
hebasto Jul 29, 2026
67efced
Merge bitcoin/bitcoin#35838: qa: Enable `interface_gui.py` on macOS
fanquake Jul 30, 2026
aaf9412
refactor: split p2p_getdata.py in sub-cases
furszy Jul 25, 2026
9871fb7
p2p: reject filtered block inv early when bloom is disabled
furszy Jul 25, 2026
dd25610
fuzz: cover the mempool interface for transaction announcement
darosior Jul 29, 2026
28641fd
p2p: reject empty getblocktxn requests
furszy Jul 28, 2026
fa895bb
fuzz: Rework rpc fuzz target
Aug 1, 2026
5569887
Merge bitcoin/bitcoin#35592: http: check rpcallowip immediately after…
fanquake Aug 1, 2026
5559fa4
test: fix wrong transaction in GetP2SHSigOpCount assertion
jeanpablojp Aug 1, 2026
756afe1
test: give each ValidateInputsStandardness case its own scope
jeanpablojp Aug 2, 2026
ddddffd
doc: Add doc/release-notes-35836.md
Aug 3, 2026
594a02c
lint: re-add guix scripts to mypy linting
fanquake Aug 3, 2026
8221d71
lint: document CI lief version requirement
fanquake Aug 3, 2026
dcc2ed5
Merge bitcoin/bitcoin#35856: fuzz: cover the mempool interface for tr…
fanquake Aug 3, 2026
30f6b05
Merge bitcoin/bitcoin#35860: fuzz: Rework rpc fuzz target
fanquake Aug 3, 2026
50145f6
ci, iwyu: Enforce warning-free `src/common`
hebasto Jul 6, 2026
e27c179
Merge bitcoin/bitcoin#35869: lint: (re-)add contrib/guix for Python l…
fanquake Aug 3, 2026
101400b
guix: remove -Werror=dev
fanquake Aug 3, 2026
b75eb93
guix: move python-minimal to GUI build
fanquake Aug 3, 2026
1ed14c6
Merge bitcoin-core/gui#872: Menu action to export a watchonly wallet
hebasto Aug 3, 2026
0238aeb
refactor: Annotate `MakeAndPushFeature` with `[[maybe_unused]]`
hebasto Aug 3, 2026
41c44f5
node, qt: use `1_MiB` for dbcache conversions
l0rinc Apr 23, 2026
143a13f
test: characterize descriptor range endpoint
l0rinc Aug 3, 2026
264555a
rpc: avoid descriptor range counter overflow
l0rinc Aug 3, 2026
031fa40
scripted-diff: use `TryGetTotalRam`
l0rinc Feb 25, 2026
ab63432
common: cache total RAM as `uint64_t`
l0rinc Feb 25, 2026
7cfa21d
scripted-diff: use `MIN_DBCACHE_BYTES`
l0rinc May 3, 2026
8aa21e1
kernel, node: colocate dbcache bounds
l0rinc Apr 23, 2026
8bd9f46
kernel: allow setting chainstate `dbcache`
l0rinc May 18, 2026
cd086c1
node, qt: inline `DEFAULT_DB_CACHE`
l0rinc Apr 23, 2026
6a2de55
test: require `TryGetTotalRam()` detection
l0rinc Apr 23, 2026
2c87337
ci: update NetBSD cross-build SDK
l0rinc Aug 3, 2026
873550b
ci: verify cross-build SDK archives
l0rinc Jul 18, 2026
fa06ea4
ci: Temporarily remove riscv32 config from GHA matrix
Aug 4, 2026
75f024a
Merge bitcoin/bitcoin#35875: ci: Fix NetBSD SDK download failure, Tem…
fanquake Aug 4, 2026
4b32298
Merge bitcoin/bitcoin#34995: iwyu: Fix warnings in `src/common` and t…
fanquake Aug 4, 2026
b33a5b5
Merge bitcoin/bitcoin#35871: refactor: Annotate `MakeAndPushFeature` …
fanquake Aug 4, 2026
d24610f
Merge bitcoin/bitcoin#35870: guix: move `python-minimal` to Linux GUI…
fanquake Aug 4, 2026
975a314
Merge bitcoin/bitcoin#35832: p2p: avoid block disk reads on unnecessa…
sedited Aug 4, 2026
8a4bab8
Merge bitcoin/bitcoin#35863: test: fix wrong transaction in GetP2SHSi…
sedited Aug 4, 2026
bb19f1d
fuzz: don't connman.ReceiveMsgFrom oversized msg
instagibbs Aug 4, 2026
13b53f8
iwyu: Fix warnings in `src/consensus` and treat them as errors
hebasto Aug 4, 2026
17c5e33
Merge bitcoin/bitcoin#35216: qa: Improve functional test support on i…
sedited Aug 4, 2026
c6ef42d
Merge bitcoin/bitcoin#35205: kernel,node: add `dbcache` setter and cl…
sedited Aug 4, 2026
e7eb159
Merge bitcoin/bitcoin#35773: test: Suppress implicit-unsigned-integer…
sedited Aug 4, 2026
fa7304f
refactor: Remove unused #include in common/system
Aug 4, 2026
2f52c2e
Merge bitcoin/bitcoin#35886: refactor: Remove unused #include in comm…
hebasto Aug 4, 2026
0b8ffd0
Merge bitcoin/bitcoin#35790: fuzz: populate wallet TXO index in walle…
sedited Aug 4, 2026
d3cfd02
Merge bitcoin/bitcoin#35501: wallet: store all witness variants of a …
sedited Aug 4, 2026
75183f4
Merge bitcoin/bitcoin#35880: fuzz: don't connman.ReceiveMsgFrom overs…
fanquake Aug 5, 2026
324c231
Merge bitcoin/bitcoin#35881: iwyu: Fix warnings in `src/consensus` an…
sedited Aug 5, 2026
e4732bf
test: test invalid or missing timestamp throws importdescriptors
polespinasa Jul 1, 2026
3ac8b80
test: test the result order of a multiple import request is correct
polespinasa Jul 1, 2026
27b6b5a
Merge bitcoin/bitcoin#35836: rpc: Remove meaningless bool fallback in…
sedited Aug 5, 2026
fa1242d
refactor: Use std::visit in ApplyArgFallback
Jul 29, 2026
fa22647
rpc: Properly make RPCResult::Type::ANY non-test-only
Jul 30, 2026
fa1871a
refactor: Remove stale NOLINTNEXTLINE above GetAddressInfoBaseFields
Jul 29, 2026
fa3aadb
refactor: Use self.Arg<bool> in getopenrpcinfo
Jul 29, 2026
fac4b06
refactor: Use CLIENT_NAME in buildOpenRPCDoc
Jul 29, 2026
2825711
Merge bitcoin/bitcoin#35737: test: Move cluster_linearize.h contents …
sedited Aug 5, 2026
fafe504
refactor: Use C++20 std::identity over IntIdentity
Aug 5, 2026
fa5ca87
refactor: Enable clang-tidy rule to reject anon namespace in header
Aug 5, 2026
fa93132
refactor: Enable misc-definitions-in-headers
Aug 5, 2026
3db96eb
Merge bitcoin/bitcoin#35582: rpc: reject null for optional parameters
sedited Aug 5, 2026
c940fd7
Merge bitcoin/bitcoin#35180: coins: group private cache helpers
sedited Aug 5, 2026
465196d
Merge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error te…
sedited Aug 5, 2026
c4fbd3c
Merge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reje…
fanquake Aug 5, 2026
1278a59
net_processing: process unique tx INVs only
instagibbs Jul 14, 2026
fa9a9a8
refactor: Remove unused newFeeRate var in ReplacementChecks
Aug 6, 2026
e98ffd4
doc: fix stale bitcoin_en.xlf reference
cyb3ralbert Aug 6, 2026
4df077d
Merge bitcoin/bitcoin#35910: refactor: Remove unused newFeeRate var i…
sedited Aug 6, 2026
fa2bd96
test: Map cli CalledProcessError on server error to JSONRPCException
Jun 27, 2026
fa7bc26
test: Check that RPCs do not time out, even under load
Mar 26, 2026
b283e17
ci: use mirror for riscv submodules
willcl-ark Aug 4, 2026
81fcecf
Revert "ci: Temporarily remove riscv32 config from GHA matrix"
willcl-ark Aug 4, 2026
bd01e66
Merge bitcoin/bitcoin#35885: ci: switch to a sourceware mirror for riscv
fanquake Aug 6, 2026
950b1c0
Merge bitcoin/bitcoin#34927: test: Check that RPCs do not time out, e…
sedited Aug 6, 2026
a061b01
Merge bitcoin/bitcoin#35912: doc: fix stale bitcoin_en.xlf reference
hebasto Aug 6, 2026
5b00851
Merge bitcoin/bitcoin#35878: net_processing: process unique tx INVs only
fanquake Aug 6, 2026
7cb9aaa
Merge bitcoin/bitcoin#35759: fuzz: check http_request body matches fr…
fanquake Aug 6, 2026
c36ffd8
Merge bitcoin/bitcoin#35842: rpc: Properly make RPCResult::Type::ANY …
fanquake Aug 6, 2026
b388674
Merge bitcoin/bitcoin#35872: rpc: avoid descriptor range counter over…
achow101 Aug 6, 2026
6b6d77c
windows: remove deprecated codecvt via UTF-8 narrow APIs
kevkevinpal Jul 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .github/actions/configure-environment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ runs:
shell: bash
run: |
echo "BASE_ROOT_DIR=${{ runner.temp }}" >> "$GITHUB_ENV"
echo "BASE_BUILD_DIR=${{ runner.temp }}/build" >> "$GITHUB_ENV"
# Space and non-ASCII symbols mimic BASE_SCRATCH_DIR in ci/test/00_setup_env.sh,
# to test word-splitting and UTF-8 path handling on CI.
echo "BASE_BUILD_DIR=${{ runner.temp }}/build_ ₿🧪_" >> "$GITHUB_ENV"
echo "CCACHE_DIR=${{ runner.temp }}/ccache_dir" >> $GITHUB_ENV
echo "DEPENDS_DIR=${{ runner.temp }}/depends" >> "$GITHUB_ENV"
echo "BASE_CACHE=${{ runner.temp }}/depends/built" >> $GITHUB_ENV
Expand Down
6 changes: 3 additions & 3 deletions .tx/config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com

[o:bitcoin:p:bitcoin:r:qt-translation-031x]
file_filter = src/qt/locale/bitcoin_<lang>.xlf
source_file = src/qt/locale/bitcoin_en.xlf
[o:bitcoin:p:bitcoin:r:qt-translation-032x]
file_filter = src/qt/locale/bitcoin_<lang>.ts
source_file = src/qt/locale/bitcoin_en.ts
source_lang = en
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,6 @@ if(MSVC)
try_append_cxx_flags("/wd4805" TARGET warn_interface SKIP_LINK)
target_compile_definitions(warn_interface INTERFACE
_CRT_SECURE_NO_WARNINGS
_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
)
else()
try_append_cxx_flags("-Wall" TARGET warn_interface SKIP_LINK)
Expand Down Expand Up @@ -601,6 +600,7 @@ endif()

if(REDUCE_EXPORTS)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
try_append_linker_flag("-Wl,--exclude-libs,ALL" TARGET core_interface)
try_append_linker_flag("-Wl,-no_exported_symbols" VAR CMAKE_EXE_LINKER_FLAGS)
endif()
Expand Down
1 change: 1 addition & 0 deletions ci/lint/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# lief version should match the version used in Guix
lief==0.17.5
mypy==2.3.0
pyzmq==27.1.0
1 change: 1 addition & 0 deletions ci/test/00_setup_env_freebsd_cross.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export APT_LLVM_V="22"
export HOST=x86_64-unknown-freebsd
export FREEBSD_VERSION=15.1
export FREEBSD_SDK_BASENAME="freebsd-${HOST}-${FREEBSD_VERSION}"
export FREEBSD_SDK_SHA256=3768988b151c20f965679062b065c63a977d6bbb9f47fd83695ec2c40790c18f
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} lld-${APT_LLVM_V}"
export SYSROOT="--sysroot=${DEPENDS_DIR}/SDKs/${FREEBSD_SDK_BASENAME}"
export DEP_OPTS="build_CC=clang build_CXX=clang++ \
Expand Down
1 change: 1 addition & 0 deletions ci/test/00_setup_env_mac_cross.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export HOST=arm64-apple-darwin
export PACKAGES="clang lld llvm zip"
export XCODE_VERSION=26.1.1
export XCODE_BUILD_ID=17B100
export OSX_SDK_SHA256=9600fa93644df674ee916b5e2c8a6ba8dacf631996a65dc922d003b98b5ea3b1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
export GOAL="deploy"
Expand Down
1 change: 1 addition & 0 deletions ci/test/00_setup_env_mac_cross_intel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export HOST=x86_64-apple-darwin
export PACKAGES="clang lld llvm zip"
export XCODE_VERSION=26.1.1
export XCODE_BUILD_ID=17B100
export OSX_SDK_SHA256=9600fa93644df674ee916b5e2c8a6ba8dacf631996a65dc922d003b98b5ea3b1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
export GOAL="deploy"
Expand Down
5 changes: 4 additions & 1 deletion ci/test/00_setup_env_netbsd_cross.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ export CONTAINER_NAME=ci_netbsd_cross
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:26.04"
export APT_LLVM_V="22"
export HOST=x86_64-unknown-netbsd
export NETBSD_VERSION=11.0_RC6
export NETBSD_VERSION=11.0
export NETBSD_SDK_BASENAME="netbsd-${HOST}-${NETBSD_VERSION}"
export NETBSD_SDK_SHA512SUMS="\
e8871bbedb8c3e0f696cc2596ced0c1e6497939f725fb3495b8d2c168430325907550f5f840f4dd0e3c73e6090394747c5e54762f2737de81177b984403522a8 base.tar.xz\n\
d8df6c07e9142dd8189292b769ac312f86185a6a278a752c18c840f7cd3a8dd3c535f9b0c8e06b62d556b2c75b97a01d786184e8a18f5e080ccd213591c8628f comp.tar.xz"
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} lld-${APT_LLVM_V}"
export SYSROOT="--sysroot=${DEPENDS_DIR}/SDKs/${NETBSD_SDK_BASENAME}"
export DEP_OPTS="build_CC=clang build_CXX=clang++ \
Expand Down
3 changes: 3 additions & 0 deletions ci/test/00_setup_env_openbsd_cross.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ export APT_LLVM_V="22"
export HOST=x86_64-unknown-openbsd
export OPENBSD_VERSION=7.9
export OPENBSD_SDK_BASENAME="openbsd-${HOST}-${OPENBSD_VERSION}"
export OPENBSD_SDK_SHA256SUMS="\
923d2e03f06408d50d4848334398c6d04b5514dcac7917badfc178a0eef248de base79.tgz\n\
21a67af20aebcabf85b09f4206fc95b4cae0a35d42b154b976f0159f457724f9 comp79.tgz"
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} lld-${APT_LLVM_V}"
export SYSROOT="--sysroot=${DEPENDS_DIR}/SDKs/${OPENBSD_SDK_BASENAME}"
export DEP_OPTS="NO_QT=1 build_CC=clang build_CXX=clang++ \
Expand Down
36 changes: 24 additions & 12 deletions ci/test/01_base_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,16 @@ if [[ -n "${USE_INSTRUMENTED_LIBCPP}" ]]; then
fi

if [[ ${BARE_METAL_RISCV} == "true" ]]; then
# Use a mirror for these submodules as sourceware blocks too many requests combating AI.
${CI_RETRY_EXE} git clone --depth=1 https://github.com/riscv-collab/riscv-gnu-toolchain -b 2026.06.06 /riscv/gcc
( cd /riscv/gcc;
export GIT_CONFIG_COUNT=3
export GIT_CONFIG_KEY_0=url.https://git.fish.foo/mirrors/binutils-gdb.git.insteadOf
export GIT_CONFIG_VALUE_0=https://sourceware.org/git/binutils-gdb.git
export GIT_CONFIG_KEY_1=url.https://git.fish.foo/mirrors/glibc.git.insteadOf
export GIT_CONFIG_VALUE_1=https://sourceware.org/git/glibc.git
export GIT_CONFIG_KEY_2=url.https://git.fish.foo/mirrors/newlib-cygwin.git.insteadOf
export GIT_CONFIG_VALUE_2=https://sourceware.org/git/newlib-cygwin.git
./configure --prefix=/opt/riscv-ilp32 --with-arch=rv32gc --with-abi=ilp32 --disable-gdb;
make "$MAKEJOBS"; )
rm -rf /riscv/gcc
Expand All @@ -115,18 +123,20 @@ if [ -n "$XCODE_VERSION" ] && [ ! -d "${DEPENDS_DIR}/SDKs/${OSX_SDK_BASENAME}" ]
if [ ! -f "$OSX_SDK_PATH" ]; then
${CI_RETRY_EXE} curl --location --fail "${SDK_URL}/${OSX_SDK_FILENAME}" -o "$OSX_SDK_PATH"
fi
sha256sum -c <<<"${OSX_SDK_SHA256} ${OSX_SDK_PATH}"
tar -C "${DEPENDS_DIR}/SDKs" -xf "$OSX_SDK_PATH"
fi

if [ -n "$NETBSD_VERSION" ] && [ ! -d "${DEPENDS_DIR}/SDKs/${NETBSD_SDK_BASENAME}" ]; then
mkdir -p "${DEPENDS_DIR}/SDKs/${NETBSD_SDK_BASENAME}"
for NETBSD_SDK_FILENAME in base.tar.xz comp.tar.xz; do
while read -r NETBSD_SDK_SHA512 NETBSD_SDK_FILENAME; do
NETBSD_SDK_PATH="${DEPENDS_DIR}/sdk-sources/${NETBSD_SDK_FILENAME}"
if [ ! -f "$NETBSD_SDK_PATH" ]; then
${CI_RETRY_EXE} curl --location --fail "https://cdn.netbsd.org/pub/NetBSD/NetBSD-${NETBSD_VERSION}/amd64/binary/sets/${NETBSD_SDK_FILENAME}" -o "$NETBSD_SDK_PATH"
fi
sha512sum -c <<<"${NETBSD_SDK_SHA512} ${NETBSD_SDK_PATH}"
tar -C "${DEPENDS_DIR}/SDKs/${NETBSD_SDK_BASENAME}" -xf "$NETBSD_SDK_PATH"
done
done < <(printf '%b\n' "${NETBSD_SDK_SHA512SUMS}")
fi

if [ -n "$FREEBSD_VERSION" ] && [ ! -d "${DEPENDS_DIR}/SDKs/${FREEBSD_SDK_BASENAME}" ]; then
Expand All @@ -135,27 +145,29 @@ if [ -n "$FREEBSD_VERSION" ] && [ ! -d "${DEPENDS_DIR}/SDKs/${FREEBSD_SDK_BASENA
if [ ! -f "$FREEBSD_SDK_PATH" ]; then
${CI_RETRY_EXE} curl --location --fail "https://download.freebsd.org/releases/amd64/${FREEBSD_VERSION}-RELEASE/base.txz" -o "$FREEBSD_SDK_PATH"
fi
sha256sum -c <<<"${FREEBSD_SDK_SHA256} ${FREEBSD_SDK_PATH}"
mkdir -p "${DEPENDS_DIR}/SDKs/${FREEBSD_SDK_BASENAME}"
tar -C "${DEPENDS_DIR}/SDKs/${FREEBSD_SDK_BASENAME}" -xf "$FREEBSD_SDK_PATH"
fi

if [ -n "$OPENBSD_VERSION" ] && [ ! -d "${DEPENDS_DIR}/SDKs/${OPENBSD_SDK_BASENAME}" ]; then
mkdir -p "${DEPENDS_DIR}/SDKs/${OPENBSD_SDK_BASENAME}"
for OPENBSD_SDK_FILENAME in base79.tgz comp79.tgz; do
while read -r OPENBSD_SDK_SHA256 OPENBSD_SDK_FILENAME; do
OPENBSD_SDK_PATH="${DEPENDS_DIR}/sdk-sources/${OPENBSD_SDK_FILENAME}"
if [ ! -f "$OPENBSD_SDK_PATH" ]; then
${CI_RETRY_EXE} curl --location --fail "https://cdn.openbsd.org/pub/OpenBSD/${OPENBSD_VERSION}/amd64/${OPENBSD_SDK_FILENAME}" -o "$OPENBSD_SDK_PATH"
fi
sha256sum -c <<<"${OPENBSD_SDK_SHA256} ${OPENBSD_SDK_PATH}"
tar -C "${DEPENDS_DIR}/SDKs/${OPENBSD_SDK_BASENAME}" -xf "$OPENBSD_SDK_PATH"
(
# The SDK has versioned shared libs, but no unversioned libfoo.so symlink,
# which breaks linking the kernel with lld. Create the symlinks.
cd "${DEPENDS_DIR}/SDKs/${OPENBSD_SDK_BASENAME}/usr/lib"
ln -sf libc++abi.so.*.* libc++abi.so
ln -sf libc++.so.*.* libc++.so
ln -sf libpthread.so.*.* libpthread.so
)
done
done < <(printf '%b\n' "${OPENBSD_SDK_SHA256SUMS}")
(
# The SDK has versioned shared libs, but no unversioned libfoo.so symlink,
# which breaks linking the kernel with lld. Create the symlinks.
cd "${DEPENDS_DIR}/SDKs/${OPENBSD_SDK_BASENAME}/usr/lib"
ln -sf libc++abi.so.*.* libc++abi.so
ln -sf libc++.so.*.* libc++.so
ln -sf libpthread.so.*.* libpthread.so
)
fi

echo -n "done" > "${CFG_DONE}"
6 changes: 4 additions & 2 deletions ci/test/03_test_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ fi

if [[ "${RUN_IWYU}" == true ]]; then
# TODO: Consider enforcing IWYU across the entire codebase.
FILES_WITH_ENFORCED_IWYU="/src/(((bench|crypto|index|kernel|primitives|script|univalue/(lib|test)|util|zmq)/.*|common/license_info|node/(blockstorage|interfaces|miner|mining_args|utxo_snapshot)|rpc/mining|clientversion|core_io|signet|init)\\.cpp)"
FILES_WITH_ENFORCED_IWYU='/src/((bench|common|consensus|crypto|index|kernel|primitives|script|univalue/(lib|test)|util|zmq)/.*|node/(blockstorage|interfaces|miner|mining_args|utxo_snapshot)|rpc/mining|clientversion|core_io|signet|init)\.cpp'
jq --arg patterns "$FILES_WITH_ENFORCED_IWYU" 'map(select(.file | test($patterns)))' "${BASE_BUILD_DIR}/compile_commands.json" > "${BASE_BUILD_DIR}/compile_commands_iwyu_errors.json"
jq --arg patterns "$FILES_WITH_ENFORCED_IWYU" 'map(select(.file | test($patterns) | not))' "${BASE_BUILD_DIR}/compile_commands.json" > "${BASE_BUILD_DIR}/compile_commands_iwyu_warnings.json"

Expand All @@ -247,7 +247,9 @@ if [[ "${RUN_IWYU}" == true ]]; then
-p "${BASE_BUILD_DIR}" "${MAKEJOBS}" \
-- -Xiwyu --cxx17ns -Xiwyu --mapping_file="${BASE_ROOT_DIR}/contrib/devtools/iwyu/bitcoin.core.imp" \
-Xiwyu --max_line_length=160 \
-Xiwyu --check_also="*/primitives/*.h" \
-Xiwyu --check_also='*/common/types\.h' \
-Xiwyu --check_also='*/consensus/*\.h' \
-Xiwyu --check_also='*/primitives/transaction_identifier\.h' \
2>&1 || true
} | tee /tmp/iwyu_ci.out
python3 "/include-what-you-use/fix_includes.py" --nosafe_headers < /tmp/iwyu_ci.out
Expand Down
3 changes: 1 addition & 2 deletions cmake/introspection.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ endif()
# Even though ::system is part of the standard library, we still check
# for it, to support building targets that don't have it, such as iOS.
check_cxx_symbol_exists(std::system "cstdlib" HAVE_STD_SYSTEM)
check_cxx_symbol_exists(::_wsystem "stdlib.h" HAVE__WSYSTEM)
if(HAVE_STD_SYSTEM OR HAVE__WSYSTEM)
if(HAVE_STD_SYSTEM)
set(HAVE_SYSTEM 1)
endif()

Expand Down
19 changes: 0 additions & 19 deletions cmake/module/GenerateSetupNsi.cmake

This file was deleted.

35 changes: 12 additions & 23 deletions cmake/module/Maintenance.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,32 +19,21 @@ function(setup_split_debug_script)
endfunction()

function(add_windows_deploy_target)
configure_file(${PROJECT_SOURCE_DIR}/cmake/script/GenerateWindowsInstaller.cmake.in ${PROJECT_BINARY_DIR}/GenerateWindowsInstaller.cmake USE_SOURCE_PERMISSIONS @ONLY)
if(MINGW AND TARGET bitcoin AND TARGET bitcoin-qt AND TARGET bitcoind AND TARGET bitcoin-cli AND TARGET bitcoin-tx AND TARGET bitcoin-wallet AND TARGET bitcoin-util AND TARGET test_bitcoin)
find_program(MAKENSIS_EXECUTABLE makensis)
if(NOT MAKENSIS_EXECUTABLE)
add_custom_target(deploy
COMMAND ${CMAKE_COMMAND} -E echo "Error: NSIS not found"
)
return()
endif()

# TODO: Consider replacing this code with the CPack NSIS Generator.
# See https://cmake.org/cmake/help/latest/cpack_gen/nsis.html
include(GenerateSetupNsi)
generate_setup_nsi()
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.exe
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/release
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-qt> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-qt>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoind> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoind>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-cli> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-cli>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-tx> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-tx>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-wallet> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-wallet>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-util> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-util>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:test_bitcoin> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:test_bitcoin>
COMMAND ${MAKENSIS_EXECUTABLE} -V2 ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.nsi
VERBATIM
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E make_directory release
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin> -o release/$<TARGET_FILE_NAME:bitcoin>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-qt> -o release/$<TARGET_FILE_NAME:bitcoin-qt>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoind> -o release/$<TARGET_FILE_NAME:bitcoind>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-cli> -o release/$<TARGET_FILE_NAME:bitcoin-cli>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-tx> -o release/$<TARGET_FILE_NAME:bitcoin-tx>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-wallet> -o release/$<TARGET_FILE_NAME:bitcoin-wallet>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-util> -o release/$<TARGET_FILE_NAME:bitcoin-util>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:test_bitcoin> -o release/$<TARGET_FILE_NAME:test_bitcoin>
COMMAND ${CMAKE_COMMAND} -D BIN_DIR=release -D LIBEXEC_DIR=release -P GenerateWindowsInstaller.cmake
)
add_custom_target(deploy DEPENDS ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.exe)
endif()
Expand Down
40 changes: 40 additions & 0 deletions cmake/script/GenerateWindowsInstaller.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Copyright (c) 2026-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit/.

find_program(MAKENSIS_EXECUTABLE makensis REQUIRED)

# Project variables.
set(CLIENT_NAME "@CLIENT_NAME@")
set(CLIENT_VERSION_MAJOR @CLIENT_VERSION_MAJOR@)
set(CLIENT_VERSION_MINOR @CLIENT_VERSION_MINOR@)
set(CLIENT_VERSION_BUILD @CLIENT_VERSION_BUILD@)
set(CLIENT_VERSION_STRING "@CLIENT_VERSION_STRING@")
set(CLIENT_URL "@PROJECT_HOMEPAGE_URL@")
set(COPYRIGHT_YEAR "@COPYRIGHT_YEAR@")
set(COPYRIGHT_HOLDERS_FINAL "@COPYRIGHT_HOLDERS_FINAL@")
set(abs_top_srcdir @PROJECT_SOURCE_DIR@)
set(EXEEXT @CMAKE_EXECUTABLE_SUFFIX@)

# Script variables.
cmake_path(ABSOLUTE_PATH BIN_DIR NORMALIZE)
cmake_path(ABSOLUTE_PATH LIBEXEC_DIR NORMALIZE)

# Other variables required by the `setup.nsi.in` template.
set(CLIENT_TARNAME "bitcoin")
set(BITCOIN_WRAPPER_NAME "bitcoin")
set(BITCOIN_GUI_NAME "bitcoin-qt")
set(BITCOIN_DAEMON_NAME "bitcoind")
set(BITCOIN_CLI_NAME "bitcoin-cli")
set(BITCOIN_TX_NAME "bitcoin-tx")
set(BITCOIN_WALLET_TOOL_NAME "bitcoin-wallet")
set(BITCOIN_TEST_NAME "test_bitcoin")
configure_file(@PROJECT_SOURCE_DIR@/share/setup.nsi.in ${CMAKE_CURRENT_LIST_DIR}/bitcoin-win64-setup.nsi
USE_SOURCE_PERMISSIONS @ONLY
)

execute_process(
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
COMMAND ${MAKENSIS_EXECUTABLE} -V2 bitcoin-win64-setup.nsi
COMMAND_ERROR_IS_FATAL ANY
)
7 changes: 5 additions & 2 deletions contrib/guix/guix-attest
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#!/usr/bin/env bash
export LC_ALL=C
set -e -o pipefail
# Copyright (c) The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit.
export LC_ALL=C.UTF-8
set -o errexit -o pipefail

# Source the common prelude, which:
# 1. Checks if we're at the top directory of the Bitcoin Core repository
Expand Down
Loading
Loading