Skip to content

Conversation

@kwvg
Copy link
Collaborator

@kwvg kwvg commented Oct 15, 2025

Motivation

Annoyances from trying to build rc1 and rc2 using our Guix container (source).

Additional Information

  • Guix has migrated their service provider to Codeberg and have published a timeline for sunsetting the existing git.savannah.gnu.org channel (blog). This requires updating our scripts and on the upstream side this was achieved with bitcoin#32439 but requires additional changes on our end as well.

    • As we rely on Ubuntu's distribution of Guix and staleness is a known problem (Debian no longer ships Guix with trixie and have flagged the guix package as subject to removal, source), we need to set Codeberg as the channel source ourselves.
  • install_db4.sh was dropped via bitcoin#26834 as bitcoin#26833 was backported (see dash#6735) and the script points to the old git.savannah.gnu.org for sources.

  • Due to our run-in with nondeterminism in rc1, this pull request also includes backports to deal with some other potential sources of nondeterminism. As we're updating sources, a documentation update removing a no longer available substitution source has also been backported.

  • Both official Guix substitution servers are located in Europe (i.e. France and Germany), which makes the time and bandwidth intensive fetch that is inherent with a container with no persistence painfully slow for those located quite away from Europe, so, alongside addition of the German substitution server (berlin.guix.gnu.org), mirrors have been added to cover North America (US East) and Asia-Pacific (Singapore).

  • Another annoyance, guix-check so far used an ad-hoc method of generating checksums that cannot be (trivially) diffed against the attested checksums provided at dashpay/guix.sigs, by leveraging guix-attest's ability to generate checksums even without a signer, we can produce the exact output an attestor would without needing to be one (source).

Breaking Changes

None.

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 (note: N/A)
  • I have made corresponding changes to the documentation
  • I have assigned this pull request to a milestone (for repository code-owners and collaborators only)

@kwvg kwvg added this to the 23 milestone Oct 15, 2025
@kwvg
Copy link
Collaborator Author

kwvg commented Oct 15, 2025

@coderabbitai review

@github-actions
Copy link

github-actions bot commented Oct 15, 2025

✅ No Merge Conflicts Detected

This PR currently has no conflicts with other open PRs.

@coderabbitai
Copy link

coderabbitai bot commented Oct 15, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link

coderabbitai bot commented Oct 15, 2025

Walkthrough

Reorders Guix archive authorization keys and adds creation of a guixbuild group with multiple unprivileged guixbuilder users in contrib/containers/guix/Dockerfile; copies a pinned contrib/containers/guix/channels.scm and additional guix helper scripts into the image; creates runtime/cache and workspace directories, sets working directory to /src/dash, switches to an unprivileged user, and updates the entrypoint to build substitute URLs from a SERVERS array. guix-check now uses guix-attest to populate a temporary sigs repo and reads SHA256 sums from generated files. Adds check_source_date_epoch() to prelude.bash and invokes it from guix-build and guix-codesign. Removes contrib/install_db4.sh and updates multiple docs to prefer depends-based Berkeley DB workflows and replace Savannah Guix URLs with Codeberg.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title accurately captures the primary changes in the changeset. It identifies the main components: merging specific Bitcoin pull request backports, updating Guix channels (reflected in the channels.scm update to use Codeberg), updating substitution servers (mentioned in multiple script and documentation changes), and fixing guix-check (reflected in the modified guix-check script). While the title is lengthy with multiple PR references, it is specific and directly related to the substantive changes present in the changeset, particularly the Guix infrastructure updates and migration to Codeberg.
Description Check ✅ Passed The pull request description is clearly related to the changeset and provides detailed context for the changes. It explains the motivation (building rc1/rc2 with Guix container), addresses the Guix migration to Codeberg (reflected in URL updates across channels.scm, prelude.bash, and documentation), justifies removal of install_db4.sh, discusses nondeterminism fixes (reflected in the check_source_date_epoch function additions), explains substitution server additions for geographic diversity, and describes guix-check improvements using guix-attest. Each section of the description maps to corresponding changes in the raw summary.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f7ae76b and 18d9966.

📒 Files selected for processing (19)
  • Makefile.am (0 hunks)
  • contrib/containers/guix/Dockerfile (2 hunks)
  • contrib/containers/guix/channels.scm (1 hunks)
  • contrib/containers/guix/scripts/entrypoint (1 hunks)
  • contrib/containers/guix/scripts/guix-check (1 hunks)
  • contrib/guix/INSTALL.md (3 hunks)
  • contrib/guix/README.md (1 hunks)
  • contrib/guix/guix-build (1 hunks)
  • contrib/guix/guix-codesign (1 hunks)
  • contrib/guix/libexec/build.sh (0 hunks)
  • contrib/guix/libexec/prelude.bash (2 hunks)
  • contrib/install_db4.sh (0 hunks)
  • depends/README.md (1 hunks)
  • doc/build-freebsd.md (2 hunks)
  • doc/build-netbsd.md (1 hunks)
  • doc/build-openbsd.md (1 hunks)
  • doc/build-osx.md (1 hunks)
  • doc/build-unix.md (1 hunks)
  • doc/dependencies.md (1 hunks)
💤 Files with no reviewable changes (3)
  • Makefile.am
  • contrib/guix/libexec/build.sh
  • contrib/install_db4.sh
🚧 Files skipped from review as they are similar to previous changes (7)
  • contrib/containers/guix/channels.scm
  • doc/dependencies.md
  • contrib/containers/guix/scripts/entrypoint
  • depends/README.md
  • contrib/guix/guix-codesign
  • doc/build-unix.md
  • contrib/guix/INSTALL.md
🧰 Additional context used
📓 Path-based instructions (2)
contrib/**

📄 CodeRabbit inference engine (CLAUDE.md)

Unless specifically prompted, avoid making changes to the contrib directory (contributed scripts)

Files:

  • contrib/containers/guix/scripts/guix-check
  • contrib/guix/guix-build
  • contrib/guix/libexec/prelude.bash
  • contrib/guix/README.md
  • contrib/containers/guix/Dockerfile
doc/**

📄 CodeRabbit inference engine (CLAUDE.md)

Unless specifically prompted, avoid making changes to the doc directory (documentation)

Files:

  • doc/build-netbsd.md
  • doc/build-freebsd.md
  • doc/build-openbsd.md
  • doc/build-osx.md
🧠 Learnings (1)
📚 Learning: 2025-10-05T20:38:28.457Z
Learnt from: knst
PR: dashpay/dash#6871
File: contrib/guix/libexec/build.sh:358-360
Timestamp: 2025-10-05T20:38:28.457Z
Learning: In the Dash repository, when backporting code from Bitcoin Core, typos and minor issues in comments should be kept as-is to reduce merge conflicts in future backports, even if they remain unfixed in Bitcoin Core's master branch.

Applied to files:

  • doc/build-openbsd.md
🪛 LanguageTool
doc/build-osx.md

[grammar] ~87-~87: Ensure spelling is correct
Context: ...descriptor wallets. macOS ships with a useable sqlite package, meaning you don't nee...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
doc/build-freebsd.md

45-45: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


47-47: Link text should be descriptive

(MD059, descriptive-link-text)


50-50: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


52-52: Link text should be descriptive

(MD059, descriptive-link-text)


53-53: Link text should be descriptive

(MD059, descriptive-link-text)

doc/build-osx.md

83-83: Heading levels should only increment by one level at a time
Expected: h5; Actual: h6

(MD001, heading-increment)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Build slim container / Build container
  • GitHub Check: Build container / Build container
🔇 Additional comments (16)
contrib/guix/README.md (2)

378-379: Improved language neutrality.

Changing "authorized his signing key" to "authorized its signing key" is a good inclusive language improvement that better fits documentation context (referring to the system/server rather than a person).


385-385: Updated substitute server references to official infrastructure.

Replacing the dongcarl-specific URL with https://bordeaux.guix.gnu.org aligns with using an official, maintained Guix substitute server that is included in Guix's default substitute URLs and actively used by the project. The consistent updates across all three substitute server specification methods (guix-daemon flag, guix command flag, and SUBSTITUTE_URLS environment variable) are appropriate and accurate.

contrib/guix/guix-build (1)

72-76: LGTM! Prevents accidental SOURCE_DATE_EPOCH pollution.

The sanity check correctly prevents unintentional SOURCE_DATE_EPOCH settings that could break reproducibility, while still allowing explicit overrides via FORCE_SOURCE_DATE_EPOCH. The placement before line 243's explicit assignment ensures environment contamination is caught early.

contrib/guix/libexec/prelude.bash (2)

24-42: LGTM! Well-designed guard against environment contamination.

The function correctly prevents unintentional SOURCE_DATE_EPOCH settings while providing a clear escape hatch (FORCE_SOURCE_DATE_EPOCH) for advanced users. Error message is actionable and the logic is sound.


73-73: LGTM! URL migration to Codeberg.

Correct update reflecting Guix's migration from Savannah to Codeberg. Commit hash remains unchanged, ensuring deterministic builds are unaffected.

doc/build-netbsd.md (1)

7-7: Approve minor warning update.

The warning message is now appropriately generalized to cover broader build failure scenarios rather than specific dependencies. This is consistent with platform-specific build complexity.

doc/build-openbsd.md (1)

46-58: Approve depends-based BDB setup flow.

The transition from a shell script to the depends system is correct and aligns with upstream best practices. The path structure is accurate, and the BDB_PREFIX configuration properly references the build output directory.

doc/build-freebsd.md (1)

44-67: Approve depends-based BDB setup implementation.

The migration to depends-based Berkeley DB 4.8 builds is well-documented with clear output expectations and proper shell-specific instructions for setting BDB_PREFIX. The instructions are consistent with other build guide updates across the repository.

contrib/containers/guix/scripts/guix-check (2)

16-17: LGTM: Trap-based cleanup is correct.

The temporary directory setup with proper quoting and the EXIT trap ensures cleanup happens regardless of how the script terminates. The -- flag in rm -rf protects against edge cases.


19-19: Quote the SIGNER variable expansion.

On line 19, SIGNER=${SIGNER} should be SIGNER="${SIGNER}" for shell safety, even though the value is currently hardcoded to "dummy". This aligns with the quoting pattern used for GUIX_SIGS_REPO on the same line.

Apply this diff:

-env GUIX_SIGS_REPO="${GUIX_SIGS_REPO}" NO_SIGN=1 SIGNER=${SIGNER} ./contrib/guix/guix-attest
+env GUIX_SIGS_REPO="${GUIX_SIGS_REPO}" NO_SIGN=1 SIGNER="${SIGNER}" ./contrib/guix/guix-attest

Based on learnings

Likely an incorrect or invalid review comment.

contrib/containers/guix/Dockerfile (6)

55-57: LGTM: Archive authorization reordering is correct.

The reordering places Berlin first, followed by Bordeaux and CI, which aligns with the PR's goal of adding the official German server for improved European access.


61-67: LGTM: Standard Guix build environment setup.

The creation of the guixbuild group and multiple unprivileged builder users follows the official Guix build environment setup pattern. The system accounts with restricted shells provide proper isolation.


77-79: LGTM: Channels configuration copy with appropriate permissions.

The COPY directive correctly sets ownership to the unprivileged user and applies read/execute permissions for group/others. The X flag in chmod appropriately applies execute only to directories.


80-84: LGTM: Script installation to system directories.

The COPY directives correctly place helper scripts in /usr/local/bin/ with default root ownership, which is appropriate for system-level executables.


87-92: LGTM: Workspace directory setup is correct.

The directory creation with -p and recursive ownership assignment ensures the unprivileged user has write access to cache and build directories. The brace expansion correctly creates the three subdirectories under depends/.


94-100: LGTM: Container runtime configuration is correct.

The sequence properly sets the working directory, switches to the unprivileged user context, and configures the entrypoint using the exec form (JSON array), which is Docker best practice.


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 and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
contrib/containers/guix/scripts/entrypoint (1)

21-26: Consider simplifying the IFS manipulation.

The current approach with IFS_OLD and IFS=' ' is correct but could be streamlined. While the implementation works, you could use a more concise approach:

-IFS_OLD="${IFS}"
-IFS=' '
 sudo env PATH=${PATH} \
-  guix-daemon --build-users-group='guixbuild' --substitute-urls="${SERVERS[*]}" < /dev/null 2>&1 |
+  guix-daemon --build-users-group='guixbuild' --substitute-urls="$(IFS=' '; echo "${SERVERS[*]}")" < /dev/null 2>&1 |
   sudo tee /var/log/guix.log > /dev/null &
-IFS="${IFS_OLD}"

This uses a subshell for the IFS change, eliminating the need to save and restore IFS.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f170aed and 1ca2db9402bcf7e7352f4ee722882893d94ed856.

📒 Files selected for processing (14)
  • contrib/containers/guix/Dockerfile (2 hunks)
  • contrib/containers/guix/channels.scm (1 hunks)
  • contrib/containers/guix/scripts/entrypoint (1 hunks)
  • contrib/containers/guix/scripts/guix-check (1 hunks)
  • contrib/guix/INSTALL.md (3 hunks)
  • contrib/guix/README.md (1 hunks)
  • contrib/guix/guix-build (1 hunks)
  • contrib/guix/guix-codesign (1 hunks)
  • contrib/guix/libexec/build.sh (0 hunks)
  • contrib/guix/libexec/prelude.bash (2 hunks)
  • contrib/install_db4.sh (0 hunks)
  • depends/README.md (1 hunks)
  • doc/build-openbsd.md (1 hunks)
  • doc/build-unix.md (1 hunks)
💤 Files with no reviewable changes (2)
  • contrib/install_db4.sh
  • contrib/guix/libexec/build.sh
🔇 Additional comments (18)
depends/README.md (1)

109-110: LGTM!

The new NO_BOOST and NO_LIBEVENT options follow the established pattern of other dependency options and are clearly documented. These align well with the depends-based Berkeley DB build approach introduced elsewhere in the PR.

contrib/containers/guix/scripts/entrypoint (1)

8-18: Good geographic coverage for substitution servers.

The SERVERS array includes both official servers and geographically distributed mirrors (Singapore, US East), which will improve fetch latency for users outside Europe. The mirrors are appropriate choices based on the PR description's reference to LibrePlanet sources.

contrib/guix/libexec/prelude.bash (2)

24-42: LGTM!

The check_source_date_epoch function correctly guards against unintended SOURCE_DATE_EPOCH usage that could break reproducibility. The error message is clear and provides actionable guidance with two resolution paths. The exit code 1 is appropriate for this validation failure.


73-73: LGTM!

The URL update to Codeberg aligns with the PR's objective to migrate from git.savannah.gnu.org to Codeberg hosting.

contrib/guix/INSTALL.md (3)

322-322: LGTM!

The clone URL correctly updates to Codeberg hosting, aligning with the PR's migration objective.


610-612: LGTM!

The example output correctly reflects the new Codeberg repository URL.


763-764: LGTM!

The commit reference correctly updates to the Codeberg-hosted repository.

contrib/guix/README.md (2)

378-379: LGTM!

The wording clarification ("authorized its signing key") is a minor editorial improvement that maintains consistency with substitution server terminology.


385-399: LGTM!

Replacing the personal substitution server (dongcarl.carldong.io) with the official Bordeaux server (bordeaux.guix.gnu.org) is appropriate and aligns with using official Guix infrastructure. The PR description confirms this is one of the "now-unavailable substitution source[s]" being removed.

doc/build-unix.md (1)

239-253: LGTM!

The updated Berkeley DB build instructions correctly shift from the removed contrib/install_db4.sh script to a depends-based approach. The instructions are clear and complete:

  • The make -C depends command with NO_* flags appropriately excludes unneeded dependencies
  • The BDB_PREFIX path example is correct
  • The BDB_LIBS and BDB_CFLAGS configuration is properly documented

This aligns with the PR objective to adapt the build process following the removal of install_db4.sh (per bitcoin#26834).

doc/build-openbsd.md (1)

39-50: LGTM!

The updated Berkeley DB build instructions correctly mirror the approach in doc/build-unix.md while properly using OpenBSD-specific elements:

  • Uses gmake (GNU make) instead of make
  • The output path x86_64-unknown-openbsd is correct for OpenBSD
  • The NO_* flags match the Unix documentation
  • The BDB_PREFIX path correctly points to the depends output

This maintains consistency across the documentation while respecting platform differences.

contrib/containers/guix/channels.scm (1)

1-11: Verify the pinned commit hash and OpenPGP fingerprint.

The channel configuration structure is correct and the migration to Codeberg aligns with the PR objectives. However, please verify:

  1. The commit hash 56344729cd07c76d5133047f2866237bbb08dced corresponds to the intended Guix version
  2. The OpenPGP fingerprint 2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5 is correct for the introduction commit

Run the following to verify the commit exists and check its details:

contrib/containers/guix/scripts/guix-check (2)

19-19: Add error handling for guix-attest invocation.

If guix-attest fails, the script will continue and attempt to read from potentially non-existent files. Consider checking the exit status or using set -e (which is already set) to ensure failures are caught.

Verify that the existing set -eo pipefail on line 3 is sufficient to abort on guix-attest failure, or add explicit error handling:

if ! ./contrib/guix/guix-attest; then
    echo "ERROR: guix-attest failed" >&2
    exit 1
fi

18-19: Export environment variables for the child process.

The variables SIGNER and NO_SIGN are not exported, so they won't be visible to the guix-attest child process. This could cause the attestation to fail or use unexpected defaults.

Apply this diff to export the variables:

 GUIX_SIGS_REPO=$(mktemp -d)
 trap 'rm -rf -- "$GUIX_SIGS_REPO"' EXIT
-SIGNER=dummy
-NO_SIGN=1 ./contrib/guix/guix-attest
+export SIGNER=dummy
+export NO_SIGN=1
+./contrib/guix/guix-attest

Likely an incorrect or invalid review comment.

contrib/containers/guix/Dockerfile (2)

55-57: LGTM! Authorization keys properly expanded.

The addition of berlin.guix.gnu.org and explicit authorization of all three keys (Berlin, Bordeaux, CI) aligns with the PR objectives to reduce fetch latency for non-European locations by including the German official server.


75-83: LGTM! Unprivileged user setup is well-structured.

The HOME environment variable, directory creation for cache/config, and ownership adjustments are correctly implemented for the unprivileged ubuntu user context.

contrib/guix/guix-build (1)

72-76: LGTM! SOURCE_DATE_EPOCH sanity check properly added.

The new sanity check section for SOURCE_DATE_EPOCH is appropriately placed after creating the version base directory and aligns with the PR objectives to address potential sources of nondeterminism encountered during rc1. The check relies on check_source_date_epoch() being defined in prelude.bash, similar to the implementation in guix-codesign.

contrib/guix/guix-codesign (1)

70-74: LGTM! SOURCE_DATE_EPOCH sanity check properly added.

The new sanity check section for SOURCE_DATE_EPOCH is well-positioned in the validation flow and aligns with the PR objectives to address potential sources of nondeterminism. The check relies on check_source_date_epoch() being defined in prelude.bash.

Verify that check_source_date_epoch() is properly defined in contrib/guix/libexec/prelude.bash:

@kwvg kwvg changed the title ci: merge bitcoin#26834, #30989, #32498, #32439, #32678, #33073, update channels, substitution servers, fix guix-check ci: merge bitcoin#24585, #25549, #26834, #30989, #32498, #32439, #32678, #33073, update channels, substitution servers, fix guix-check Oct 15, 2025
@kwvg
Copy link
Collaborator Author

kwvg commented Oct 15, 2025

guix-check output for 60c761e4bfa3405adb3e83bbc9309ed32f2c0267

Note: The "No such file or directory" error has been resolved with c39ab07b285cf6c91a6947617671896cb1505571 but the Guix hashes are from a force push earlier (diff)

ubuntu@docker-desktop:/src/dash$ guix-check
Looking for build output SHA256SUMS fragments in /src/dash/guix-build-23.0.0-rc.2-14-g60c761e4bfa3/output
Found build output SHA256SUMS fragments:
    '/src/dash/guix-build-23.0.0-rc.2-14-g60c761e4bfa3/output/aarch64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-g60c761e4bfa3/output/arm64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-g60c761e4bfa3/output/riscv64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-g60c761e4bfa3/output/x86_64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-g60c761e4bfa3/output/x86_64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-g60c761e4bfa3/output/x86_64-w64-mingw32/SHA256SUMS.part'

Attesting to build outputs for version: '23.0.0-rc.2-14-g60c761e4bfa3'

INFO: No codesigned outputs found for '23.0.0-rc.2-14-g60c761e4bfa3', skipping...
Not signing SHA256SUMS as $NO_SIGN is not empty

cat: /tmp/tmp.0iytSnujI0/23.0.0-rc.2-14-g60c761e4bfa3/dummy/all.sha256sums: No such file or directory
abc32ffd918fdb292ec55ba775ba9775fd761d5ac368daaa25e286e34d822e68  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-aarch64-linux-gnu-debug.tar.gz
c725edab4f534fa4284e231d24ad494f7b6612295a4af5b71c875f9aa1f0e85e  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-aarch64-linux-gnu.tar.gz
f7eb168728a6cfe767e3ae0d7453d78a489a76f681c3ce2850e4f818a2d3b4ae  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-arm64-apple-darwin-unsigned.tar.gz
1159355c383441d6342f24c2c22d97cd0f09c62fc157320b18b5f7d7bf2c7688  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-arm64-apple-darwin-unsigned.zip
cfadb7856c50e6952dac942ff35c4da2404af5c7a3cd7df254a98ab564059b31  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-arm64-apple-darwin.tar.gz
ca5818a9da182296a08dafeb4473b8ca2418480744a71c89e17bfa5e95cef140  dashcore-23.0.0-rc.2-14-g60c761e4bfa3.tar.gz
dcfea8bed84e93ce2817d864d88be39af8cf5e54e77c1ec8ed8fb084dc59347b  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-riscv64-linux-gnu-debug.tar.gz
0ed92694d36bbf8677cf883d63fc6899c61bb1f8eef4f7fde2458ca1f0ebb8b2  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-riscv64-linux-gnu.tar.gz
0896e5bb85ce9451557d237cc347768f4fba9dbc7ce37f7123073b396232e935  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-x86_64-apple-darwin-unsigned.tar.gz
893d3aa75e588f02f8906964dfa32cda6378874992f79825607516efab0b3129  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-x86_64-apple-darwin-unsigned.zip
f695a716a99b48b0e4f612d7f55af60a9eae2f7d7dba0a808830f6a0e05b9544  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-x86_64-apple-darwin.tar.gz
07f726fb7ad0e46db9d070f275d585f27029c501b42f6a7e30e634899920639d  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-x86_64-linux-gnu-debug.tar.gz
aee81cacfef5b193a4973be42a162b386d6bcc04e0582cfc41ee30e6902fe011  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-x86_64-linux-gnu.tar.gz
8bbaf49094c5c5e81bb56f998d63769016858e2e5567ecdf116875239875d3db  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-win64-debug.zip
68e267390f3d20580627f797423b3ecd4f1b3ba8b9313f4d144be3b5b8b50aad  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-win64-setup-unsigned.exe
775e62a8ab31cfb0bb415578b607a61dde577104a618cc89d4700928252151b1  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-win64-unsigned.tar.gz
9ad5fecc442c4071009c71b1be013d74814a63204bded312e670a11a434beaf1  dashcore-23.0.0-rc.2-14-g60c761e4bfa3-win64.zip

@kwvg kwvg marked this pull request as ready for review October 15, 2025 23:30
@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.0-devpr6895.60c761e4. A new comment will be made when the image is pushed.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
doc/build-osx.md (1)

83-216: Legacy wallet instructions now fail without BDB env exports

brew install berkeley-db@4 alone is not enough: the formula is keg-only and configure will not find headers/libs unless we export the Homebrew paths (e.g. BDB_PREFIX="$(brew --prefix berkeley-db@4)" together with BDB_LIBS/BDB_CFLAGS or CPPFLAGS/LDFLAGS). The previous doc covered this via install_db4.sh; with that gone, we still need to document those exports or builders with legacy wallets will hit configure failures. Please add the missing environment setup to keep the flow working.

🧹 Nitpick comments (1)
contrib/containers/guix/scripts/guix-check (1)

22-22: Remove redundant cleanup.

Line 22 removes GUIX_SIGS_REPO again, but the trap set at line 17 already performs this cleanup on exit. The explicit removal at line 22 is redundant.

Apply this diff to remove the redundant cleanup:

 SHASUM_LOC="${GUIX_SIGS_REPO}/${VERSION}/${SIGNER}"
 cat "${SHASUM_LOC}/all.sha256sums" || cat "${SHASUM_LOC}/noncodesigned.SHA256SUMS"
-rm -rf "${GUIX_SIGS_REPO}"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1ca2db9402bcf7e7352f4ee722882893d94ed856 and 60c761e4bfa3405adb3e83bbc9309ed32f2c0267.

📒 Files selected for processing (18)
  • Makefile.am (0 hunks)
  • contrib/containers/guix/Dockerfile (2 hunks)
  • contrib/containers/guix/channels.scm (1 hunks)
  • contrib/containers/guix/scripts/entrypoint (1 hunks)
  • contrib/containers/guix/scripts/guix-check (1 hunks)
  • contrib/guix/INSTALL.md (3 hunks)
  • contrib/guix/README.md (1 hunks)
  • contrib/guix/guix-build (1 hunks)
  • contrib/guix/guix-codesign (1 hunks)
  • contrib/guix/libexec/build.sh (0 hunks)
  • contrib/guix/libexec/prelude.bash (2 hunks)
  • contrib/install_db4.sh (0 hunks)
  • depends/README.md (1 hunks)
  • doc/build-netbsd.md (1 hunks)
  • doc/build-openbsd.md (1 hunks)
  • doc/build-osx.md (1 hunks)
  • doc/build-unix.md (1 hunks)
  • doc/dependencies.md (1 hunks)
💤 Files with no reviewable changes (3)
  • Makefile.am
  • contrib/install_db4.sh
  • contrib/guix/libexec/build.sh
✅ Files skipped from review due to trivial changes (1)
  • doc/dependencies.md
🚧 Files skipped from review as they are similar to previous changes (6)
  • depends/README.md
  • contrib/containers/guix/channels.scm
  • contrib/guix/INSTALL.md
  • contrib/guix/libexec/prelude.bash
  • contrib/containers/guix/Dockerfile
  • contrib/guix/guix-codesign
🧰 Additional context used
📓 Path-based instructions (2)
contrib/**

📄 CodeRabbit inference engine (CLAUDE.md)

Unless specifically prompted, avoid making changes to the contrib directory (contributed scripts)

Files:

  • contrib/guix/guix-build
  • contrib/containers/guix/scripts/guix-check
  • contrib/containers/guix/scripts/entrypoint
  • contrib/guix/README.md
doc/**

📄 CodeRabbit inference engine (CLAUDE.md)

Unless specifically prompted, avoid making changes to the doc directory (documentation)

Files:

  • doc/build-unix.md
  • doc/build-openbsd.md
  • doc/build-netbsd.md
  • doc/build-osx.md
🔇 Additional comments (4)
contrib/guix/guix-build (1)

72-76: LGTM!

The addition of the check_source_date_epoch sanity check is a good defensive measure to ensure SOURCE_DATE_EPOCH is not unintentionally set before the build process, which helps maintain reproducibility guarantees.

contrib/containers/guix/scripts/entrypoint (1)

8-22: LGTM!

The introduction of a SERVERS array with dynamic URL construction is a maintainable approach. The list includes the German official server (berlin.guix.gnu.org) and mirrors covering North America and Asia-Pacific as described in the PR objectives, which will help reduce container fetch latency for non-European locations.

contrib/guix/README.md (1)

378-379: LGTM!

The documentation updates correctly reflect the migration to bordeaux.guix.gnu.org as the primary substitute server, aligning with the changes in the entrypoint script and the removal of the previously available substitution source mentioned in the PR objectives.

Also applies to: 385-385, 392-392, 399-399

contrib/containers/guix/scripts/guix-check (1)

16-21: LGTM!

The rewrite to use guix-attest for generating checksums is a cleaner approach that reuses existing attestation tooling instead of manually computing sums. The temporary directory lifecycle management with trap and the fallback mechanism for missing files are well-implemented.

@DashCoreAutoGuix
Copy link

Guix Automation has completed; a release should be present here: https://github.com/dashpay/dash-dev-branches/releases/tag/v23.0.0-devpr6895.60c761e4. The image should be on dockerhub soon.

@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.0-devpr6895.c39ab07b. A new comment will be made when the image is pushed.

@DashCoreAutoGuix
Copy link

Guix Automation has completed; a release should be present here: https://github.com/dashpay/dash-dev-branches/releases/tag/v23.0.0-devpr6895.c39ab07b. The image should be on dockerhub soon.

@kwvg
Copy link
Collaborator Author

kwvg commented Oct 16, 2025

guix-check output for c39ab07b285c

Looking for build output SHA256SUMS fragments in /src/dash/guix-build-23.0.0-rc.2-14-gc39ab07b285c/output
Found build output SHA256SUMS fragments:
    '/src/dash/guix-build-23.0.0-rc.2-14-gc39ab07b285c/output/aarch64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-gc39ab07b285c/output/arm64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-gc39ab07b285c/output/riscv64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-gc39ab07b285c/output/x86_64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-gc39ab07b285c/output/x86_64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-14-gc39ab07b285c/output/x86_64-w64-mingw32/SHA256SUMS.part'

Attesting to build outputs for version: '23.0.0-rc.2-14-gc39ab07b285c'

INFO: No codesigned outputs found for '23.0.0-rc.2-14-gc39ab07b285c', skipping...
Not signing SHA256SUMS as $NO_SIGN is not empty

8fd5878c4afa8865147294d2cf1df704e5ffc3545b123ff662b87a57cbade4ec  dashcore-23.0.0-rc.2-14-gc39ab07b285c-aarch64-linux-gnu-debug.tar.gz
40f14e4e6dd913650c29433b8dfa45906ab2d51c3cae78e6afa1f1089372e027  dashcore-23.0.0-rc.2-14-gc39ab07b285c-aarch64-linux-gnu.tar.gz
d2a3cc26a52f8e7be2a672b0772b1d6c8a4c0e4a7a31889220148f7b920a52af  dashcore-23.0.0-rc.2-14-gc39ab07b285c-arm64-apple-darwin-unsigned.tar.gz
43ff4f99d1b27fcdb921feb3193b64f08afce0698f9af7e1a416879c118e5d7c  dashcore-23.0.0-rc.2-14-gc39ab07b285c-arm64-apple-darwin-unsigned.zip
5420b37b03fae7da0d98dc730352fa118b4b521300a3ce992bd1a99c0e96fbe9  dashcore-23.0.0-rc.2-14-gc39ab07b285c-arm64-apple-darwin.tar.gz
0f0a93ffc04539a861cc3e9060e856eb857199721cd064e123dd5c894aaf37fc  dashcore-23.0.0-rc.2-14-gc39ab07b285c.tar.gz
421161c8fcd41fe59c8c307abcfb56b587b0c8174c8eefae784ca1eaec100055  dashcore-23.0.0-rc.2-14-gc39ab07b285c-riscv64-linux-gnu-debug.tar.gz
010b297b52149c2557c086a52cb1b8fc9416943fbaf68d00e24790a80641c5dd  dashcore-23.0.0-rc.2-14-gc39ab07b285c-riscv64-linux-gnu.tar.gz
279b98ce6895cbd8f6594e81de00934af74e948b711fc8a6991916d25e3aa379  dashcore-23.0.0-rc.2-14-gc39ab07b285c-x86_64-apple-darwin-unsigned.tar.gz
0426392fd50801114fa1cdd1652c0a146ac9213cca88de18a42d49b352921bd6  dashcore-23.0.0-rc.2-14-gc39ab07b285c-x86_64-apple-darwin-unsigned.zip
d2aecd6394b3900b28766fa6fa3fab8f3f3503fd28b8fb5d8c9fc08e6a0aa40e  dashcore-23.0.0-rc.2-14-gc39ab07b285c-x86_64-apple-darwin.tar.gz
4391a3f417ecb4e4e51aba2ac6990fe47195c32b006712fc00582d1401ebeec0  dashcore-23.0.0-rc.2-14-gc39ab07b285c-x86_64-linux-gnu-debug.tar.gz
96bfef4a22e0a46c4adaae6bf47d3da73c302892d1b25eff85755b26e4284b29  dashcore-23.0.0-rc.2-14-gc39ab07b285c-x86_64-linux-gnu.tar.gz
149a32571ae38eb37d3cbe7878bd001af26cc08622f6e54d902c8244537fe169  dashcore-23.0.0-rc.2-14-gc39ab07b285c-win64-debug.zip
228ad8e692dab656c53cbde6b7404f018f2d47ffbb05124dddc9b981fca76a0f  dashcore-23.0.0-rc.2-14-gc39ab07b285c-win64-setup-unsigned.exe
075d2f472531191485c66741f4e33788df7e46732fd7d79970fe8c0db0ecf3d5  dashcore-23.0.0-rc.2-14-gc39ab07b285c-win64-unsigned.tar.gz
d86a1cd8d006b186563664dd4665bcd5382126ba8ff7091ec13ae1bfcb583e24  dashcore-23.0.0-rc.2-14-gc39ab07b285c-win64.zip

@github-actions
Copy link

This pull request has conflicts, please rebase.

Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

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

I get exactly the same output for c39ab07b285cf6c91a6947617671896cb1505571 locally so it works I guess (did not review individual commits yet). I had to fix it first though to be able to build fresh container (see issues below, can be fixed with e071871a91e5a666d17b3374344210045ebd91b5, gha guix build https://github.com/UdjinM6/dash/actions/runs/18607998322).

@kwvg
Copy link
Collaborator Author

kwvg commented Oct 18, 2025

guix-check output for e765d4905788

Looking for build output SHA256SUMS fragments in /src/dash/guix-build-23.0.0-rc.2-48-ge765d4905788/output
Found build output SHA256SUMS fragments:
    '/src/dash/guix-build-23.0.0-rc.2-48-ge765d4905788/output/aarch64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-ge765d4905788/output/arm64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-ge765d4905788/output/riscv64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-ge765d4905788/output/x86_64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-ge765d4905788/output/x86_64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-ge765d4905788/output/x86_64-w64-mingw32/SHA256SUMS.part'

Attesting to build outputs for version: '23.0.0-rc.2-48-ge765d4905788'

INFO: No codesigned outputs found for '23.0.0-rc.2-48-ge765d4905788', skipping...
Not signing SHA256SUMS as $NO_SIGN is not empty

f5221db7548bd10106644f81857c6d79016ddf95bbc4fdc571d6695197fa46f2  dashcore-23.0.0-rc.2-48-ge765d4905788-aarch64-linux-gnu-debug.tar.gz
d86361eb7fd0e03c2ac573efec882c35ae192100048d6f19c4cfbd978b8edf25  dashcore-23.0.0-rc.2-48-ge765d4905788-aarch64-linux-gnu.tar.gz
6a41e37bc3b666fab75499a853a4280db08523dc51560fcc7c10adbe1ac6a789  dashcore-23.0.0-rc.2-48-ge765d4905788-arm64-apple-darwin-unsigned.tar.gz
418c7b57d3eb7141dca21dd15a7eeff7eaa4107c3289353b7181e50475a33b55  dashcore-23.0.0-rc.2-48-ge765d4905788-arm64-apple-darwin-unsigned.zip
fdbf7125a1b3e37837f173e1d9ef7554b07510f3ad12e2e0485ed96fb3c39f78  dashcore-23.0.0-rc.2-48-ge765d4905788-arm64-apple-darwin.tar.gz
967b4938115a429bb0c688f7c27d237889feb4a2e4361679eb847591103e0d9d  dashcore-23.0.0-rc.2-48-ge765d4905788.tar.gz
eb2ee3ce513c910a9533cfd6ac9ef50248f4b4661c934c9aec571c96c303b484  dashcore-23.0.0-rc.2-48-ge765d4905788-riscv64-linux-gnu-debug.tar.gz
3d31313071d184ed9f5be9e41147328db0198696048b8b56d22ab06a46003386  dashcore-23.0.0-rc.2-48-ge765d4905788-riscv64-linux-gnu.tar.gz
60f27a7bd0d59636c263dfe3060b8e1a73fec5e9952dd2eefeba649d57026291  dashcore-23.0.0-rc.2-48-ge765d4905788-x86_64-apple-darwin-unsigned.tar.gz
2324d24f139bd18bc201aabe1ef750df13df5c396e05405987c6c7fb556ea599  dashcore-23.0.0-rc.2-48-ge765d4905788-x86_64-apple-darwin-unsigned.zip
8f78b7ad0e82db06be37bce32cb69907dc319ef7a0a4358f453d82ed2a8e4ef9  dashcore-23.0.0-rc.2-48-ge765d4905788-x86_64-apple-darwin.tar.gz
a4c14e3e0bbd098cd759d8a12f6b3b683546d1f1ef221064fbaa2fe128a24958  dashcore-23.0.0-rc.2-48-ge765d4905788-x86_64-linux-gnu-debug.tar.gz
d8839d323fd3f13b74974c22443f183cf03c565a4cd01cb34693b951324316df  dashcore-23.0.0-rc.2-48-ge765d4905788-x86_64-linux-gnu.tar.gz
ba91ad091bae27423d4ce7db8447bc56b5933279319dea63796a736cc8d129ca  dashcore-23.0.0-rc.2-48-ge765d4905788-win64-debug.zip
2cfbadb949a891ecaedf30f9f297410315c43d1c95beeb17c460e99545d2f864  dashcore-23.0.0-rc.2-48-ge765d4905788-win64-setup-unsigned.exe
bc2a7ae39583e3b3c300628a9a8816e8612feb646f494d9a9315c572d11fb373  dashcore-23.0.0-rc.2-48-ge765d4905788-win64-unsigned.tar.gz
dff0f69678104d92c737e166f0729cfb544bd25b7bfd10479c326093d3581790  dashcore-23.0.0-rc.2-48-ge765d4905788-win64.zip

@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.0-devpr6895.e765d490. A new comment will be made when the image is pushed.

@DashCoreAutoGuix
Copy link

Guix Automation has completed; a release should be present here: https://github.com/dashpay/dash-dev-branches/releases/tag/v23.0.0-devpr6895.e765d490. The image should be on dockerhub soon.

@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.0-devpr6895.f7ae76b1. A new comment will be made when the image is pushed.

@DashCoreAutoGuix
Copy link

Guix Automation has completed; a release should be present here: https://github.com/dashpay/dash-dev-branches/releases/tag/v23.0.0-devpr6895.f7ae76b1. The image should be on dockerhub soon.

@kwvg
Copy link
Collaborator Author

kwvg commented Oct 19, 2025

guix-check output for f7ae76b

Looking for build output SHA256SUMS fragments in /src/dash/guix-build-23.0.0-rc.2-48-gf7ae76b1516d/output
Found build output SHA256SUMS fragments:
    '/src/dash/guix-build-23.0.0-rc.2-48-gf7ae76b1516d/output/aarch64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-gf7ae76b1516d/output/arm64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-gf7ae76b1516d/output/riscv64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-gf7ae76b1516d/output/x86_64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-gf7ae76b1516d/output/x86_64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-48-gf7ae76b1516d/output/x86_64-w64-mingw32/SHA256SUMS.part'

Attesting to build outputs for version: '23.0.0-rc.2-48-gf7ae76b1516d'

INFO: No codesigned outputs found for '23.0.0-rc.2-48-gf7ae76b1516d', skipping...
Not signing SHA256SUMS as $NO_SIGN is not empty

4a8d22da43e02271fd3209da84329c4f1f256825d4a418fb116b65d3ece5380c  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-aarch64-linux-gnu-debug.tar.gz
4adf10efbf029f2747893d8fb6d13e9c426a2bf02e86f7150d9f389933376209  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-aarch64-linux-gnu.tar.gz
7e7b3c286c0207c7309b81dc57fbab200441959fcd5dbfce7cc2f1ecf1f1dc22  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-arm64-apple-darwin-unsigned.tar.gz
3f1ab36ed81a77e3a136be04f4807e1b08ca051e5b9fec1f15366c4137cd8ae5  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-arm64-apple-darwin-unsigned.zip
8411fa8b20d82ccbbfc6537a7c38b850aa0428dbc051c8866b9ed4031057d2fb  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-arm64-apple-darwin.tar.gz
b2322d1d55a65e72805151c26283c65f62aa7b1987803eb9f8664e04c887fe2c  dashcore-23.0.0-rc.2-48-gf7ae76b1516d.tar.gz
95b70f8fa909c9bec93ba211abc98372865ef2edb1a28d80399e7b4ef26aaa71  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-riscv64-linux-gnu-debug.tar.gz
0692b0d4fa8ec1341f38df567d7ac971e0d4d67cbf89934c90b135bb55fafe18  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-riscv64-linux-gnu.tar.gz
802adb7c84674f9a0eb0c5fd72756d4283cf1f562046f8a6a2bc077488c45495  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-x86_64-apple-darwin-unsigned.tar.gz
782cf125965f00216679c8ea7a707b39ee1ad06d1aab98c333777f8c90d6a69c  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-x86_64-apple-darwin-unsigned.zip
c3232843c8832ec079aaf1d8dff813fa26f03ed8cc70ae497de796f1eba312cb  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-x86_64-apple-darwin.tar.gz
de0b590f219f076555f6417e4148613b16e4541edbd279e9eb3bfdc4295e8d1d  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-x86_64-linux-gnu-debug.tar.gz
c83a76e97a4afa5967ee117851338780b562fecc8c01dedb0a51f90b0949ab23  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-x86_64-linux-gnu.tar.gz
4ac0fdf911ca11fd0f3ab34f12865c8938255936122b03a47378b72a1fd6d19a  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-win64-debug.zip
1ef7566e32e8789559d7d85f4dae736d9cf1c8a9cdae91ab9af6661450b48fc2  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-win64-setup-unsigned.exe
38fba5074637db4935fd3416cdd02d95b8f32b88b4d75690a202334c64c0ba58  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-win64-unsigned.tar.gz
07c2931160bbafeae74dd1445846dd5f325e6be1428956c155ef1946fdf13491  dashcore-23.0.0-rc.2-48-gf7ae76b1516d-win64.zip

kwvg and others added 14 commits October 20, 2025 19:35
This section should've been gone with bitcoin#21343 (ddc6fca in
dash#6114)
The disclaimer needs to be more generic because
* libbacktrace is an *optional* dependency if `--enable-stacktraces=no`
  is passed during configuration
* `dashpay/bls-signatures` was made in-tree with dash#5077
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Needed to accommodate for differences in network performance due to
geography as each new container instance has to re-download everything.
We don't need to import new public keys as they inherit the key for the
server they're mirroring (i.e. the mirror cannot modify the contents it
is mirroring without _also_ invalidating it), so the risk of malicious
changes are relatively mitigated.
The ad-hoc generation method we use now can't be compared against the
attested checksums on dashpay/guix.sigs, so we resort to using a
creative use of guix-attest to generate the exact set of checksums that
an attestor would generate.
@kwvg
Copy link
Collaborator Author

kwvg commented Oct 20, 2025

guix-check output for 18d9966

Looking for build output SHA256SUMS fragments in /src/dash/guix-build-23.0.0-rc.2-51-g18d9966a21fa/output
Found build output SHA256SUMS fragments:
    '/src/dash/guix-build-23.0.0-rc.2-51-g18d9966a21fa/output/aarch64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-51-g18d9966a21fa/output/arm64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-51-g18d9966a21fa/output/riscv64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-51-g18d9966a21fa/output/x86_64-apple-darwin/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-51-g18d9966a21fa/output/x86_64-linux-gnu/SHA256SUMS.part'
    '/src/dash/guix-build-23.0.0-rc.2-51-g18d9966a21fa/output/x86_64-w64-mingw32/SHA256SUMS.part'

Attesting to build outputs for version: '23.0.0-rc.2-51-g18d9966a21fa'

INFO: No codesigned outputs found for '23.0.0-rc.2-51-g18d9966a21fa', skipping...
Not signing SHA256SUMS as $NO_SIGN is not empty

570d8360543a55768dfd5a0ec0642568719e833027875b998930641632937b9c  dashcore-23.0.0-rc.2-51-g18d9966a21fa-aarch64-linux-gnu-debug.tar.gz
d1cf1aade7d787db3bd2f76e6973298d3f5bc22a555c7ecfd9bbc3413e50bc10  dashcore-23.0.0-rc.2-51-g18d9966a21fa-aarch64-linux-gnu.tar.gz
132db7182e52cb5966b8b6bfcef403499c2cda0f79eb30e31adada2f08a629a1  dashcore-23.0.0-rc.2-51-g18d9966a21fa-arm64-apple-darwin-unsigned.tar.gz
7fffe031f19aebb17606e370d319ffc501a5bedd5c499248f4e7d2ddb74c8360  dashcore-23.0.0-rc.2-51-g18d9966a21fa-arm64-apple-darwin-unsigned.zip
774cb486e19c30a15ab1ad903f01060f8009c714b098c5bb41490aa16ec24d60  dashcore-23.0.0-rc.2-51-g18d9966a21fa-arm64-apple-darwin.tar.gz
625920eb321c3e9ed3babba9dda69b4b489a6562d8f017b20a323ae3bb3a905f  dashcore-23.0.0-rc.2-51-g18d9966a21fa.tar.gz
a5b410f226cd878514abc9443b3f10ce2bd58a28cc829d45f4ed89c1dd21cc16  dashcore-23.0.0-rc.2-51-g18d9966a21fa-riscv64-linux-gnu-debug.tar.gz
1283264c4c6883a09c554c0127317c7d2ddb261a362894381e19efcefaa1afaf  dashcore-23.0.0-rc.2-51-g18d9966a21fa-riscv64-linux-gnu.tar.gz
45bfe1c9cb7f45d00d2d7827f2d01f3849152f261efe211dd77201a8bffdedc0  dashcore-23.0.0-rc.2-51-g18d9966a21fa-x86_64-apple-darwin-unsigned.tar.gz
8e4085a1f6f1bab7c18135efae3b50b9f9f8fc8566227555626b481dc009fd07  dashcore-23.0.0-rc.2-51-g18d9966a21fa-x86_64-apple-darwin-unsigned.zip
94578a5dcf77c0f631a258a76df3b11b41965dd757de4bf14b6f1f86a87dcb7f  dashcore-23.0.0-rc.2-51-g18d9966a21fa-x86_64-apple-darwin.tar.gz
5f79950ca33862cdf35d218823a29d5f96fb9f0a995f59d70cafa930fcc62e23  dashcore-23.0.0-rc.2-51-g18d9966a21fa-x86_64-linux-gnu-debug.tar.gz
608a7f43f4d1ab446c5ff1fb2fa3e6b984c8345d7c65c67ab477a81c09826601  dashcore-23.0.0-rc.2-51-g18d9966a21fa-x86_64-linux-gnu.tar.gz
714ab6474e638a68738fbd21083c1656f659f26bc6412b6d972ca12b9fa67ebe  dashcore-23.0.0-rc.2-51-g18d9966a21fa-win64-debug.zip
29748d3790e4522ba3d884216789b76e7386c331d3c85e9fd25edcc3c4195bce  dashcore-23.0.0-rc.2-51-g18d9966a21fa-win64-setup-unsigned.exe
a47a0c53c1b790ab32454568af74609e7568fcc86eeb5f3c576ebc063b3d812c  dashcore-23.0.0-rc.2-51-g18d9966a21fa-win64-unsigned.tar.gz
de0789eeb56d3b7a3fbbffe6c3381cb9993179ac97bee010d60eb8a8b8f4afbe  dashcore-23.0.0-rc.2-51-g18d9966a21fa-win64.zip

@kwvg kwvg changed the title ci: merge bitcoin#24585, #25549, #26834, #30989, #32498, #32439, #32678, #33073, update channels, substitution servers, fix guix-check ci: merge bitcoin#24585, #25549, #26834, #26773, #30989, #32498, #32439, #32678, #33073, update channels, substitution servers, fix guix-check Oct 20, 2025
@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.0-devpr6895.18d9966a. A new comment will be made when the image is pushed.

@kwvg kwvg requested a review from knst October 20, 2025 16:07
@DashCoreAutoGuix
Copy link

Guix Automation has completed; a release should be present here: https://github.com/dashpay/dash-dev-branches/releases/tag/v23.0.0-devpr6895.18d9966a. The image should be on dockerhub soon.

Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

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

ACK 18d9966

Copy link
Collaborator

@knst knst left a comment

Choose a reason for hiding this comment

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

LGTM 18d9966

@PastaPastaPasta PastaPastaPasta merged commit 13a44ef into dashpay:develop Oct 21, 2025
37 of 42 checks passed
@PastaPastaPasta PastaPastaPasta modified the milestones: 23, 23.1 Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants