Skip to content

backport: Merge bitcoin#27254#7432

Merged
PastaPastaPasta merged 1 commit into
dashpay:developfrom
thepastaclaw:takeover-7190-backport-27419
Jul 24, 2026
Merged

backport: Merge bitcoin#27254#7432
PastaPastaPasta merged 1 commit into
dashpay:developfrom
thepastaclaw:takeover-7190-backport-27419

Conversation

@thepastaclaw

@thepastaclaw thepastaclaw commented Jul 8, 2026

Copy link
Copy Markdown

Issue being fixed or feature implemented

Backports bitcoin#27254, the earliest remaining prerequisite in the bitcoin#29034 backport chain.

This PR previously bundled bitcoin#27254 and bitcoin#27419. It has been split back to one prerequisite at a time; bitcoin#27419 will follow separately.

What was done?

  • Moved filesystem helpers from util/system into util/fs and util/fs_helpers.
  • Updated direct includes for the moved filesystem APIs, including Dash-specific callers.
  • Audited all 97 touched files against the final four-commit refactor: Extract util/fs from util/system bitcoin/bitcoin#27254 series and aligned the filesystem-header ordering in 33 include blocks.
  • Completed omitted platform-specific extraction hunks and the direct node/chainstate.cpp include.
  • Preserved Dash's existing descriptive FileCommit() errors and RenameOver() behavior.
  • Removed an unrelated util/bitdeque.h include copied from later history and the unused inherited filesystem include from src/net.h.

The final change is scoped to bitcoin#27254 only: 97 files changed, 474 insertions, and 400 deletions.

The include audit found 84 upstream matches, 12 documented Dash-only deviations, and one file with no include change. src/wallet/walletdb.cpp now places util/fs.h in the same upstream-relative position between sync.h and util/system.h, while retaining the Dash-only governance include in canonical order.

How Has This Been Tested?

On macOS:

python3 test/lint/lint-includes.py
python3 test/lint/lint-include-guards.py
git diff --check HEAD^ HEAD
make -j"$JOBS" src/dashd
make -C src -j"$JOBS" test/test_dash
./src/test/test_dash --run_test=fs_tests
git verify-commit HEAD

The include-only scope check confirmed that every review-addressing delta line is an include directive or include-block blank line. The non-GUI core and unit-test builds passed; local Qt development packages are unavailable, so fresh GitHub CI will provide the Qt build coverage.

Independent exact-head backport prerequisite gate: passed at 8e2288222a8e35d9f359c5121bb87a91a1715cb7 with no missing prerequisites or unexplained deviations.

Breaking Changes

None expected. This is a filesystem-helper extraction with Dash-specific behavior preserved.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation
  • I have assigned this pull request to a milestone

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

Source: exact-SHA automated review for 173bd17f8f3d023626255ece0b48ed50916afb57; dash-core-commit-history and backport-reviewer specialists ran. Opus/Claude reviewer and verifier lanes failed due quota (resets Jul 10, 8am America/Chicago); Codex gpt-5.5 reviewer lanes and Codex verifier completed. No existing GitHub review-thread context was present for this PR.

Note: posted as a COMMENT review because GitHub does not allow formal approval/request-changes on my own PR.

🔴 1 blocking

  • Missing prerequisite: bitcoin#27254 (src/common/args.cpp:39-41)

    Upstream bitcoin#27419 starts after bitcoin#27254, where src/util/fs.h and src/util/fs_helpers.h exist and common/args.cpp includes them directly. At this exact Dash SHA, the full Dash merge f5dec3bce1a named in the PR description is not an ancestor; the branch only contains the older partial 27254 compatibility commit.

    The current backport works around that by forward-declaring RenameOver and GetSpecialFolderPath in src/common/args.cpp, while src/common/args.h still includes the old <fs.h> and exports GetDefaultDataDir instead of getting it from util/fs_helpers.h. That may be an intentional Dash adaptation, but then the PR/commit description needs to explicitly say Dash is keeping the partial 27254 layout and explain these deviations. Otherwise, backport the full bitcoin#27254 prerequisite first.

    Policy gate (backport-prereq-restore): For full upstream backport PRs, a missing prerequisite is blocking unless explicitly allowlisted, for example with intentional_exclusion / policy_override evidence.

🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.

In `src/common/args.cpp`:
- [BLOCKING] src/common/args.cpp:39-41: Missing prerequisite: bitcoin#27254
  Upstream bitcoin#27419 starts after bitcoin#27254, where `src/util/fs.h` and `src/util/fs_helpers.h` exist and `common/args.cpp` includes them directly. At this exact Dash SHA, the full Dash merge `f5dec3bce1a` named in the PR description is not an ancestor; the branch only contains the older partial 27254 compatibility commit. Either backport the full bitcoin#27254 prerequisite first or explicitly document that Dash is intentionally keeping the partial 27254 layout and that these declarations/header placements are deliberate.

@thepastaclaw

thepastaclaw commented Jul 9, 2026

Copy link
Copy Markdown
Author

🕓 Ready for review — 2 ahead in queue (commit c6475c6)
Queue position: 3/10 · 2 reviews active
ETA: start ~18:12 UTC · complete ~18:35 UTC (median 23m across 30 recent reviews; 2 slots)
Queued 2h 24m ago · Last checked: 2026-07-24 17:40 UTC

@thepastaclaw thepastaclaw changed the title backport: Merge bitcoin#27419 backport: Merge bitcoin#27254, 27419 Jul 9, 2026
@thepastaclaw
thepastaclaw force-pushed the takeover-7190-backport-27419 branch 3 times, most recently from e86f8b3 to 8b4b8ad Compare July 13, 2026 22:32
@thepastaclaw thepastaclaw changed the title backport: Merge bitcoin#27254, 27419 backport: Merge bitcoin#27254 Jul 13, 2026
@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final validation — Codex + Sonnet

This is a clean, correctly scoped extraction of util/fs and util/fs_helpers from util/system (bitcoin#27254 backport). At the exact head, GetDefaultDataDir is declared exactly once, fs_helpers.cpp is fully decoupled from util/system.h (using LogPrintf directly rather than error()), and all Dash-specific call sites and filesystem-helper behavior are correctly preserved. No blocking source-code issues were found; the only carried-forward observation is a commit-hygiene suggestion that six same-author corrective commits sitting on top of the aggregate merge commit should be squashed so every intermediate commit is an independently buildable bisect point.

Review provenance

  • Codex reviewers: gpt-5.6-sol — general (completed), gpt-5.6-sol — dash-core-commit-history (completed), gpt-5.6-sol — backport-reviewer (completed)
  • Verifier: claude-sonnet-5 — verifier
  • Sonnet reviewers: claude-sonnet-5 — general (failed), claude-sonnet-5 — dash-core-commit-history (failed), claude-sonnet-5 — backport-reviewer (failed), claude-sonnet-5 — general (completed), claude-sonnet-5 — dash-core-commit-history (completed), claude-sonnet-5 — backport-reviewer (completed)

🟡 1 suggestion(s)

1 additional finding(s) omitted (not in diff).

🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.

In `<commit-range:93ff581f9e4..8b4b8ad02fc>`:
- [SUGGESTION] <commit-range:93ff581f9e4..8b4b8ad02fc>:1: Squash the six corrective commits into the bitcoin#27254 backport merge
  The aggregate merge commit 93ff581f9e4 (Merge bitcoin/bitcoin#27254) is followed by six same-author commits — 58090d04297, ceb7cf18e1a, d4d87627ece, 7f72cef2246, 9d0afc49719, and 8b4b8ad02fc — made within a short window, each of which completes or corrects a defect in that same merge: finishing omitted extraction hunks and a missing direct include, restoring Dash-specific FileCommit/RenameOver/LockDirectory log messages the merge silently dropped, removing a stray unrelated include, restoring a stripped trailing newline, finishing include cleanup across several files, and finally removing a duplicate GetDefaultDataDir() declaration. That last point matters concretely: at 93ff581f9e4, GetDefaultDataDir is declared in both util/system.h and the newly added util/fs_helpers.h, which is a genuine -Wredundant-decls hazard under configure.ac's warning flags (promoted to an error with --enable-werror) — only fixed six commits later. Because Dash merges commit stacks without squashing, this leaves permanent bisect hazards: `git bisect` landing on 93ff581f9e4 finds a commit that may not build cleanly with strict flags, and `git blame` on src/util/fs_helpers.cpp will misattribute Dash-specific behavior restoration to a chain of small, dependent fixups rather than one coherent commit. Recommend folding all six corrective commits into 93ff581f9e4 via interactive rebase (preserving the upstream merge's authorship/message for the cherry-picked series) so the backport lands as a single, independently buildable commit.

@thepastaclaw
thepastaclaw force-pushed the takeover-7190-backport-27419 branch from 8b4b8ad to 35be6bc Compare July 22, 2026 23:42
@thepastaclaw

Copy link
Copy Markdown
Author

Addressed the clean-history review finding in 35be6bc0775ec353c38a9d93a8a29078b2229647:

  • folded all six corrective commits into the refactor: Extract util/fs from util/system bitcoin/bitcoin#27254 backport commit
  • rebased the single signed commit onto current develop and resolved the filesystem extraction conflicts, including txdb.h and the newer UTXO snapshot sources
  • reran the review gate (ship, 0 findings) plus whitespace, circular-dependency, commit-script-check, filename, Python, and shell lints

CI is running on the rewritten head. CodeRabbit follow-through is left to the automated coderabbit_review_bot.

Comment thread src/wallet/walletdb.cpp Outdated
@thepastaclaw
thepastaclaw force-pushed the takeover-7190-backport-27419 branch from 35be6bc to b1a9383 Compare July 23, 2026 20:09
@knst
knst self-requested a review July 23, 2026 20:19
@thepastaclaw
thepastaclaw force-pushed the takeover-7190-backport-27419 branch 2 times, most recently from 441dafe to 8e22882 Compare July 23, 2026 23:59

@knst knst left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed commit 8e22882
@thepastaclaw, address ONLY mentioned concerns, don't create over-complications and unrelated fixes

Comment thread src/util/system.h
Comment thread src/util/fs_helpers.cpp Outdated
Comment thread src/test/script_tests.cpp
Comment thread src/test/fuzz/utxo_snapshot.cpp
Comment thread src/dbwrapper.cpp

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preliminary review — Codex only

The filesystem extraction is buildable and preserves LockDirectory() runtime behavior, but it is not a complete backport of bitcoin#27254 because the missing bitcoin#27238 prerequisite forces prerequisite-dependent upstream hunks to be altered or retained. The declaration move also drops Dash-specific documentation explaining that ReleaseDirectoryLocks() is used during runtime restarts. The earlier commit-history finding is resolved because the current PR range contains one coherent backport commit.

Validated blockers were found in the Codex precheck. Sonnet is deferred until a fresh Codex revalidation clears the blocker gate.

Review provenance

  • Codex reviewers: gpt-5.6-sol — general (completed), gpt-5.6-sol — dash-core-commit-history (completed), gpt-5.6-sol — backport-reviewer (completed)
  • Verifier: gpt-5.6-sol — verifier
  • Sonnet: not run (deferred by blocker gate)

🔴 1 blocking | 💬 1 nitpick(s)

🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.

In `src/util/fs_helpers.cpp`:
- [BLOCKING] src/util/fs_helpers.cpp:72-73: Missing prerequisite: bitcoin#27238
  Upstream commit aaced5633b8 from bitcoin#27238 moves error() from util/system.h to logging.h. The bitcoin#27254 extraction then moves LockDirectory() unchanged with its return error(...) path and removes util/system.h from flatfile.cpp. Dash contains neither prerequisite change at the PR base nor at this head: error() remains defined only in util/system.h, so this backport replaces the upstream LockDirectory() call with LogPrintf() plus return false and retains util/system.h in flatfile.cpp. Although the workaround is behavior-equivalent, the PR advertises the complete bitcoin#27254 backport while omitting its prerequisite-dependent decoupling hunk. Backport bitcoin#27238, or at least its error() relocation, and then preserve the upstream bitcoin#27254 changes.

Note: GitHub does not allow PastaClaw to request changes on their own PR, so this canonical blocking preliminary result is transported as a COMMENT review.

Comment thread src/util/fs_helpers.cpp Outdated
Comment on lines +72 to +73
LogPrintf("ERROR: Error while attempting to lock directory %s: %s\n", fs::PathToString(directory), lock->GetReason());
return false;

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Blocking: Missing prerequisite: bitcoin#27238

Upstream commit aaced56 from bitcoin#27238 moves error() from util/system.h to logging.h. The bitcoin#27254 extraction then moves LockDirectory() unchanged with its return error(...) path and removes util/system.h from flatfile.cpp. Dash contains neither prerequisite change at the PR base nor at this head: error() remains defined only in util/system.h, so this backport replaces the upstream LockDirectory() call with LogPrintf() plus return false and retains util/system.h in flatfile.cpp. Although the workaround is behavior-equivalent, the PR advertises the complete bitcoin#27254 backport while omitting its prerequisite-dependent decoupling hunk. Backport bitcoin#27238, or at least its error() relocation, and then preserve the upstream bitcoin#27254 changes.

source: ['codex']

Comment thread src/util/fs_helpers.h
Comment on lines +51 to +54
/** Release all directory locks. This is used for unit testing only, at runtime
* the global destructor will take care of the locks.
*/
void ReleaseDirectoryLocks();

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💬 Nitpick: Restore the Dash runtime-use note for ReleaseDirectoryLocks

Moving this declaration from util/system.h dropped the Dash-specific note explaining its runtime use. The remaining comment says the function is used only for unit testing, but init.cpp calls ReleaseDirectoryLocks() when a client restart is requested so the replacement process can acquire the directory lock. Preserve that context in the moved declaration.

Suggested change
/** Release all directory locks. This is used for unit testing only, at runtime
* the global destructor will take care of the locks.
*/
void ReleaseDirectoryLocks();
/** Release all directory locks. This is used for unit testing and to release
* locks before restarting the client. At normal shutdown, the global destructor
* will take care of the locks.
*/
void ReleaseDirectoryLocks();

source: ['codex']

@thepastaclaw
thepastaclaw force-pushed the takeover-7190-backport-27419 branch 2 times, most recently from b6b6ac5 to 8e22882 Compare July 24, 2026 14:18
00e9b97 refactor: Move fs.* to util/fs.* (TheCharlatan)
106b46d Add missing fs.h includes (TheCharlatan)
b202b3d Add missing cstddef include in assumptions.h (TheCharlatan)
18fb363 refactor: Extract util/fs_helpers from util/system (Ben Woosley)

Pull request description:

  This pull request is part of the `libbitcoinkernel` project bitcoin#24303 https://github.com/bitcoin/bitcoin/projects/18 and more specifically its "Step 2: Decouple most non-consensus code from libbitcoinkernel". This commit was originally authored by empact and is taken from its parent PR bitcoin#25152.

  #### Context

  There is an ongoing effort to decouple the `ArgsManager` used for command line parsing user-provided arguments from the libbitcoinkernel library (bitcoin#25290, bitcoin#25487, bitcoin#25527, bitcoin#25862, bitcoin#26177, and bitcoin#27125). The `ArgsManager` is defined in `system.h`. A similar pull request extracting functionality from `system.h` has been merged in bitcoin#27238.

  #### Changes

  Next to providing better code organization, this PR removes some reliance of the tree of libbitcoinkernel header includes on `system.h` (and thus the `ArgsManager` definition) by moving filesystem related functions out of the `system.*` files.

  There is already a pair of `fs.h` / `fs.cpp` in the top-level `src/` directory. They were not combined with the files introduced here, to keep the patch cleaner and more importantly because they are often included without the utility functions. The new files are therefore named `fs_helpers` and the existing `fs` files are moved into the util directory.

  Further commits splitting more functionality out of `system.h` are still in bitcoin#25152 and will be submitted in separate PRs once this PR has been processed.

ACKs for top commit:
  hebasto:
    ACK 00e9b97

Tree-SHA512: 31422f148d14ba3c843b99b1550a6fd77c77f350905ca324f93d4f97b652246bc58fa9696c64d1201979cf88733e40be02d262739bb7d417cf22bf506fdb7666
@thepastaclaw
thepastaclaw force-pushed the takeover-7190-backport-27419 branch from 8e22882 to c6475c6 Compare July 24, 2026 15:14
@thepastaclaw

Copy link
Copy Markdown
Author

Addressed the requested review follow-up in signed commit c6475c6. The patch is limited to restoring the two Dash-specific details in fs_helpers; I retained the three questioned includes because each still has a direct use in the current Dash tree. Focused compilation, test_dash, util_tests/test_LockDirectory, and the relevant lints passed. CI is running on the rewritten head.

@knst knst left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK c6475c6

@knst
knst marked this pull request as ready for review July 24, 2026 17:19
@knst
knst requested review from PastaPastaPasta and UdjinM6 July 24, 2026 17:19
@knst knst added this to the 24 milestone Jul 24, 2026
@github-actions

Copy link
Copy Markdown

Potential PR merge conflicts

This is advisory only. It does not block CI, but it marks PRs that will likely need a rebase depending on merge order.

If this PR merges first

These open PRs will likely need a rebase:

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2c1581d8-1b09-41e9-9828-2f989c382422

📥 Commits

Reviewing files that changed from the base of the PR and between 646cc8d and c6475c6.

📒 Files selected for processing (97)
  • src/Makefile.am
  • src/addrdb.cpp
  • src/addrdb.h
  • src/banman.h
  • src/bench/bench.cpp
  • src/bench/bench.h
  • src/bench/bench_bitcoin.cpp
  • src/bitcoin-tx.cpp
  • src/coinjoin/client.cpp
  • src/dbwrapper.cpp
  • src/dbwrapper.h
  • src/flat-database.h
  • src/flatfile.cpp
  • src/flatfile.h
  • src/i2p.cpp
  • src/i2p.h
  • src/index/blockfilterindex.cpp
  • src/init.cpp
  • src/init/common.cpp
  • src/interfaces/wallet.h
  • src/ipc/interfaces.cpp
  • src/ipc/process.cpp
  • src/ipc/process.h
  • src/kernel/mempool_persist.cpp
  • src/kernel/mempool_persist.h
  • src/logging.cpp
  • src/logging.h
  • src/net.cpp
  • src/net.h
  • src/node/blockstorage.cpp
  • src/node/blockstorage.h
  • src/node/chainstate.cpp
  • src/node/mempool_persist_args.cpp
  • src/node/mempool_persist_args.h
  • src/node/utxo_snapshot.cpp
  • src/node/utxo_snapshot.h
  • src/policy/fees.cpp
  • src/policy/fees.h
  • src/policy/fees_args.h
  • src/qt/bitcoin.cpp
  • src/qt/guiutil.cpp
  • src/qt/guiutil.h
  • src/qt/intro.cpp
  • src/qt/psbtoperationsdialog.cpp
  • src/qt/walletframe.cpp
  • src/rpc/blockchain.cpp
  • src/rpc/blockchain.h
  • src/rpc/mempool.cpp
  • src/rpc/request.cpp
  • src/stacktraces.cpp
  • src/test/argsman_tests.cpp
  • src/test/fs_tests.cpp
  • src/test/fuzz/banman.cpp
  • src/test/fuzz/fuzz.cpp
  • src/test/fuzz/utxo_snapshot.cpp
  • src/test/script_tests.cpp
  • src/test/settings_tests.cpp
  • src/test/streams_tests.cpp
  • src/test/util/chainstate.h
  • src/test/util/setup_common.h
  • src/test/util_tests.cpp
  • src/torcontrol.h
  • src/txdb.h
  • src/util/asmap.cpp
  • src/util/asmap.h
  • src/util/fs.cpp
  • src/util/fs.h
  • src/util/fs_helpers.cpp
  • src/util/fs_helpers.h
  • src/util/getuniquepath.cpp
  • src/util/getuniquepath.h
  • src/util/readwritefile.cpp
  • src/util/readwritefile.h
  • src/util/settings.cpp
  • src/util/settings.h
  • src/util/system.cpp
  • src/util/system.h
  • src/validation.cpp
  • src/validation.h
  • src/wallet/bdb.cpp
  • src/wallet/bdb.h
  • src/wallet/db.cpp
  • src/wallet/db.h
  • src/wallet/dump.cpp
  • src/wallet/dump.h
  • src/wallet/load.cpp
  • src/wallet/rpc/backup.cpp
  • src/wallet/salvage.cpp
  • src/wallet/salvage.h
  • src/wallet/sqlite.cpp
  • src/wallet/test/db_tests.cpp
  • src/wallet/test/init_test_fixture.cpp
  • src/wallet/wallet.cpp
  • src/wallet/wallet.h
  • src/wallet/walletdb.cpp
  • src/wallet/wallettool.cpp
  • src/wallet/walletutil.h
💤 Files with no reviewable changes (1)
  • src/net.h

Walkthrough

The change extracts filesystem helper APIs from util/system.cpp into new util/fs_helpers.h and util/fs_helpers.cpp files. Build targets are updated to compile the new implementation. Across production and test code, legacy fs.h includes are replaced with util/fs.h, with helper headers added where required. The filesystem header guard and selected forward-declaration placement are also updated.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • dashpay/dash#7187: Uses the new util/fs_helpers API, including CheckDiskSpace.
  • dashpay/dash#7361: Touches mempool persistence code that uses the extracted filesystem helpers.

Suggested reviewers: pastapastapasta, udjinm6

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title correctly identifies this as a backport of bitcoin#27254, which matches the main change in the PR.
Description check ✅ Passed The description is directly about backporting bitcoin#27254 and the filesystem helper extraction, matching the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thepastaclaw

Copy link
Copy Markdown
Author

CI classification for linux64_sqlite-build / Build source: this is unrelated to the PR diff. The job compiled and linked the targets successfully through test_dash, dash-qt, and test_dash-qt, then the GitHub-hosted runner exhausted its disk while installing the already-built artifacts (/usr/bin/install: error writing /output/bin/test_dash-qt: No space left on device; the verbose retry then failed ranlib for the same reason). The rest of the source/test matrix passed on c6475c63, so no source or history change is warranted. A maintainer-triggered retry is currently running on the same head.

@PastaPastaPasta
PastaPastaPasta merged commit 9dea336 into dashpay:develop Jul 24, 2026
88 of 92 checks passed
thepastaclaw added a commit to thepastaclaw/dash that referenced this pull request Jul 24, 2026
Backport of bitcoin#27150 (merge `fc037c8c83`).

Squashes the four upstream topic commits in order:
- `c361df90b9` scripted-diff: Remove double newlines after some init errors
- `3db2874bd7` Extend bilingual_str support for tinyformat
- `d172b5c671` Add InitError(error, details) overload
- `802cc1ef53` Deduplicate bitcoind and bitcoin-qt init code

Dash adaptations:
- Keep Dash CoreContext construction and -printcrashinfo handling in AppInit,
  and retain dashd/dash-qt/dash.conf naming in user-facing text.
- Apply the InitError fatal-index change to Dash current
  BaseIndex::FatalErrorImpl implementation.
- Qualify nested tfm::format() calls because Dash builds as C++20, where
  upstream unqualified calls collide with std::format through ADL. This was
  fixed later upstream by `fa8ef7d138`.
- Register src/common/init.cpp with IWYU in ci/dash/lint-tidy.sh;
  upstream ci/test/06_script_b.sh was removed when Dash migrated CI.
- After dashpay#7432 (bitcoin#27254 util/fs extract), include util/fs.h
  instead of fs.h in the new common/init.cpp, and do not reintroduce the
  pre-extract <fs.h> include in qt/bitcoin.cpp.

No source or test hunks are excluded. The AbortError-to-InitError shutdown
change is retained here with its upstream owner, d172b5c.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants