Skip to content

Conversation

@0xB10C
Copy link
Contributor

@0xB10C 0xB10C commented Apr 14, 2025

Bitcoin Core switched the build system from autotools to cmake.

The cmake flags were mapped from the autotools configure flags as per https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Autotools-to-CMake-Options-Mapping

With cmake, $PWD ends up being the "build" directory and to access the source dir (e.g. to access the shell completions), we need to use the parent dir.

The miniupnpc dependency has been dropped in Bitcoin Core v29.0. See https://github.com/bitcoin-core/bitcoin-devwiki/wiki/29.0-Release-Notes-draft#p2p-and-network-changes

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. labels Apr 14, 2025
@nix-owners nix-owners bot requested review from prusnak and roconnor April 14, 2025 15:10
With cmake, $PWD ends up being the "build" directory and to access the
source dir (e.g. to access the shell completions), we need to use the
parent dir.

The cmake flags were mapped from the autotools configure flags as per
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Autotools-to-CMake-Options-Mapping

The `miniupnpc` dependency has been dropped in Bitcoin Core v29.0. See
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/29.0-Release-Notes-draft#p2p-and-network-changes
@0xB10C 0xB10C force-pushed the 2025-03-bitcoin-core-cmake-v29 branch from c948e21 to 71175d0 Compare April 14, 2025 16:13
@prusnak
Copy link
Member

prusnak commented Apr 14, 2025

tested locally 👍

@prusnak prusnak merged commit 2ffed59 into NixOS:master Apr 14, 2025
23 of 27 checks passed
@0xB10C 0xB10C deleted the 2025-03-bitcoin-core-cmake-v29 branch April 15, 2025 14:01
@0xB10C
Copy link
Contributor Author

0xB10C commented Apr 15, 2025

ZMQ isn't compiled in anymore since it's now opt-in with -DWITH_ZMQ=ON. See https://x.com/hhebasto/status/1911779596451578196 and bitcoin/bitcoin#32258 (comment)

Other now opt-in features possibly affected too.

@0xB10C
Copy link
Contributor Author

0xB10C commented Apr 15, 2025

For pkg bitcoind:

bitcoind> Configure summary
bitcoind> =================
bitcoind> Executables:
bitcoind>   bitcoind ............................ ON
bitcoind>   bitcoin-node (multiprocess) ......... OFF
bitcoind>   bitcoin-qt (GUI) .................... OFF
bitcoind>   bitcoin-gui (GUI, multiprocess) ..... OFF
bitcoind>   bitcoin-cli ......................... ON
bitcoind>   bitcoin-tx .......................... ON
bitcoind>   bitcoin-util ........................ ON
bitcoind>   bitcoin-wallet ...................... ON
bitcoind>   bitcoin-chainstate (experimental) ... OFF
bitcoind>   libbitcoinkernel (experimental) ..... OFF
bitcoind> Optional features:
bitcoind>   wallet support ...................... ON
bitcoind>    - descriptor wallets (SQLite) ...... ON
bitcoind>    - legacy wallets (Berkeley DB) ..... OFF
bitcoind>   external signer ..................... ON
bitcoind>   ZeroMQ .............................. OFF
bitcoind>   USDT tracing ........................ OFF
bitcoind>   QR code (GUI) ....................... OFF
bitcoind>   DBus (GUI, Linux only) .............. OFF
bitcoind> Tests:
bitcoind>   test_bitcoin ........................ ON
bitcoind>   test_bitcoin-qt ..................... OFF
bitcoind>   bench_bitcoin ....................... FALSE
bitcoind>   fuzz binary ......................... OFF

For pkg bitcoin (with GUI):

bitcoin> Configure summary
bitcoin> =================
bitcoin> Executables:
bitcoin>   bitcoind ............................ ON
bitcoin>   bitcoin-node (multiprocess) ......... OFF
bitcoin>   bitcoin-qt (GUI) .................... TRUE
bitcoin>   bitcoin-gui (GUI, multiprocess) ..... OFF
bitcoin>   bitcoin-cli ......................... ON
bitcoin>   bitcoin-tx .......................... ON
bitcoin>   bitcoin-util ........................ ON
bitcoin>   bitcoin-wallet ...................... ON
bitcoin>   bitcoin-chainstate (experimental) ... OFF
bitcoin>   libbitcoinkernel (experimental) ..... OFF
bitcoin> Optional features:
bitcoin>   wallet support ...................... ON
bitcoin>    - descriptor wallets (SQLite) ...... ON
bitcoin>    - legacy wallets (Berkeley DB) ..... OFF
bitcoin>   external signer ..................... ON
bitcoin>   ZeroMQ .............................. OFF
bitcoin>   USDT tracing ........................ OFF
bitcoin>   QR code (GUI) ....................... ON
bitcoin>   DBus (GUI, Linux only) .............. ON
bitcoin> Tests:
bitcoin>   test_bitcoin ........................ ON
bitcoin>   test_bitcoin-qt ..................... ON
bitcoin>   bench_bitcoin ....................... FALSE
bitcoin>   fuzz binary ......................... OFF

ZMQ and legacy wallet support (Berkeley DB) seems to be missing. Could possibly add -DWITH_USDT=ON too as it's included in upstream release builds, but not as important I think.

@0xB10C
Copy link
Contributor Author

0xB10C commented Apr 15, 2025

ZMQ and legacy wallet support (Berkeley DB) seems to be missing. Could possibly add -DWITH_USDT=ON too as it's included in upstream release builds, but not as important I think.

doing this in #398911

@linsui linsui mentioned this pull request Jun 20, 2025
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants