Skip to content

Conversation

@kwvg
Copy link
Collaborator

@kwvg kwvg commented Oct 28, 2025

Motivation

While working on adding support for Rust to our build system (see dash#7109), there were sources of conflict between our current setup and the minimums demanded by Rust and our FFI crate, cxx. Specifically, Dash Core currently targets building for Windows 7 (source, 0x601) in direct conflict with the decision by Rusts' maintainers to drop support for Windows 7 effective Rust 1.78 (source)

More recent versions of Rust have issues that require additional workarounds (see rust-lang/rust#128218) to keep support for Windows 7 around and using older versions of Rust is infeasible since both cxx and Rust packages currently under evaluation for integration with Dash Core require Rust 1.82+.

Additionally, non-conformant definitions in the macOS SDK cause issues when attempting to build crates with FFI definitions (see dtolnay/cxx#1574) which is resolved by an additional SDK bump that is not in the scope of this PR as it is above the SDK version used upstream but does give cause to also consider a macOS target version bump, which is done by upstream.

Additional Information

Breaking Changes

Dash Core binaries will now target Windows 10 and macOS 14 (Sonoma), replacing the previous target Windows 7 and macOS 11 (Big Sur).

Checklist

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas (note: N/A)
  • 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 (for repository code-owners and collaborators only)

@kwvg kwvg added this to the 24 milestone Oct 28, 2025
@github-actions
Copy link

github-actions bot commented Oct 28, 2025

⚠️ Potential Merge Conflicts Detected

This PR has potential conflicts with the following open PRs:

Please coordinate with the authors of these PRs to avoid merge conflicts.

@github-actions
Copy link

This pull request has conflicts, please rebase.

PastaPastaPasta added a commit that referenced this pull request Nov 14, 2025
, bitcoin#30584, bitcoin#31982, bitcoin#32086, bitcoin#31998, bitcoin#32505, bitcoin#32568, bitcoin#32690, bitcoin#32731, bitcoin#32716, bitcoin#32837, bitcoin#32266, bitcoin#30095, bitcoin#30137, bitcoin#33580, partial bitcoin#30454 (build backports: part 4)

8e79c7a fix: allow `dbghelp.dll` for PE targets (Kittywhiskers Van Gogh)
f97d3d6 fix: skip `EXPORTED_SYMBOLS` validation on ELF targets (Kittywhiskers Van Gogh)
d5dffb6 merge bitcoin#33580: Use $(package)_file_name when downloading from the fallback (Kittywhiskers Van Gogh)
b7febbe merge bitcoin#30137: Remove `--enable-threadlocal` (Kittywhiskers Van Gogh)
dcf67c7 merge bitcoin#30095: avoid using thread_local variable that has a destructor (Kittywhiskers Van Gogh)
4e57d1a merge bitcoin#32266: Avoid `warning: "_FORTIFY_SOURCE"` redefined for `libevent` (Kittywhiskers Van Gogh)
6e66ef8 merge bitcoin#32837: fix libevent `_WIN32_WINNT` usage (Kittywhiskers Van Gogh)
61f2a23 merge bitcoin#32716: Override host compilers for FreeBSD and OpenBSD (Kittywhiskers Van Gogh)
ca52975 merge bitcoin#32731: Build `qt` package for FreeBSD hosts (Kittywhiskers Van Gogh)
ee9e934 build: check against `$host` instead of `TARGET_OS` in stacktrace search (Kittywhiskers Van Gogh)
44d32a3 merge bitcoin#32690: fix multiprocess build on OpenBSD (apply capnp patch, correct SHA256SUM command) (Kittywhiskers Van Gogh)
8d90c3c merge bitcoin#32568: use "mkdir -p" when installing xproto (Kittywhiskers Van Gogh)
d4bc0aa merge bitcoin#32505: bump to latest config.guess and config.sub (Kittywhiskers Van Gogh)
6020cdc merge bitcoin#31998: patch around PlacementNew issue in capnp (Kittywhiskers Van Gogh)
00350a0 merge bitcoin#32086: Shuffle depends instructions and recommend modern make for macOS (Kittywhiskers Van Gogh)
c8e27a2 merge bitcoin#31982: rename libmultiprocess repository (Kittywhiskers Van Gogh)
86d0a27 merge bitcoin#30584: Make default `host` and `build` comparable (Kittywhiskers Van Gogh)
e6d6d17 merge bitcoin#31840: add missing Darwin objcopy (Kittywhiskers Van Gogh)
8d887c3 merge bitcoin#31626: Use base system's `sha256sum` utility on FreeBSD (Kittywhiskers Van Gogh)
b443c14 partial bitcoin#30454: Introduce CMake-based build system (Kittywhiskers Van Gogh)
67aa238 merge bitcoin#31100: remove dependency install instructions from win docs (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on #6918

  * Dependency for #6927

  * [dash#6966](#6966) broke Guix build post-compilation binary verification for ELF and PE binaries as

    * For PE binaries, with improved `libbacktrace` detection, we are now building the capability in Windows binaries and that introduces a dependency on `dbghelp.dll` ([source](https://github.com/dashpay/dash/blob/edcb9f265b63693a8e684bd22fba5555434eff62/configure.ac)) that wasn't in the `PE_ALLOWED_LIBRARIES` allowlist, it has since been added.

    * For ELF binaries, now that we use `-export-dynamic` for symbol preservation, the `EXPORTED_SYMBOLS` check now fails. As the diagnostic value of retaining these symbols far exceeds the file size reduction, we have opted to comment out the test entirely.

  ## Breaking Changes

  None expected.

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    re-utACK 8e79c7a

Tree-SHA512: 08f904dfcbf4ece848fe805395d78b3615ff40ed5d4df3afa73576de8960ccee5c70547495aefba54cd7b01dceefe0933831640484b0996468189da265dc711b
@github-actions
Copy link

github-actions bot commented Dec 1, 2025

This pull request has conflicts, please rebase.

@kwvg kwvg force-pushed the build_bps_p5 branch 2 times, most recently from d3f9c15 to a4a94dc Compare January 15, 2026 21:13
@kwvg kwvg changed the title backport: merge bitcoin#31048, #31099, #31172, #32400, #31608, #13151, #26415, #30321, #30263, #33489, partial bitcoin#29023, #30454, #32922, #27125 (build backports: part 5) backport: merge bitcoin#30423, #31048, #31099, #27038, #31172, #31450, #31608, #31818, #32458, #32400, #33178, #33780, #33181, partial bitcoin#29023, #30454, #32922, #33489 (build backports: part 5) Jan 15, 2026
@kwvg kwvg modified the milestones: 24, 23.1 Jan 15, 2026
@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.2-devpr6927.a4a94dcd. 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.2-devpr6927.a4a94dcd. The image should be on dockerhub soon.

@kwvg kwvg changed the title backport: merge bitcoin#30423, #31048, #31099, #27038, #31172, #31450, #31608, #31818, #32458, #32400, #33178, #33780, #33181, partial bitcoin#29023, #30454, #32922, #33489 (build backports: part 5) backport: merge bitcoin#30423, #31048, #31099, #27038, #31172, #31450, #31608, #31818, #29881, #32458, #32400, #33178, #33780, #33181, partial bitcoin#29023, #30454, #32922, #33489 (build backports: part 5) Jan 16, 2026
@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.2-devpr6927.39a2ce91. A new comment will be made when the image is pushed.

@kwvg
Copy link
Collaborator Author

kwvg commented Jan 16, 2026

Checksums for 39a2ce9

954cc66f80fe8bacd8bccd98d8072f12d83fff341996e3b182d9a410e7a00597  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-aarch64-linux-gnu-debug.tar.gz
c87eb708e9a122f9a13e80e41d5b50f3f16da2eaa08eea5233ca455e13c81ff4  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-aarch64-linux-gnu.tar.gz
49638109401b055255249b9cc7349619248edd36dcfe3b99a1f1740041ec9458  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-arm64-apple-darwin-unsigned.tar.gz
0c500608e8ac1e621b39328b2394b62c37a04248ee100a3e5076dead111cd7d4  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-arm64-apple-darwin-unsigned.zip
ac83cee231e04a4cad31cfed3a206d05581d4eaef4f465a57302aa827799f844  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-arm64-apple-darwin.tar.gz
f369ead5716877a3ec559ce37aa4eb4eed90b89c341e715567a0861c8036bb52  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9.tar.gz
e6ebaefe917b73c10bb339428368ca0a5fedb2b57cfead4328fb6dcbd4f1c66b  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-riscv64-linux-gnu-debug.tar.gz
3407dec0ed362e1950e61e9f81666ad9f50dd7fe3ef49519457a6ee4d695ad55  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-riscv64-linux-gnu.tar.gz
a6c98a9f5c17eaa90496e7885ad06363ac32780d716272564ce7043d898cb87c  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-x86_64-apple-darwin-unsigned.tar.gz
5d7c019335ff048f2cc8da04dbda742ce842eb0af734869f926cb649c6fae9eb  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-x86_64-apple-darwin-unsigned.zip
fc2b3d954abbff7573d6b8180ce28cbeabc097adbf99d0cbf23fb605947f7d7c  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-x86_64-apple-darwin.tar.gz
432c43232db613fbb175feb9db656ac97a1c1880c798c07b76e4df954fa9d6bb  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-x86_64-linux-gnu-debug.tar.gz
21a995882b8d0da8ed78f7e4fd1cce5d05d5816bdede09c65c3ce5676c12aa17  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-x86_64-linux-gnu.tar.gz
3e4a0db061a6e8d024a7d40c2520d68bbfa0c371d55c394567f7a163872fa01d  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-win64-debug.zip
5856bdc2cd7577cc9378b39c11f3bc250ff8ecac0f0e2ca7077dba7a57ec7849  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-win64-setup-unsigned.exe
3ec89cf5cfe02689e3522d897ef76372fa4158174e4850314cec8e1335604d35  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-win64-unsigned.tar.gz
d343117e85473015a2298fe2f8227cb10fdd41f9e54e789e9c00dbbd0d25bd2c  dashcore-0.17.0.0-rc3-12678-g39a2ce91f8a9-win64.zip

@DashCoreAutoGuix
Copy link

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

@kwvg kwvg force-pushed the build_bps_p5 branch 3 times, most recently from 39a2ce9 to fa4344d Compare January 17, 2026 10:38
@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.2-devpr6927.fa4344d1. 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.2-devpr6927.fa4344d1. The image should be on dockerhub soon.

kwvg added 21 commits January 23, 2026 21:11
includes:
- changes to `depends/packages/native_libmultiprocess.mk`
@kwvg
Copy link
Collaborator Author

kwvg commented Jan 23, 2026

Checksums for ad5c299

3a2c8caa0f898e3fc5474266f300323f2abb346b71055401d215de9905b6eeec  dashcore-23.0.2-1116-gad5c299c7f38-aarch64-linux-gnu-debug.tar.gz
07f4ff81170b91a9e375f26567e1d987269b2d72ea1b3ed1dc22ef3ea22d1409  dashcore-23.0.2-1116-gad5c299c7f38-aarch64-linux-gnu.tar.gz
fb4209d1449a892883844da1877754af702b1e25aa8c46102e20586f2a879f75  dashcore-23.0.2-1116-gad5c299c7f38-arm64-apple-darwin-unsigned.tar.gz
365919703b984af41f85970cbf6a3877ff2793cc10f891707b7f25ad00b21c0c  dashcore-23.0.2-1116-gad5c299c7f38-arm64-apple-darwin-unsigned.zip
28110be2bd94ce35d000c1c2ca772c62f5298eb5ef173e58003ccec84c9d57ca  dashcore-23.0.2-1116-gad5c299c7f38-arm64-apple-darwin.tar.gz
13f7f926255b2f1923c8d5c9003886f5142dc260ae2adb86e2b8ed1689421c41  dashcore-23.0.2-1116-gad5c299c7f38.tar.gz
a5659b50f13defe01a1907753bcce67f604ed80543230255abf6a2e5d943d53d  dashcore-23.0.2-1116-gad5c299c7f38-riscv64-linux-gnu-debug.tar.gz
5870d3366f25c3b16f0e929792dc773b6d404742fbd88056417e493de0c3a788  dashcore-23.0.2-1116-gad5c299c7f38-riscv64-linux-gnu.tar.gz
502aee8aed20da02dbb7890b77b2757aa64b47b7d63aec661987187224c91fd5  dashcore-23.0.2-1116-gad5c299c7f38-x86_64-apple-darwin-unsigned.tar.gz
31008942066a34029dc7118f14518774fcef874a136e3da463abe49adaf544d2  dashcore-23.0.2-1116-gad5c299c7f38-x86_64-apple-darwin-unsigned.zip
400054f62d3eb3f4c4adb5069bec0757d14353141cf06afbfbaaec6101f0c963  dashcore-23.0.2-1116-gad5c299c7f38-x86_64-apple-darwin.tar.gz
eb7d2a44259ff34cea75ddae6db9bdb30ce02ebe6e893e9e0c70a1cf2643cb17  dashcore-23.0.2-1116-gad5c299c7f38-x86_64-linux-gnu-debug.tar.gz
eb22856b4e549b81344c32187dc44ee9a41ad9c76288cb802ee59f2fb4bcbfd3  dashcore-23.0.2-1116-gad5c299c7f38-x86_64-linux-gnu.tar.gz
22aa5ea41eab13decc2055fc48cbd888c8095ac4a7cb80daf1e551dd8dc00e54  dashcore-23.0.2-1116-gad5c299c7f38-win64-debug.zip
707712edff8e529a8046e0164ca34382da7e040722b9e070ca78a747a6bfe0d4  dashcore-23.0.2-1116-gad5c299c7f38-win64-setup-unsigned.exe
8cd6d844dad3811de309c1a0db0f4347b514522d7041f4127ff93b1931cb9a90  dashcore-23.0.2-1116-gad5c299c7f38-win64-unsigned.tar.gz
17c4d61d6e7754dfcbb493881627ddb3169332064395c55ece1d60b5941595f7  dashcore-23.0.2-1116-gad5c299c7f38-win64.zip

@kwvg kwvg changed the title backport: merge bitcoin#30423, #31048, #31099, #27038, #31172, #31450, #31608, #31818, #32458, #32400, #33178, partial bitcoin#29023, #30454, #32922, #33489 (build backports: part 5) backport: merge bitcoin#30423, #27038, #31048, #31099, #31172, #31450, #31608, #31818, #29881, #32458, #32400, #32760, #33178, #33312, #33780, #33181, #34102, partial bitcoin#29023, #30454, #30509, #30510, #31105, #32922, #33489, #33445 (build backports: part 5) Jan 23, 2026
@DashCoreAutoGuix
Copy link

Guix Automation has began to build this PR tagged as v23.0.2-devpr6927.ad5c299c. 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: 1

🤖 Fix all issues with AI agents
In `@contrib/guix/manifest.scm`:
- Line 96: Revert the change to contrib/manifest.scm that sets (define base-gcc
gcc-13) — do not modify files under contrib; instead restore the original file
state (remove or undo the edited line referencing base-gcc) and, if you need to
update the toolchain reference (gcc-toolchain-13 / "static" output), open an
issue or wait for explicit approval and apply that change in an allowed location
per repo guidelines; reference the symbol base-gcc and the package
gcc-toolchain-13 when making or discussing the approved change.
♻️ Duplicate comments (2)
contrib/guix/symbol-check.py (1)

151-154: Indentation style flagged by flake8 E122.

The set items lack indentation, triggering flake8 E122. However, this style appears consistent with the upstream backport source.

contrib/guix/security-check.py (1)

275-286: Remove the unused binary.concrete expression on line 278.

This line accesses Binary.concrete without using the result. Per LIEF documentation, this is merely a dynamic cast returning a reference—it has no side effects. The line serves no purpose and should be deleted.

Suggested fix
     binary = lief.parse(filename)
     etype = binary.format
     arch = binary.abstract.header.architecture
-    binary.concrete

     failed: List[str] = []

(license (package-license xgcc)))))

(define base-gcc gcc-12) ;; 12.4.0
(define base-gcc gcc-13) ;; 13.3.0
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Check the file context around line 96, 530, and 552
cat -n contrib/guix/manifest.scm | sed -n '90,102p'

Repository: dashpay/dash

Length of output: 699


🏁 Script executed:

cat -n contrib/guix/manifest.scm | sed -n '525,535p'

Repository: dashpay/dash

Length of output: 347


🏁 Script executed:

cat -n contrib/guix/manifest.scm | sed -n '548,558p'

Repository: dashpay/dash

Length of output: 565


🏁 Script executed:

# Check for gcc-toolchain references in the file
rg "gcc-toolchain" contrib/guix/manifest.scm

Repository: dashpay/dash

Length of output: 130


🌐 Web query:

Guix gcc-toolchain-13 package static output

💡 Result:

In GNU Guix, gcc-toolchain-13 (typically gcc-toolchain@13.3.0) is a toolchain meta-package with multiple outputs, including static. The static output exists so you can install the toolchain’s static libc pieces (i.e., it unions in the libc’s static output—glibc:static in the default toolchain), which is what you need for fully-static linking against glibc. [1] [2] [3]

Practical usage:

# Inspect outputs (you should see: out, debug, static)
guix show gcc-toolchain@13.3.0

# Build / get the store path for the static output
guix build gcc-toolchain@13.3.0:static

# Install the static output into your profile
guix install gcc-toolchain@13.3.0:static

Sources:
[1] https://packages.guix.gnu.org/packages/gcc-toolchain/4.8.5/
[2] https://www.linux.org.ru/forum/development/15688245
[3] https://lists.gnu.org/archive/html/help-guix/2022-04/msg00060.html


Do not modify contrib/ directory—changes to build system files in contrib, .github, depends, ci, and doc directories are prohibited unless explicitly prompted.

This file change violates the coding guidelines. Additionally, the gcc-toolchain-13 package with "static" output is available in GNU Guix, so the toolchain reference itself is sound; however, the file location constraint must be addressed.

🤖 Prompt for AI Agents
In `@contrib/guix/manifest.scm` at line 96, Revert the change to
contrib/manifest.scm that sets (define base-gcc gcc-13) — do not modify files
under contrib; instead restore the original file state (remove or undo the
edited line referencing base-gcc) and, if you need to update the toolchain
reference (gcc-toolchain-13 / "static" output), open an issue or wait for
explicit approval and apply that change in an allowed location per repo
guidelines; reference the symbol base-gcc and the package gcc-toolchain-13 when
making or discussing the approved change.

@DashCoreAutoGuix
Copy link

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

@kwvg kwvg requested review from UdjinM6 and removed request for UdjinM6 January 23, 2026 20:10
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.

utACK ad5c299

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.

3 participants