(+) #35765 willcl-ark depends: keep local source archives in WORK_PATH P1 · bug fix Ready 1 Strong 10 Prevent depends from silently building the wrong source tree when checkouts share a source cache Isolate local package archives per checkout while preserving shared downloads across builds P1 because it fixes silent build corruption when multiple checkouts share a cache directory Protects release build integrity in Guix where clamped timestamps guarantee collisions Strong support for adopting the per-checkout work directory approach (ryanofsky) Additional Guix testing and review from another contributor requested (ryanofsky) 10 lines added or modified outside tests 0 lines added or modified in tests 6 lines removed in total 3 files, 1 commits (+) #36293 l0rinc contrib: exclude inactive keys from the binary quorum by default P1 · bug fix Ready 1 Strong 0 + 125 tests Prevent release binary verification from accepting expired or revoked keys toward the signature quorum Avoids reporting releases as verified when signatures come only from compromised or defunct keys Allows opt-in inclusion of expired keys when verifying historical releases P1 after comparing with the other PRs here (assessed alone as P2): Raised to P1: correctness of release-signature verification is the category's top concern, and accepting revoked keys toward the quorum is a disclosed security defect on par with #35765 's silent wrong-source builds P2 because release verification could pass using revoked keys, weakening release integrity guarantees Prevents false-positive verification runs when all provided signatures are compromised Ready to review; all reviewer concerns have been addressed in pushed updates Strong support after testing verification on releases 22.1 through 31.1 (willcl-ark) Concerns about verifying older releases resolved by adding an opt-in expired key flag (sedited, willcl-ark) Agreed to leave signature de-duplication to a follow-up (willcl-ark) 0 lines added or modified outside tests 125 lines added or modified in tests 15 lines removed in total 3 files, 5 commits (+) #25573 fanquake guix: produce a `-static-pie` bitcoind P2 · platform fix Ready 0 Mild 13 + 243 tests Make Linux release binaries portable across non-glibc distributions and systems with older glibcs Allow bitcoind and CLI tools to run on platforms like Alpine and NixOS without compatibility shims P2 because it enables release binaries to run natively on distributions like Alpine and NixOS Older Linux installations and container environments no longer require glibc workarounds Review is worthwhile now with no known blockers or invalidating changes Broad testing confirmation across Alpine, NixOS, and older Linux distributions (0xB10C, dergoegge, jsarenik) Support because static glibc is more palatable and auditable than switching to musl (theuni) Unaddressed objection: dynamic NSS resolvers break when loading host libraries, no author reply (luke-jr) Open question on whether static binaries should drop fortify checks (willcl-ark) 13 lines added or modified outside tests 243 lines added or modified in tests 7 lines removed in total 8 files, 6 commits (+) #36534 fametrano build: pass hardening flags to secp256k1 P2 · bug fix Ready 0 Crickets 27 Pass compiler and linker hardening flags to the secp256k1 subtree build Prevent bitcoind from losing hardware control-flow protections due to unhardened secp256k1 objects P2 because it fixes missing hardening flags in the secp256k1 subtree build Prevents linkers from dropping binary-wide hardware control-flow protections across the entire executable No review verdicts recorded No substantive evaluation either way yet Asked for earlier feedback to be addressed, which the author pushed a fix for (hebasto) 27 lines added or modified outside tests 0 lines added or modified in tests 20 lines removed in total 2 files, 1 commits (+) #31507 hebasto build: Use clang-cl to build on Windows natively P2 · platform fix Ready 1 (+1) Strong 222 Eliminate MSVC-specific compiler bugs and workaround maintenance on native Windows builds Speed up native Windows CI runs and produce substantially faster Windows binaries P2 because native Windows CI build times drop by 38% while fixing multiple compiler bugs Significantly improves generated Windows binary performance, raising block connection throughput by 55-60% Unblocks future hardware-accelerated inline assembly optimizations on Windows Strong support with no open objections (maflcko, hodlinator) Support for better compiler compatibility and potential codegen gains (maflcko) Verified native Windows builds and binary execution on Visual Studio 18.7.0 (hodlinator) Maintenance objection resolved by dropping MSVC support entirely instead of adding a second compiler (fanquake) Concept approval without stated reasons (sedited) 222 lines added or modified outside tests 0 lines added or modified in tests 241 lines removed in total 22 files, 14 commits (+) #36554 hebasto cmake: Reject warnings in `check_cxx_source_compiles_with_flags()`, use `-msse4.1` for SHA-NI P2 · bug fix Ready 1 Strong 20 Prevent build failures and falsely disabled CPU optimizations when compiling with strict warning flags Ensure CMake feature detection succeeds across supported compilers including clang-cl P2 after comparing with the other PRs here (assessed alone as P3): Raised to P2 and moved up from 37: stated prerequisite for the clang-cl switch (#31507 ) and fixes SHA-NI being silently disabled under -Werror, so it cannot sit far below the work it unblocks P3 because it fixes configure-time false negatives when users or CI pass warning flags like -Werror Prevents hardware acceleration features from being silently disabled during CMake introspection Resolves clang-cl compiler rejection of SHA-NI flags Verified by testing SHA-NI detection and multi-platform Guix builds against configuration logs (hodlinator) Concept approval without stated reasons (fanquake) 20 lines added or modified outside tests 0 lines added or modified in tests 14 lines removed in total 6 files, 7 commits (+) #36589 hebasto [32.x] Guix related backports P2 · platform fix Ready 0 Crickets 4,071 + 682 tests Re-enables deterministic release builds natively on RISC-V hardware for the 32.x branch Fixes Guix build failures under Python 3.12 for release builders P2 because it restores broken deterministic release builds on RISC-V hardware Fixes supported platform build failures and Python 3.12 compatibility on the 32.x branch Ready for review, with nothing known that would invalidate a review now No substantive review comments yet Noted this backport will not be included in 32.1 (fanquake) Approval without rationale from an account with no project history is omitted (StephenChi-hi) 4,071 lines added or modified outside tests 682 lines added or modified in tests 11 lines removed in total 4 files, 4 commits (+) #36082 willcl-ark ci: add Guix builds to CI P2 · test coverage Ready 0 Strong 399 + 11 tests Test Guix release binaries continuously in CI instead of waiting for manual builds or release time Catch broken build manifests, codesign dependencies, and toolchain bugs before changes merge P2 because testing release packages continuously catches manifest and toolchain regressions early Compiling in a release context catches issues currently missed and validates static toolchain work Reviewing now is worthwhile with no blocking issues Strong support for catching build and release issues early in CI (fanquake) Concept approval without stated reasons (sedited) Withdrew objections after author agreed to drop the problematic commit (hebasto) Confirmed no objection after suggesting running tests on the binaries (maflcko) 399 lines added or modified outside tests 11 lines added or modified in tests 2 lines removed in total 7 files, 6 commits (+) #35774 willcl-ark ci: test cross-built macos arm64 binaries P2 · test coverage Ready 0 Strong 127 Catch platform-specific runtime defects before release by testing cross-built macOS arm64 binaries in CI P2 because it adds native CI execution for release-like cross-compiled macOS arm64 builds Prevents platform-specific runtime failures from going undetected before release Ready for review following recent rebase Concept support to test release-like cross-built macOS binaries natively in CI (fanquake) Resolved prior questions regarding determinism, environment setup, and cache usage (maflcko) 127 lines added or modified outside tests 0 lines added or modified in tests 6 lines removed in total 3 files, 3 commits (+) #36592 hebasto build: Bump macOS SDK version to 15.0 P2 · unblocks #36593 Ready 1 Positive 1 + 1 tests Raise the pinned macOS SDK version in the build system from 14.0 to 15.0 Unblock updating Qt in depends to Qt 6.12 LTS P2 after comparing with the other PRs here (assessed alone as P3): Raised to P2 and moved up from 39: direct prerequisite for the Qt 6.12 update (#36593 ) and cannot be banded below the PR it blocks P3 because it is a prerequisite build change unblocking the Qt 6.12 upgrade in #36593 Touches only macOS SDK configuration and symbol check tooling without changing deployment target Concept approval without substantive review reasons (maflcko) Unanswered question on where the accompanying deployment target bump will land (fanquake) 1 lines added or modified outside tests 1 lines added or modified in tests 2 lines removed in total 2 files, 1 commits (+) #36593 hebasto depends: Update Qt to 6.12.0 P2 · platform fix Review #36592 first 0 Crickets 99 + 2 tests Provide upstream bug fixes and official macOS 26 support for GUI builds Retire downstream Qt patches that are now included upstream P2 because it provides upstream bug fixes and official macOS 26 support for release binaries Eliminates several downstream Qt maintenance patches that are now part of upstream No review verdicts recorded No substantive feedback either way yet Questioned whether Qt already supported macOS 26 (fanquake) Asked whether bypassing required xkbcommon version is safe, awaiting author inquiry (fanquake) 99 lines added or modified outside tests 2 lines added or modified in tests 840 lines removed in total 24 files, 2 commits (+) #36042 maflcko build: Bump g++ minimum supported version to 13 P2 · cleanup Ready 0 Positive 23 + 30 tests Enable standard C++20 text formatting across the codebase and pave the way for eventual C++23 adoption Ensure developers and CI environments build against modern compiler toolchains P2 because it unlocks standard C++20 text formatting and unblocks future migration to C++23 Provides broad maintainability leverage across developer builds and continuous integration Ready for review, with nothing known that would invalidate it Positive sentiment with concept approvals and no remaining objections Concept approval without stated reasons (hebasto, stickies-v) Suggested jumping directly to GCC 14 due to a capnproto dependency bug (hebasto) 23 lines added or modified outside tests 30 lines added or modified in tests 21 lines removed in total 9 files, 6 commits (+) #36036 maflcko build: Bump clang minimum supported version to 19 P2 · cleanup Ready 1 Positive 17 + 4 tests Bump the minimum supported Clang version to 19 across the build system and CI Unblocks C++20 CTAD on alias templates and removes obsolete compiler workarounds P2 after comparing with the other PRs here (assessed alone as P3): Raised to P2 and moved up from 33: same consequence as the GCC-13 bump #36042 (compiler minimum transition) and the other half of the prerequisite for C++23 work in #36033 P3 because it is routine toolchain maintenance without an urgent deprecation deadline Cleans up legacy compiler workarounds and enables modern C++20 features for developers Support without stated objections to raising the minimum Clang version Approval of the changes across updates (hebasto) Concept approval noting switching compiler versions causes no issue (winterrdog) Concept approval without stated reasons (l0rinc) Open suggestion to update vecdeque.cpp while here (fanquake) 17 lines added or modified outside tests 4 lines added or modified in tests 26 lines removed in total 8 files, 3 commits (+) #36033 maflcko [wip,nomerge,rfc] build: Require C++23 compiler P2 · unblocks #34979 Needs rebase 0 Positive 67 + 34 tests Eliminate accumulating in-tree polyfills and workarounds by raising compiler requirements to C++23 Unblock downstream dependencies and future C++23 language features across the project P2 because it unblocks features tracked in #34979 and dependent projects like libmultiprocess Removes accumulating toolchain workarounds across build environments Ranking pass: Placed below its two prerequisite bumps (#36042 , #36036 ) since progress depends on them landing first CI is failing, check whether the failure is from this PR before deep review Concept approval without stated reasons (l0rinc) Informational observation on include heuristics with no objections raised (hebasto) 67 lines added or modified outside tests 34 lines added or modified in tests 409 lines removed in total 56 files, 9 commits (+) #36615 marcofleon guix: add --no-same-owner to codesign.sh TAR_OPTIONS P3 · bug fix Ready 0 Positive 0 + 1 tests Prevent archive extraction failures when release signers run guix-codesign inside container environments P3 because it fixes archive extraction failures for release signers running inside containers The impact is confined to release codesigning scripts and does not alter reproducible build outputs Ranking pass: Moved up from 40: blocks release codesigners running guix-codesign in containers, a concrete release-process failure rather than hygiene Ready to review, with nothing known that would invalidate a review Concept approval without stated reasons (fanquake) Suggests extracting the variable into a shared script to avoid repetition (willcl-ark) 0 lines added or modified outside tests 1 lines added or modified in tests 1 lines removed in total 1 files, 1 commits (+) #35855 fanquake guix: update time-machine P3 · platform fix Ready 0 Blocked 0 + 27 tests Update the pinned Guix build environment to newer upstream revisions and toolchains Keeps release builds current with newer compilers and removes custom package overrides P3 because updating release toolchains is valuable maintenance but deferrable without an impending release Provides access to newer compilers and CMake while resolving upstream module deprecation warnings No review verdicts recorded Verified by testing clean Guix builds with matching output hashes on x86_64 (0xB10C, willcl-ark) Unaddressed objection: Guix fails on riscv64 with an unbound variable error (maflcko) Unaddressed objection: build fails on aarch64 hosts due to missing system headers (janb84, hebasto) Unaddressed objection: python-elfesteem fails due to a missing setuptools dependency (willcl-ark) 0 lines added or modified outside tests 27 lines added or modified in tests 31 lines removed in total 8 files, 6 commits (+) #36270 fanquake build: ensure release binaries don't contain `depends` references P3 · cleanup Ready 0 Crickets 4 + 7 tests Keep build-host paths out of distributed Linux release binaries Avoids debug symbols and runtime fallbacks referencing paths that do not exist on user systems P3 because it improves release binary hygiene without fixing an active build breakage Removes build-host references and ensures automated checks catch future regressions Ready for review No blockers or pending changes noted No review verdicts recorded No substantive reviews or comments yet No reviewers have weighed in on the changes 4 lines added or modified outside tests 7 lines added or modified in tests 2 lines removed in total 7 files, 4 commits (+) #36106 ryanofsky bitcoin wrapper: respect CMAKE_INSTALL_BINDIR/LIBEXECDIR P3 · platform fix Ready 1 Strong 42 + 71 tests Allow the bitcoin wrapper tool to locate internal executables when installed with custom directory layouts Fix immediate failure on distributions like Arch Linux where CMAKE_INSTALL_LIBEXECDIR is set to lib P3 because it fixes install path handling for distros customizing libexec paths Resolves missing binary lookup failures on platforms setting CMAKE_INSTALL_LIBEXECDIR to lib Substantive support with all raised issues addressed Verified fix for custom layouts and approved the approach (hebasto) Verified the fix for the distribution issue and confirmed valgrind fix (cyb3ralbert) 42 lines added or modified outside tests 71 lines added or modified in tests 6 lines removed in total 6 files, 2 commits (+) #35068 ryanofsky depends: fix cmake package discovery for depends-built packages P3 · bug fix Waiting on author 0 Mild 1 Ensure CMake-based depends packages link against depends-built dependencies rather than host system versions Avoid compilation failures caused by library version mismatches when host packages are present P3 because it fixes depends build failures when conflicting packages are installed on the host system Prevents version mismatch errors in CMake-based depends packages without wider functional impact Author silent for 162 days after reviewer feedback A fresh review will likely wait a long time for a response No review verdicts recorded Unaddressed objection: appending external paths risks depends isolation and consistency (purpleKarrot) Concern that preserving externally set search paths undermines depends isolation (hebasto) Maintainers discussed closing or drafting the PR due to inactive review responses (sedited, maflcko) 1 lines added or modified outside tests 0 lines added or modified in tests 1 lines removed in total 1 files, 1 commits (+) #36556 xyzconstant depends: fix non-atomic reads in capnp debug assertions P3 · bug fix Ready 1 Strong 174 Stop false-positive data races in Cap'n Proto debug assertions during ThreadSanitizer runs Prevent CI test failures in unoptimized multiprocess builds P3 because it resolves false-positive ThreadSanitizer failures in Cap'n Proto debug assertions Unblocks multiprocess CI testing across threads without altering production code Strong support with no open objections (Sjors) Verified patches match upstream and confirmed ThreadSanitizer requires both (Sjors) Resolved scope question confirming extra test backports are not needed (Sjors) 174 lines added or modified outside tests 0 lines added or modified in tests 1 lines removed in total 3 files, 1 commits (+) #32387 ryanofsky ipc: add windows support P3 · platform fix CI failing 0 Positive 2,541 + 189 tests Allow Bitcoin Core multiprocess mode and IPC features to build and run on Windows Enable testing and deployment of separated process binaries on Windows platforms P3 because it updates Windows resource generation and build configurations for IPC Replaces static resource files with a dynamic CMake generator across all targets CI is failing so check whether the failure is caused by this PR before a deep review Concept approval without stated reasons (hebasto) Suggested testing compatibility with clang-cl (Sjors) 2,541 lines added or modified outside tests 189 lines added or modified in tests 880 lines removed in total 102 files, 33 commits (+) #31349 vasild ci: detect outbound internet traffic generated while running tests P3 · test coverage Author silent 136d 1 (+2) Mild 0 + 77 tests Prevent tests in CI from making unexpected outbound internet connections or leaking DNS queries Keep test runs hermetic to avoid leaking environment data or causing flakiness P3 because automated checks catch unintended external network queries during CI runs Enforces CI hermeticity across all test stages without affecting core build outputs Ranking pass: Moved down from 12: valuable CI hermeticity check but no observed incident, so it ranks below concrete release and depends fixes Author has been inactive for 98 days Review may wait on the author to address open feedback Broad concept approval with multiple tested ACKs for blocking network leaks (0xB10C, Sjors, fjahr) Code review approval on the latest revision (ryanofsky) Unaddressed objection: packet direction flag is a no-op when reading capture files (fjahr) Thinks the direction flag bug is harmless and would be good to address (ryanofsky) 0 lines added or modified outside tests 77 lines added or modified in tests 2 lines removed in total 6 files, 1 commits (+) #36147 willcl-ark ci: add [free|open|net]BSD ci test jobs P3 · test coverage Needs rebase 0 Strong 117 + 105 tests Run CI tests on BSD platforms to catch platform-specific regressions before merge Prevent recurring BSD breakage that currently requires reactive fixes after nightly runs P3 because catching BSD regressions before merge prevents broken master builds and reactive fixes The benefit is limited to BSD platform support rather than broader user-facing functionality Ranking pass: Moved down from 13: scope still unsettled (likely FreeBSD only) and benefit is limited to BSD platform support Review is worthwhile now as the rebase conflict with master is purely mechanical Concept approval for running tests on at least one BSD platform (hebasto) Concern that brittle nested VM tests could cause frequent false-positive CI failures is answered (maflcko) 117 lines added or modified outside tests 105 lines added or modified in tests 141 lines removed in total 14 files, 4 commits (+) #35713 rustaceanrob Remove boost as a unit test runner P3 · cleanup Ready 0 Mild 3 + 1,433 tests Eliminate external Boost.Test dependencies and packaging overhead for unit tests Provide clearer failure diagnostics for test authors via automatic expression decomposition Make unit tests easier to run, maintain, and integrate with development tooling P3 because it reduces packaging friction by dropping Boost.Test from depends and Guix Simplifies dependency management and improves tooling integration with clang-tidy and IWYU It is deferrable maintenance rather than a fix for broken builds or release integrity Ready for review The latest push addressing string formatting and macros is ready for reviewer feedback Concept approval because an in-house runner lowers test barriers and enables CI concurrency (josibake) Concept approval after verifying the test suite passes and scripted diffs reproduce (jeanpablojp) Answered objection regarding static assertions for unprintable optionals awaits reviewer reply (jeanpablojp) Open question on whether failure-path tests for the framework belong in a follow-up (jeanpablojp) 3 lines added or modified outside tests 1,433 lines added or modified in tests 218 lines removed in total 167 files, 9 commits (+) #36587 hebasto qa: Fix `interface_ipc*.py` on NetBSD and prevent future regressions P3 · platform fix Ready 0 Blocked 0 + 59 tests Fix interface IPC functional test failures on NetBSD Catch file descriptor budget regressions in per-PR CI rather than waiting for nightly runs P3 because it adds FD limits to macOS CI to detect platform-specific failures during PR runs Improves CI coverage for a recurring failure mode without affecting release integrity Ranking pass: Moved up from 38: fixes an actual platform test failure on NetBSD plus CI enforcement, stronger than nearby hygiene items Concept approval without stated reasons (Sjors) Unaddressed objection: wrapper script loses coverage for infinite file descriptors (Sjors) Suggested setting pipefail and nounset in the wrapper script (maflcko) 0 lines added or modified outside tests 59 lines added or modified in tests 14 lines removed in total 5 files, 3 commits (+) #35167 ajtowns Convert check-deps.sh to python P3 · platform fix Author silent 186d 1 Blocked 5 + 291 tests Automate library dependency checks by parsing design documentation directly Prevent false passes on macOS and eliminate manual tracking of transitive dependencies P3 because it fixes macOS symbol parsing bugs that cause silent passes in CI Improves CI linting reliability when validating library boundaries Needs rebase and the author has been silent for over six months Wait for the author to address blocking design objections Broad concept support for parsing dependencies automatically from design docs Unaddressed objection: adding consensus-to-util dependency breaks library modularity (ryanofsky) Unaddressed objection: moving init/common.cpp prevents logging in auxiliary tools (ryanofsky) Unaddressed objection: script warns rather than failing CI when targets do not build (ryanofsky) Approval for improved readability and fixing macOS verification bugs (sedited, janb84) 5 lines added or modified outside tests 291 lines added or modified in tests 219 lines removed in total 5 files, 4 commits (+) #36673 willcl-ark [DRAFT] ci: Monitor Windows signing certificate expiry P3 · new feature Ready 0 Strong 76 Alert maintainers when the Windows code signing certificate is expiring or expired Prevents expedited or point releases from being delayed by an unexpected expired certificate P3 because it automates certificate monitoring to avoid surprise release blockers Replaces manual tracking with weekly alerts so keys are always ready for urgent releases Provides clear operational value for maintainers while remaining reasonably deferrable No review verdicts recorded Strong support for automated monitoring over manual release checks (fanquake) Emphasizes certificates must always work for expedited and point releases (fanquake) Open suggestion to make the check script standalone so it can run locally (maflcko) 76 lines added or modified outside tests 0 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #36167 fanquake [RFC] Enable `-Wunused` P3 · cleanup CI failing 0 Mild 548 + 59 tests Catch unused variables and parameters automatically during the build Prevent silent accumulation of dead code and subtle bugs caused by forgotten parameters P3 because compiler warnings prevent dead code accumulation and catch accidentally forgotten parameters Hygiene improvement across the codebase is valuable but reasonably deferrable Ranking pass: Moved up from 35: cited as catching a real bug class (#36137 ), unlike the purely cosmetic warning flags below CI is failing so verify whether the failure is caused by this PR before doing a deep review No review verdicts recorded Objection that removing parameters like self causes unnecessary churn when they should be used (maflcko) Suggested splitting finer-grained warning flags into separate PRs, which the author addressed (maflcko) 548 lines added or modified outside tests 59 lines added or modified in tests 649 lines removed in total 160 files, 8 commits (+) #28690 sedited build: Introduce internal kernel library P3 · cleanup Waiting on author 2 (+2) Mild 114 + 12 tests Clarifies internal library boundaries by giving the kernel and its utilities dedicated build targets Prevents node targets and the standalone kernel library from duplicating kernel source lists P3 because it improves CMake target structure and reduces symbol leakage across targets It refactors internal build definitions without fixing build breakages or platform failures Ranking pass: Moved down from 14: build-target restructuring with no stated breakage fixed; deferrable relative to concrete platform and release fixes Unaddressed objection: consumer-oriented targets encourage unnatural libraries (stickies-v) Support for improved library boundaries and successful Guix builds (hebasto, janb84, w0xlt) Verified by running bindings in an external test application (Sjors) Verified shared library builds and source reuse under CMake (BrandonOdiwuor) 114 lines added or modified outside tests 12 lines added or modified in tests 122 lines removed in total 6 files, 2 commits (+) #35072 hebasto cmake: Remove optional definitions from `bitcoin-build-config.h` P3 · speedup Author silent 156d 0 (+1) -1 Mild 11 + 1 tests Avoid full tree rebuilds when reconfiguring build options like GUI or wallet support Ensure only newly enabled targets recompile rather than the entire codebase P3 because it reduces developer build times when reconfiguring options like GUI or wallet support Prevents unnecessary full tree recompilations by isolating feature flags to relevant targets Ranking pass: Moved down from 24: developer rebuild-time improvement and stated prerequisite for #29914 , but no user-facing consequence Author silent for 118 days after putting PR in draft status Needs rebase and CI is failing Concept NACK: undermines purpose of config header triggering rebuilds without a broad design (fanquake) Unaddressed objection: scripts and tooling lose a single source of truth for enabled features (151henry151) Verified by testing that non-GUI targets do not rebuild when enabling the GUI (BrandonOdiwuor) 11 lines added or modified outside tests 1 lines added or modified in tests 61 lines removed in total 25 files, 5 commits (+) #33145 m3dwards CI: silent merge check P3 · new feature Waiting on author 0 Blocked 412 Automatically catch logical merge conflicts between open pull requests and master before merge Saves maintainers and reviewers manual effort testing PRs against updated master P3 because it adds a scheduled CI check to catch logical merge conflicts before merging It improves maintainer workflow but is a non-critical CI enhancement Ranking pass: Moved down from 22: maintainer-workflow convenience, no build or release correctness impact Author has been silent for 112 days; reviews may wait a long time for a response Approach approval with open objections on draft filtering and SHA races (fjahr) Approval of the redesigned scheduled workflow (maflcko) Unaddressed objection: GitHub pulls endpoint ignores the draft query parameter (fjahr) Unaddressed objection: head SHA race condition if a force push occurs during a run (fjahr) 412 lines added or modified outside tests 0 lines added or modified in tests 0 lines removed in total 3 files, 1 commits (+) #36679 Sjors ci: enable IPC in the i686 job P3 · test coverage Ready 1 Strong 2 + 4 tests Exercise IPC functionality on 32-bit x86 in continuous integration Catches compiler ABI issues that previously went untested P3 because it adds 32-bit x86 CI coverage for IPC without fixing an active build break Catches platform-specific compiler ABI issues earlier in the build pipeline Ranking pass: Moved up from 41: adds 32-bit ABI coverage for IPC where failures have previously occurred Substantive support after confirming CI coverage history (maflcko) Nonblocking concern on whether supporting 32-bit architectures is worth project effort (l0rinc) Requested feedback on 32-bit issues from ryanofsky (fanquake) 2 lines added or modified outside tests 4 lines added or modified in tests 5 lines removed in total 2 files, 1 commits (+) #36060 151henry151 build: require KJ exception support for IPC P3 · platform fix Author silent 69d 0 Crickets 179 Prevent obscure compilation failures by checking libkj exception support at configure time when IPC is on Reduce build friction on systems where compiler capabilities are misdetected P3 because it catches compiler and library misconfigurations during CMake configuration IPC remains an optional build target, so the build fix affects only a subset of builds Ready for review now with nothing known that would invalidate a review No review verdicts recorded No substantive comments or reviews yet 179 lines added or modified outside tests 0 lines added or modified in tests 0 lines removed in total 12 files, 3 commits (+) #35356 maflcko ci: Test build dir with spaces P3 · test coverage Author silent 76d 0 Mild 13 Catch path-quoting and subprocess bugs on Windows by testing builds in directory paths with spaces P3 because it exercises Windows path-handling and quoting logic during CI builds Helps catch platform-specific build regressions early CI is failing, check whether the failure is caused by this PR before conducting a deep review Concept approval without stated reasons (hebasto) Objection: wallet_signer functional test fails on Windows paths with spaces (fanquake) Author noted the failure is an expected reproduction of an existing bug, awaiting objector reply 13 lines added or modified outside tests 0 lines added or modified in tests 4 lines removed in total 1 files, 2 commits (+) #35197 fanquake guix: add -Wl,--icf=safe to darwin build P3 · speedup Ready 0 (+1) Blocked 4 Reduce macOS release binary download sizes and disk footprint Eliminates duplicate compiled functions across Darwin binaries P3 because it reduces macOS release binary sizes by roughly 5 percent Saves around 0.5 MB on bitcoind and 1.3 MB on bitcoin-qt for users Useful optimization for Darwin packages, but fixes no build failure or CI issue Ranking pass: Moved down from 26: binary-size optimization only, ranks with the other size-reduction PRs Ready for review Nothing known that would invalidate a review now Unaddressed objection: folds address-taken functions on Darwin without -faddrsig (151henry151) Contested objection: safe folding on Mach-O breaks function pointer uniqueness (Sjors) Open objection: flag probe order causes safe to override safe_thunks (hebasto) Support for roughly 5 percent smaller Darwin release binaries (davidgumberg) Concept approval on identical code folding where possible (hebasto) 4 lines added or modified outside tests 0 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #36709 jespada guix: compute --build triplet when lowering, not at load time P3 · platform fix Ready 0 Positive 0 + 4 tests Fix Guix build failures when building under foreign architecture emulation using the system flag Prevent cross toolchains from configuring with mismatched build triplets captured from the host P3 because it resolves toolchain build failures when running Guix under foreign architecture emulation Benefits developers testing cross-architecture builds without changing native Guix release outputs Ranking pass: Moved up from 43: fixes an actual Guix build failure under foreign-architecture emulation Early positive reception with no open objections Concept approval without stated reasons (hebasto) Clarified question about the reproduction setup and motivation (sedited) 0 lines added or modified outside tests 4 lines added or modified in tests 4 lines removed in total 1 files, 1 commits (+) #36708 jespada guix: map the whole DISTSRC in -fdebug-prefix-map P3 · bug fix Ready 0 Crickets 0 + 4 tests Make all source paths in Guix debug symbols uniformly relative to the repository root Fixes source directory mapping issues in debuggers for generated files in the build tree P3 because it fixes inconsistent paths in debug symbols rather than core build functionality Removes friction when debugging Guix release binaries with gdb Ranking pass: Moved up from 42: grouped with the other debug-path/release-binary path fix (#36270 ) No review verdicts recorded No reviews or comments yet from other contributors Author provided initial Guix build verification hashes 0 lines added or modified outside tests 4 lines added or modified in tests 4 lines removed in total 4 files, 1 commits (+) #36193 fanquake guix: introduce a minimal `linux-base-gcc` variant P3 · cleanup Ready 0 Positive 22 + 13 tests Reduce static non-GUI Linux release binary sizes by stripping unused standard library components Saves roughly half a megabyte across binaries like bitcoind and bitcoin-cli P3 because reducing release binary sizes by roughly half a megabyte is a deferrable optimization The benefit is modest and does not affect runtime performance or functionality Concept approval without stated reasons (hebasto) Open question on whether disabling features on gcc-cross-sans-libc is needed (hebasto) Suggested keeping internal toolchain symbols unexported and checking Boost macro side effects (hebasto) Verified matching Guix build outputs (willcl-ark, rustaceanrob) 22 lines added or modified outside tests 13 lines added or modified in tests 2 lines removed in total 4 files, 5 commits (+) #34721 willcl-ark build: install shell completions via cmake P3 · new feature Ready 2 (+2) Strong 23 Install shell completion scripts automatically during CMake installations Spares packagers and command line users from manually copying completion files into system directories P3 because it improves packaging convenience without altering core build behavior It does not affect platform build support or core release integrity Ranking pass: Moved down from 23: packaging convenience with no correctness or platform consequence Ready for review All requested changes have been addressed and nothing invalidates a review now Strong support across multiple Linux distributions Verified prefix install, staging, flag toggling, and completion behavior (151henry151) Verified installation on Arch Linux with completions disabled (caesrcd) Code review approval endorsing the CMake structure after configure checks were updated (ryanofsky) Prior objection resolved by adding independent toggle options for each shell (luke-jr) 23 lines added or modified outside tests 0 lines added or modified in tests 8 lines removed in total 4 files, 1 commits (+) #35911 fanquake Warn on and add missing [[noreturn]] P3 · cleanup CI failing 0 Mild 37 + 63 tests Avoid compiler analysis false positives such as spurious missing-return warnings Enforce annotating non-returning functions across the codebase P3 because systematic warning enforcement prevents spurious compiler diagnostics The benefit is developer-focused and reasonably deferrable Ranking pass: Moved down from 32: prevents spurious diagnostics only; weaker payoff than -Wunused's cited bug class CI is failing so verify if the failure is caused by this PR before a deep review Concept approval without stated reasons (hebasto, stickies-v) Approval with style nits (maflcko) Unaddressed objection: compiler errors in Clang fuzz tests, no author reply (maflcko) Unaddressed objection: compilation failures on Windows with clang-cl and MSVC, no author reply (maflcko) 37 lines added or modified outside tests 63 lines added or modified in tests 81 lines removed in total 24 files, 5 commits (+) #35762 willcl-ark test: optionally run functional tests via CTest P3 · new feature Waiting on author 1 Strong 14 + 233 tests Run Python functional tests directly through CTest alongside unit tests Enable fine-grained test filtering, parallel scheduling, and CDash dashboard reporting for developers P3 because it is an optional workflow enhancement requiring CMake 4.4 or newer Benefits developers seeking CTest integration and CDash reporting rather than core build outputs Ranking pass: Moved down from 31: opt-in developer workflow gated on CMake 4.4, affects nobody by default Ready to review now Needs rebase due to conflicts with master, but the rebase is mechanical Strong support for CMake integration and fine-grained test control (BrandonOdiwuor) Verified test discovery, execution, fixtures, and CDash submission on Ubuntu (BrandonOdiwuor) Concerns about CMake complexity, CI duplication, and win64 cross testing answered (maflcko) Unanswered suggestion to rebase on PR 35846 for improved error handling (maflcko) 14 lines added or modified outside tests 233 lines added or modified in tests 36 lines removed in total 8 files, 6 commits (+) #35454 ryanofsky cmake: skip missing example targets in libmultiprocess.cmake P3 · bug fix Author silent 149d 0 Strong 5 Avoid CMake configure errors when building against external libmultiprocess versions Keeps Bitcoin Core CI jobs running properly in the upstream libmultiprocess repository P3 because it fixes configure failures only when using updated external libmultiprocess versions Prevents broken builds for developers using custom or upcoming upstream subproject changes Ranking pass: Moved down from 28: only affects builds against an external libmultiprocess, not default in-tree builds Author has been inactive on the PR for over three months, so review feedback may wait on responses Concept support for taking a defensive approach when integrating external subprojects (hebasto) Resolved concern about parent projects processing unused subproject CMake code (hebasto) 5 lines added or modified outside tests 0 lines added or modified in tests 1 lines removed in total 1 files, 1 commits (+) #35722 willcl-ark ci: cache BSD sdk sources separately P3 · speedup Author silent 89d 0 Crickets 29 + 91 tests Avoid slow or failing BSD SDK re-downloads in CI when container base image caches miss Cache SDK archives separately so jobs do not depend on external upstream mirrors P3 because avoids slow or failing BSD SDK re-downloads when base container caches miss Modest reliability and speed benefit limited to BSD CI jobs on cache misses Ranking pass: Moved down from 30: author confirms no CI failure has actually been observed, so the benefit is speculative Needs rebase and author has been silent for 88 days No review verdicts recorded No substantive support or opposition recorded Asked whether the change remains worthwhile, awaiting author reply (sedited) Suggested fallback mirrors as an alternative to CI caching (maflcko) Asked if any CI runs had actually failed from download issues (maflcko) 29 lines added or modified outside tests 91 lines added or modified in tests 69 lines removed in total 6 files, 3 commits (+) #33828 151henry151 Check required interfaces before generating manpages P3 · bug fix Author silent 155d 0 (+1) Positive 3 + 53 tests Prevent committing incomplete manpages when building with features disabled Ensures documentation tools require all expected build features before running P3 because it addresses an edge case in release documentation tooling Prevents maintainers from accidentally committing manpages with missing options Author silent for 117 days so responses to new reviews may be delayed Untested concept approval based on plausible initial code (maflcko) Resolved objection regarding missing interface checks in build cache (fanquake) Thinks it lacks review and may not be a priority (sedited) 3 lines added or modified outside tests 53 lines added or modified in tests 0 lines removed in total 2 files, 1 commits (+) #35756 hebasto cmake: De-duplicate libraries where possible P3 · cleanup Author silent 81d 0 Crickets 13 + 10 tests Silence noisy Apple linker warnings about duplicate libraries Align macOS Guix builds with other platforms by treating linker warnings as fatal errors P3 because it silences noisy linker warnings without fixing any build failures Improves platform consistency in Guix builds but addresses no release-blocking defects No review verdicts recorded No substantive review comments either way yet Asked clarifying questions and suggested folding in the macOS Guix build change (fanquake) 13 lines added or modified outside tests 10 lines added or modified in tests 2 lines removed in total 3 files, 2 commits (+) #35957 hebasto ci: Enable Boost.MultiIndex invariant-checking mode P3 · test coverage Ready 0 Strong 0 + 5 tests Catch container corruption bugs early by enabling Boost.MultiIndex invariant checking in CI test jobs Provides runtime validation of data structure invariants during debug test runs P3 because it adds automated runtime validation of container data structures to existing CI jobs Modifies only CI environment setup scripts without impacting release builds Ready to review Nothing known that would invalidate a review now Substantive support with no open objections Verified the exclusion by testing local runtime of the heavy fuzz job (jeanpablojp) Concerns about CI timeouts and commit wording were addressed and resolved (fanquake, jeanpablojp) 0 lines added or modified outside tests 5 lines added or modified in tests 2 lines removed in total 3 files, 1 commits (+) #36252 ryanofsky ci, iwyu: skip subtrees in compilation database P3 · cleanup Waiting on author 2 Strong 0 + 11 tests Prevent CI from running include linter checks on excluded subtree files Eliminate discarded linter suggestions and reduce CI log noise P3 because it is a minor CI cleanup that only affects subtree linting Eliminates discarded linter output for 14 files and slightly speeds up CI Avoids potential linter crashes on subtree code without changing build outputs Ready for review Nothing known that would invalidate a review now Strong support with suggestions for alternative approaches Support for smaller CI logs and a slight speedup (maflcko) Support because it prevents an IWYU crash on subtree code (David-Uka) Suggested using the tool exclude option instead (hebasto) Suggested moving the runner logic to a dedicated Python script (maflcko) 0 lines added or modified outside tests 11 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #19460 ryanofsky multiprocess: Add bitcoin-wallet -ipcconnect option P4 · cleanup Review #10102 first 0 Blocked 4,183 + 197 tests Allow the standalone wallet tool to connect to a running node over IPC instead of running strictly offline Prepare the wallet tool for future online actions like querying chain state and syncing balances P4 because changes are incidental integration glue for the IPC subtree and binaries It does not address core build issues, release reproducibility, or platform breakages Review #10102 first Stacked on top of open multiprocess PR #10102 No review verdicts recorded Unaddressed objection: combining CLI tool and daemon behavior adds work and risks user footguns (ajtowns) Answered objection: offline operation remains fully supported without requiring a node (jonasschnelli) Approvals from accounts with no project history provided no rationale 4,183 lines added or modified outside tests 197 lines added or modified in tests 644 lines removed in total 149 files, 26 commits (+) #36623 fanquake build: enable `-Wunreachable-code-aggressive` P4 · cleanup CI failing 0 Crickets 11 Catch dead break and return statements during compilation Prevent unreachable control-flow statements from entering the codebase P4 because compiler warning flag tweaks provide routine code hygiene Offers minimal leverage compared to broader platform support or build reliability CI is failing, so check if the failure is caused by this PR before deep review No review verdicts recorded No substantive comments on the overall approach yet Suggested removing a break and braces in script evaluation instead of suppressing the warning (hodlinator) Considered removing additional unreachable code, leaving choice to reviewer preference (willcl-ark) 11 lines added or modified outside tests 0 lines added or modified in tests 6 lines removed in total 5 files, 3 commits (+) #36268 fanquake refactor: prune unused semi-colons P4 · cleanup CI failing 0 Crickets 79 + 24 tests Enforce compiler checks against extraneous semicolons across the codebase Cleans up clutter and prevents redundant semicolons from being reintroduced P4 because it is a cosmetic hygiene cleanup enforcing cleaner syntax Has no functional or security impact and introduces no runtime changes CI is failing, check whether the failure is caused by this PR before deep review No review verdicts recorded No substantive discussion or review comments yet No feedback either way on the proposed compiler warning 79 lines added or modified outside tests 24 lines added or modified in tests 101 lines removed in total 67 files, 4 commits (+) #36704 fanquake doc: fix docs and enable `-Wdocumentation-unknown-command` P4 · cleanup Ready 0 Crickets 36 Catch misspelled and unrecognized Doxygen tags automatically during compilation Fix existing Doxygen syntax mistakes and formatting errors across the codebase P4 because documentation warning hygiene is minor compared to build integrity Adds a compiler warning flag without altering build output or platform support Ready for review Nothing known that would invalidate a review now No review verdicts recorded No substantive review comments or feedback yet Awaiting initial community review 36 lines added or modified outside tests 0 lines added or modified in tests 30 lines removed in total 13 files, 3 commits (+) #36074 maflcko scripted-diff: [test] Add util/check.h includes for assertions P4 · cleanup Ready 0 Strong 14 + 319 tests Ensure test assertions consistently use check utilities and avoid compilation failures or NDEBUG ambiguity Enable automated include analysis across tests by standardizing assertion headers P4 because it only adds minor tooling support to install clang-format for scripted-diff CI linting Negligible impact on overall build reliability or platform support Support for systematically cleaning up assertion includes in tests (l0rinc) Concept approval without detailed feedback (l0rinc) Script regex gaps and path syntax errors were raised and resolved (jeanpablojp) 14 lines added or modified outside tests 319 lines added or modified in tests 220 lines removed in total 154 files, 3 commits (+) #36269 fanquake guix: build with `_GLIBCXX_USE_DEPRECATED=0` P4 · cleanup Ready 0 Crickets 0 + 4 tests Prevent deprecated libstdc++ interfaces from bloating Guix release build outputs Saves a small amount of debug symbol data in Linux and Windows release binaries P4 because the benefit is marginal, saving only a few bytes of debug symbols in Guix outputs Poses minor risk of build failures if dependencies expect deprecated libstdc++ features No review verdicts recorded No substantive discussion or review comments yet No reviewers have weighed in so far 0 lines added or modified outside tests 4 lines added or modified in tests 4 lines removed in total 4 files, 1 commits (+) #36023 Sjors build: Always define HAVE_SYSTEM P4 · cleanup Author silent 74d 0 Mild 1 Avoid compiler warnings about undefined macros on platforms lacking std::system like iOS P4 because it only silences compiler warnings on platforms like iOS The cleanup has minimal impact on normal build operations No review verdicts recorded Objection to unmotivated build configuration changes and code churn (fanquake) Author replied to defend the change but the objection remains open (fanquake) Questions raised about reverting call sites or using a linter instead (hebasto, maflcko) 1 lines added or modified outside tests 0 lines added or modified in tests 1 lines removed in total 1 files, 1 commits (+) #36609 fanquake ci: update some infra P4 · cleanup Ready 0 Crickets 0 + 4 tests Keep CI linting tools and container dependencies up to date with upstream fixes and improvements P4 because routine version bumps for CI linting tools and container dependencies Does not fix build failures, CI flakiness, or reproducibility issues Ready to review Nothing known that would invalidate a review now No review verdicts recorded No substantive discussion or reviews yet 0 lines added or modified outside tests 4 lines added or modified in tests 4 lines removed in total 3 files, 4 commits (+) #36574 maflcko ci: Reword stale readme P4 · cleanup Ready 0 Neutral 0 + 26 tests Update CI developer documentation to reflect modern container tooling and CI harness execution rules P4 because it only corrects developer guidance for running CI containers locally No impact on actual CI operation or build integrity No review verdicts recorded Objections settled but no reviewers have endorsed the changes yet Nonblocking pushback on dependency-pinning rationale answered by author (l0rinc) Suggestion to clarify depends path references resolved by dropping the change (Hamza1610) 0 lines added or modified outside tests 26 lines added or modified in tests 16 lines removed in total 1 files, 3 commits