build: Add CMake-based build system #25797

pull hebasto wants to merge 67 commits into bitcoin:master from hebasto:220807-cmake changing 77 files +4673 −143
  1. hebasto commented at 11:15 AM on August 7, 2022: member

    Here are some benefits of using CMake in the Bitcoin Core project:

    • an opportunity to drop the build_msvc subdirectory from the repo altogether (being a cross-platform tool, CMake is able to create input files for a wide range of build systems, including Unix Makefiles and Visual Studio project files)
    • no hacks required to build dlls for Windows, even with DEBUG=1 (see #19772)
    • better maintainability (say bye to global variables)
    • easy integration with Qt 5
    • easy integration with Qt 6 in the nearest future (also see bitcoin/bitcoin#24798 and bitcoin/bitcoin#25191)

    More Qt-specific details see below.

    Also there is a non-technical/social benefit. Over time, the Autotools community shrinks, but CMake community grows. New contributors, who join this project in the future, will readily support a CMake-based system rather an Autotools-based one.


    Native building has been tested on the following OSes:

    • Ubuntu 22.04 (x86_64, aarch64~, backward compatible with Ubuntu Bionic 18.04 using adjusted invocation~)
    • macOS Monterey (x86_64, arm64)
    • FreeBSD 12.3
    • OpenBSD 7.1
    cmake -S . -B build
    cd build
    make
    make check
    make install  # optional
    

    Native building on Windows (MSVC + vcpkg)

    Dependency packages are provided by the vcpkg package manager ("Mandatory ASLR" in Windows Security must be disabled to install qt5-* packages):

    vcpkg --triplet=x64-windows-static install pkgconf boost-multi-index boost-process boost-signals2 boost-test libevent berkeleydb sqlite3 miniupnpc zeromq qt5-base qt5-tools
    

    To build on Windows with Visual Studio, a proper generator must be specified for a new build tree. The following example assumes using of "Developer Command Prompt for VS 2022" and CMake v3.21+.

    cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -S . -B build
    cmake --build build --config Release
    

    HINT. To leverage Multi-ToolTask and use <N> CPU cores, run

    cmake --build build --config Release -j <N> -- /p:CL_MPcount=<N>
    

    Cross building for Windows on Ubuntu 22.04

    make -C depends HOST=x86_64-w64-mingw32
    cmake --toolchain depends/x86_64-w64-mingw32/share/toolchain.cmake -S . -B build
    cmake --build build
    

    Cross building for Windows on Ubuntu 22.04 with DEBUG=1, see #19772

    make -C depends HOST=x86_64-w64-mingw32 DEBUG=1
    cmake --toolchain depends/x86_64-w64-mingw32/share/toolchain.cmake -S . -B build
    cmake --build build
    

    Cross building for macOS (Intel) on Ubuntu 22.04

    make -C depends HOST=x86_64-apple-darwin
    cmake --toolchain depends/x86_64-apple-darwin/share/toolchain.cmake -S . -B build
    cmake --build build
    

    Cross building for macOS (Apple Silicon) on Ubuntu 22.04

    make -C depends HOST=arm64-apple-darwin
    cmake --toolchain depends/arm64-apple-darwin/share/toolchain.cmake -S . -B build
    cmake --build build
    

    Cross building for Android using NDK r23 LTS on Ubuntu 22.04

    export ANDROID_SDK=/home/hebasto/Android/Sdk
    export ANDROID_NDK=${ANDROID_SDK}/ndk/23.2.8568313
    export ANDROID_API_LEVEL=28
    make -C depends ANDROID_TOOLCHAIN_BIN=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/ HOST=aarch64-linux-android
    cmake --toolchain depends/aarch64-linux-android/share/toolchain.cmake -S . -B build
    cmake --build build
    

    NOTE: Building in the source tree is not supported.


    Functional Tests

    Functional tests can be run in exactly the same way as when building with Autotools out of the source tree, i.e.:

    ./build/test/functional/test_runner.py
    

    Guix builds

    Cirrus CI -- 16 of 16

    • lint [jammy]
    • tidy [jammy]
    • Win64 native [vs2022]
    • ARM [unit tests, no functional tests] [bullseye]
    • Win64 [unit tests, no gui tests, no boost::process, no functional tests] [jammy]
    • 32-bit + dash [gui] [CentOS 8]
    • [previous releases, uses qt5 dev package and some depends packages, DEBUG] [unsigned char] [buster]
    • [TSan, depends, gui] [jammy]
    • [MSan, depends] [focal]
    • [ASan + LSan + UBSan + integer, no depends, USDT] [jammy]
    • [fuzzer,address,undefined,integer, no depends] [jammy]
    • [multiprocess, i686, DEBUG] [focal]
    • [no wallet, libbitcoinkernel] [buster]
    • macOS 10.15 [gui, no tests] [focal]
    • macOS 13 native arm64 [gui, sqlite only] [no depends]
    • ARM64 Android APK [jammy]

    Additional notes.

    1. There is a branch/PR in my repo which includes Qt 6 integration and CMake-specific CI tasks.
    2. A similar PR has been open in https://github.com/bitcoin-core/secp256k1.

    The plan is to have it in the repo shortly after branching 24.x off, and make CMake-based build system a drop-in replacement of Autotools-based one during the next ~2 or 3~ release cycle~s~.


    Qt-specific details

    What happened before?

    CMake is the build system for Qt 6

    We made a big decision to start using CMake to build Qt 6 one and a half years ago.

    The Qt 5 build system was built on top of qmake. In Qt 6, we ported the build system to CMake.

    It is important to note that CMake has extensive support for Qt, including Qt-specific tools such as MOC, RCC, UIC.

    Why Qt 6 build system does matter if the Bitcoin Core GUI uses Qt 5?

    For release builds we use Qt 5.15.5 LTS, the latest Qt 5 version available under a free-software license.

    For dynamic linking users can use Qt 5.11.3+, which allows them to use packages provided in Debian Buster and Ubuntu Focal.

    On the other hand, Qt 6 packages are available in the following systems/package managers:

    As long as Qt GUI is a part of Bitcoin Core, it is inevitable to embrace Qt 6 support, sooner or later.

    Can we just adjust our current build system to handle Qt 6?

    The main problem with integration of Qt 6 into the current build system is lacking of pkg-config *.pc files for static builds (please note that a patch from QTBUG-86080 works for non-static builds only).

    To handle Qt 6 with our current build system we need to:

    • patch Qt, which looks like a non-trivial task, or
    • apply some nasty hacks to our own build system
    • keep in our repo the required *.pc files

    All approaches imply maintaining burden for a long time. And last two are pretty ugly :)


    Autotools -- CMake Feature Parity Table

    Autotool-based build system (AT) features being listed according to the ./configure --help output.

    AT feature CM feature
    --prefix -DCMAKE_INSTALL_PREFIX
    --enable-c++20 -DCXX20
    --enable-shared -DBUILD_SHARED
    --enable-static -DBUILD_STATIC
    --disable-wallet -DENABLE_WALLET
    --enable-usdt -DWITH_USDT
    --enable-upnp-default -DENABLE_UPNP_DEFAULT
    --enable-natpmp-default -DENABLE_NATPMP_DEFAULT
    --disable-tests -DBUILD_TESTS
    --disable-gui-tests TBD
    --disable-bench -DBUILD_BENCH
    --enable-extended-functional-tests TBD
    --enable-fuzz -DFUZZ
    --enable-fuzz-binary -DBUILD_FUZZ_BINARY
    --disable-hardening -DHARDENING
    --enable-reduce-exports -DREDUCE_EXPORTS
    --disable-ccache -DCCACHE
    --enable-suppress-external-warnings N/A
    --enable-lcov TBD
    --enable-lcov-branch-coverage TBD
    --enable-threadlocal TBD
    --disable-asm -DASM
    --disable-zmq -DWITH_ZMQ
    --enable-multiprocess -DMULTIPROCESS
    --disable-man -DINSTALL_MAN
    --enable-debug -DCMAKE_BUILD_TYPE=Debug
    --enable-gprof TBD
    --enable-werror -DWERROR
    --enable-external-signer -DWITH_EXTERNAL_SIGNER
    --enable-lto TBD
    --enable-util-cli -DBUILD_CLI
    --enable-util-tx -DBUILD_TX
    --enable-util-wallet -DBUILD_WALLET_TOOL
    --enable-util-util -DBUILD_UTIL
    --enable-experimental-util-chainstate -DBUILD_UTIL_CHAINSTATE
    --with-seccomp -DWITH_SECCOMP
    --with-sqlite -DWITH_SQLITE
    --without-bdb -DWITH_BDB
    --with-miniupnpc -DWITH_MINIUPNPC
    --with-natpmp -DWITH_NATPMP
    --with-qrencode -DWITH_QRENCODE
    --with-libmultiprocess N/A
    --with-mpgen -DMPGEN_PREFIX
    --with-sanitizers -DSANITIZERS
    --with-utils individual options
    --with-libs individual options
    --with-experimental-kernel-lib -DBUILD_BITCOINKERNEL_LIB
    --with-daemon -DBUILD_DAEMON
    --with-gui -DWITH_GUI

    IRC meeting discussions:

  2. fanquake added the label Build system on Aug 7, 2022
  3. theStack commented at 3:57 PM on August 7, 2022: contributor

    Great to see that this PR is in the main repo now! 🚀

    I retested on OpenBSD 7.1 with the instructions from the PR description and unfortunately still have a BDB issue (similar to https://github.com/hebasto/bitcoin/pull/3#issuecomment-1175647461). The detection in the beginning detects that the installed BerkeleyDB version is too old (which is true) and disables legacy wallet support:

    -- Found BerkeleyDB: /usr/include (Required is at least version "4.8")
    CMake Warning at cmake/optional.cmake:69 (message):
      Found Berkeley DB (BDB) older than 4.8, disabling.
    
      Passing "-DWITH_BDB=no" will suppress this warning.
    
    ...
    
    Configure summary
    =================
    Build type ......................... RelHardened
    Preprocessor defined macros:
    CXX: /usr/local/bin/ccache /usr/bin/c++
    Compile options:
    Utility binaries:
      bitcoin-cli ...................... ON
      bitcoin-tx ....................... ON
      bitcoin-util ..................... ON
    Wallet functionality ............... yes
      SQLite, descriptor wallets ....... yes
      Berkeley DB, legacy wallets ...... no
      wallet tool ...................... ON
    Optional packages:
      GUI .............................. Qt5
      QR code (GUI) .................... yes
      external signer .................. no
      NAT-PMP .......................... no
      UPNP ............................. no
      ZeroMQ ........................... yes
      USDT tracing ..................... no
      experimental syscall sandbox ..... no
    

    Still in the course of compiling the wallet <db_cxx.h> is getting included (which is in turn included by src/wallet/bdb.h):

    [ 28%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/walletdb.cpp.o
    In file included from /home/honey/bitcoin_prrev/src/wallet/walletdb.cpp:18:
    /home/honey/bitcoin_prrev/src/wallet/bdb.h:27:10: fatal error: 'db_cxx.h' file not found
    #include <db_cxx.h>
             ^~~~~~~~~~
    1 error generated.
    

    It seems that USE_BDB is sill set for some reason, though the detection should have disabled it?

  4. jarolrod commented at 6:51 AM on August 8, 2022: member

    concept ack

  5. hebasto force-pushed on Aug 8, 2022
  6. hebasto commented at 10:54 PM on August 8, 2022: member

    Updated 485bd54f26c061ff3aa21587f8d8fd6ca86b5980 -> 1d09ef577b2b5e6d13b83f5241bad037a0a8f7b8 (pr25797.01 -> pr25797.02):

    • fixed Berkeley DB detection on OpenBSD.
    • improved all cmake/modules/Find<Package>.cmake modules. @theStack

    I retested on OpenBSD 7.1 with the instructions from the PR description and unfortunately still have a BDB issue

    Thank you for sorrow testing. The issue should be fixed now.

  7. theStack commented at 12:29 PM on August 9, 2022: contributor

    @theStack

    I retested on OpenBSD 7.1 with the instructions from the PR description and unfortunately still have a BDB issue

    Thank you for sorrow testing. The issue should be fixed now.

    Retested again (commit 1d09ef577b2b5e6d13b83f5241bad037a0a8f7b8) on OpenBSD 7.1 with the configuration as shown in #25797#pullrequestreview-1064441935, now the build was successful ✅ 🍻 . The following binaries were emitted: bitcoind, bitcoin-cli, bitcoin-tx, bitcoin-util, bitcoin-wallet, bitcoin-qt and leveldbutil (is this last one needed? IIRC I never saw it in the course of building with autotools).

    Also ran the functional tests via ./build/test/functional/test_runner.py, everything passed as expected. Couldn't find the test_bitcoin binary though, I'm assuming that unit-test build support with CMake is still under construction?

  8. hebasto force-pushed on Aug 9, 2022
  9. hebasto commented at 2:22 PM on August 9, 2022: member

    Updated 1d09ef577b2b5e6d13b83f5241bad037a0a8f7b8 -> 66c4ce440021004149779bb74207ce0c8bc93b2f (pr25797.02 -> pr25797.03):

    I'm assuming that unit-test build support with CMake is still under construction?

    It is, but not as a part of this PR. My intention is to keep the latter more or less digestible for reviewers.

  10. hebasto force-pushed on Aug 9, 2022
  11. luke-jr commented at 1:26 AM on August 10, 2022: member

    Concept NACK. Our autotools build system is a mess, but this doesn't appear to significantly improve it. I don't think the benefits are worth the costs.

    (I realise this PR doesn't remove autotools, but AIUI that's the eventual intention.)

    an opportunity to drop the build_msvc subdirectory from the repo altogether

    I don't see why CMake changes the situation around build_msvc. We could drop it today and tell Windows builders to use autotools just as well.

    Also there is a non-technical/social benefit. Over time, the Autotools community shrinks, but CMake community grows. New contributors, who join this project in the future, will readily support a CMake-based system rather an Autotools-based one.

    Do you have evidence of this? Autotools is fairly standard, and mostly just standard sh and make stuff (and m4, but that's admittedly more of a downside). CMake breaks from the norm, and requires a domain-specific language.

  12. hebasto force-pushed on Aug 10, 2022
  13. hebasto commented at 7:45 AM on August 10, 2022: member

    Updated 66c4ce440021004149779bb74207ce0c8bc93b2f -> e098ba80b6ec0debc62c32c65b72a518b126ed54 (pr25797.03 -> pr25797.04):

    • in-subtree bugfix been replaced with out-subtree workaround
    • fixed white spaces

    All changes above made the linter CI task happy now :tiger2:

  14. hebasto commented at 8:03 AM on August 10, 2022: member

    an opportunity to drop the build_msvc subdirectory from the repo altogether

    I don't see why CMake changes the situation around build_msvc. We could drop it today and tell Windows builders to use autotools just as well.

    You are talking about "to build on Windows". But the idea is "to build with MSVC". Being a cross-platform tool, CMake is able to create input files for a wide range of build systems, including Unix Makefiles and Visual Studio project files. @sipsorcery What do you think about this stuff?

  15. hebasto commented at 8:42 AM on August 10, 2022: member

    Also there is a non-technical/social benefit. Over time, the Autotools community shrinks, but CMake community grows. New contributors, who join this project in the future, will readily support a CMake-based system rather an Autotools-based one.

    Do you have evidence of this?

    I do. There are open-source projects which have dropped Autotools, and there are no ones which do the opposite. Also we could ask people who graduated CS recently whether their curriculums encompassed Autotools and/or CMake (not an evidence, rather a hint).

    Autotools is fairly standard, and mostly just standard sh and make stuff (and m4, but that's admittedly more of a downside).

    Moving "Autotools --> CMake" is very similar to "shell --> Python" which we have done recently.

    CMake breaks from the norm

    Which "the norm"?

    and requires a domain-specific language.

    Using a domain-specific language which serves its purpose much better than a general macro language is a benefit for reviewing and maintaining.

  16. sipsorcery commented at 9:01 AM on August 10, 2022: member

    You are talking about "to build on Windows". But the idea is "to build with MSVC". Being a cross-platform tool, CMake is able to create input files for a wide range of build systems, including Unix Makefiles and Visual Studio project files.

    @sipsorcery What do you think about this stuff?

    The Visual Studio project files produced by CMake aren't as clean as the hand rolled ones but in my experience they still build well (note the vcpkg dependecies generally use cmake).

    IMHO it's worth having less clean VS project files if the eventual goal is to have a single build system.

    Concept ACK.

  17. hebasto commented at 9:34 AM on August 10, 2022: member

    @luke-jr

    Concept NACK. Our autotools build system is a mess, but this doesn't appear to significantly improve it. I don't think the benefits are worth the costs.

    And this mess is going to get bigger:

    • we are about introducing the 4th hack to the Libtool
    • more hacks are required to bring Qt 6 support

    As you are a developer who is involved into the GUI development, could you share your vision of Qt 6 integration without migration to CMake?

  18. hebasto commented at 1:52 PM on August 10, 2022: member

    @dongcarl @fanquake @ryanofsky @theuni

    Your conceptual assessments of this PR will be much appreciated.

  19. achow101 commented at 2:52 PM on August 10, 2022: member

    Also we could ask people who graduated CS recently whether their curriculums encompassed Autotools and/or CMake (not an evidence, rather a hint).

    We handmade our Makefiles...

  20. DrahtBot commented at 4:57 PM on August 10, 2022: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Concept NACK luke-jr, theuni
    Concept ACK sipsorcery, ryanofsky, vasild, RandyMcMillan, TheCharlatan
    Approach ACK adam2k
    Stale ACK fanquake

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #27771 (ci: Use docker image cache for "Win64 native [vs2022]" task by hebasto)
    • #27759 (Fix #includes in src/wallet by hebasto)
    • #27737 (ci: compile Clang and compiler-rt in msan jobs by fanquake)
    • #27724 (build: disable boost multi index safe mode in debug mode by willcl-ark)
    • #27710 (ci, iwyu: Update mappings by hebasto)
    • #27676 (macOS: Bump minimum required runtime version and prepare for building with upstream LLVM by theuni)
    • #27099 (build: produce a .zip for macOS distribution by fanquake)
    • #25972 (build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is set by fanquake)
    • #21778 (build: LLVM 15 & LLD based macOS toolchain by fanquake)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  21. luke-jr commented at 8:26 PM on August 10, 2022: member

    You are talking about "to build on Windows". But the idea is "to build with MSVC". Being a cross-platform tool, CMake is able to create input files for a wide range of build systems, including Unix Makefiles and Visual Studio project files.

    autotools can be used with the MSVC compiler

    There are open-source projects which have dropped Autotools, and there are no ones which do the opposite.

    "No ones"? There are lots which adopt autotools. Otherwise it wouldn't even exist...

    Also we could ask people who graduated CS recently whether their curriculums encompassed Autotools and/or CMake

    People to ask would be experienced open source developers, not novices who got scammed by colleges.

    Which "the norm"?

    Most open source software uses autotools.

    As you are a developer who is involved into the GUI development, could you share your vision of Qt 6 integration without migration to CMake?

    Seems easy enough to just do it the same as Qt 5 already is? pkg-config support was fixed in Qt 6.2.5.

  22. hebasto commented at 8:37 PM on August 10, 2022: member

    There are open-source projects which have dropped Autotools, and there are no ones which do the opposite.

    "No ones"? There are lots which adopt autotools. Otherwise it wouldn't even exist...

    I mean, there are no projects which moved from non-Autotools to Autotools recent decade.

  23. hebasto commented at 8:39 PM on August 10, 2022: member

    pkg-config support was fixed in Qt 6.2.5.

    Not for static builds:

    Although it has some limitations, with qt_internal_add_qml_module if it specifies non-public deps these won't be listed and with non-Qt requirements, notably in static builds, not being appended to the PkgConfig file.

  24. luke-jr commented at 9:02 PM on August 10, 2022: member

    Static builds are abnormal and only need to be supported for depends-based builds, where we can trivially patch it.

  25. hebasto commented at 9:08 PM on August 10, 2022: member

    Static builds are abnormal and only need to be supported for depends-based builds...

    "abnormal"? We deliver users static builds.

    we can trivially patch it

    I doubt about "trivially". Anyway, your patch for Qt code will be much appreciated.

  26. fanquake commented at 11:51 AM on August 12, 2022: member

    dongcarlvfanquake ryanofsky theuni Your conceptual assessments of this PR will be much appreciated.

    I am a Concept ~0/ACK for CMake.

    However I think if we are going to break every existing piece of Bitcoin Core related build infrastracture (build scripts, docker files, downstream projects, package managers etc), as well as obselete (external) build guides & documentation, we should be able to enumerate some more benefits to doing so.

    Here are some benefits of using CMake in the Bitcoin Core project:

    Looking at this list, there's nothing interesting here for anyone that doesn't care about the GUI, or Windows DEBUG depends builds; and given that this is the group which will more-than-likely be most impacted by this change, i.e compiling bitcoind + utils on Linux, we should be able to better justify a migration. Even starting with some rationale from something like "Why CMake?".

    The plan is to have it in the repo shortly after branching 24.x off, and make CMake-based build system a drop-in replacement of Autotools-based one during the next 2 or 3 release cycles.

    Concept NACK on any approach that has as maintaining multiple build systems over multiple, or even a single release. That will be a maintainability / developer nightmare. If we are going to switch, we should just switch. CMake in, Autotools out, over a short period, ideally just after a branch off, so there is plenty of time for changes to settle and issues to be fixed before the next release.

  27. hebasto commented at 12:41 PM on August 12, 2022: member

    Looking at this list, there's nothing interesting here for anyone that doesn't care about the GUI...

    The GUI is a part of the Bitcoin Core project. Not caring about any part of the project won't be helpful for it.

  28. adam2k commented at 8:25 PM on August 12, 2022: none

    Concept ACK e098ba80b6ec0debc62c32c65b72a518b126ed54

    I'm testing on macOS 12.5 M1 MacBook Pro and running into errors. It's possible this is an issue with my system, but I exhausted any possibilities that I could think of.

    Are there additional setup steps to proceed these steps during your macOS testing?

    $ cmake -S . -B build
    
    -- Found Qt, version 5.15.5
    
    
    Configure summary
    =================
    Build type ......................... RelHardened
    Preprocessor defined macros: MAC_OSX;OBJC_OLD_DISPATCH_PROTOTYPES=0
    CXX: /opt/homebrew/bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
    Compile options:
    Utility binaries:
      bitcoin-cli ...................... ON
      bitcoin-tx ....................... ON
      bitcoin-util ..................... ON
    Wallet functionality ............... yes
      SQLite, descriptor wallets ....... yes
      Berkeley DB, legacy wallets ...... yes
      wallet tool ...................... ON
    Optional packages:
      GUI .............................. Qt5
      QR code (GUI) .................... yes
      external signer .................. no
      NAT-PMP .......................... yes
      UPNP ............................. yes
      ZeroMQ ........................... yes
      USDT tracing ..................... no
      experimental syscall sandbox ..... no
    
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /Users/adam2k/Documents/bitcoin/build
     adam2k@Adams-MacBook-Pro  ~/Documents/bitcoin   220807-cmake ± 
     adam2k@Adams-MacBook-Pro  ~/Documents/bitcoin   220807-cmake ±  cmake --build build
    Consolidate compiler generated dependencies of target univalue
    [  0%] Building CXX object src/univalue/CMakeFiles/univalue.dir/lib/univalue.cpp.o
    error: option 'cf-protection=return' cannot be specified on this target
    error: option 'cf-protection=branch' cannot be specified on this target
    2 errors generated.
    make[2]: *** [src/univalue/CMakeFiles/univalue.dir/lib/univalue.cpp.o] Error 1
    make[1]: *** [src/univalue/CMakeFiles/univalue.dir/all] Error 2
    make: *** [all] Error 2
    
  29. michaelfolkson commented at 9:21 AM on August 13, 2022: contributor

    There seems to be long running resistance to this in this repo and continued resistance expressed in the comments of this PR.

    Does libsecp256k1 (potentially, certainly seems less resistance there currently) adding CMake support have any impact on this discussion? A case of seeing if it gets merged in libsecp256k1, seeing if there are any problems with it, contributors getting comfortable with it etc? Or are they entirely separate discussions? i.e. libsecp256k1 could merge in CMake support, it could work fine but it would have no impact on the discussion here? Also would there be opposition to libsecp256k1 maintaining a different build system to this main Core repo or is that a non-issue?

  30. fanquake referenced this in commit 0bac72c455 on Aug 13, 2022
  31. hebasto commented at 11:23 AM on August 14, 2022: member

    I've updated the PR description with the following Qt-specific details.

    What happened before?

    CMake is the build system for Qt 6

    We made a big decision to start using CMake to build Qt 6 one and a half years ago.

    The Qt 5 build system was built on top of qmake. In Qt 6, we ported the build system to CMake.

    It is important to note that CMake has extensive support for Qt, including Qt-specific tools such as MOC, RCC, UIC.

    Why Qt 6 build system does matter if the Bitcoin Core GUI uses Qt 5?

    For release builds we use Qt 5.15.5 LTS, the latest Qt 5 version available under a free-software license.

    For dynamic linking users can use Qt 5.11.3+, which allows them to use packages provided in Debian Buster and Ubuntu Focal.

    On the other hand, Qt 6 packages are available in the following systems/package managers:

    As long as Qt GUI is a part of Bitcoin Core, it is inevitable to embrace Qt 6 support, sooner or later.

    Can we just adjust our current build system to handle Qt 6?

    The main problem with integration of Qt 6 into the current build system is lacking of pkg-config *.pc files for static builds (please note that a patch from QTBUG-86080 works for non-static builds only).

    To handle Qt 6 with our current build system we need to:

    • patch Qt, which looks like a non-trivial task, or
    • apply some nasty hacks to our own build system
    • keep in our repo the required *.pc files
    • check Qt libraries manually

    All approaches imply maintaining burden for a long time. And last three are pretty ugly :)

  32. hebasto force-pushed on Aug 14, 2022
  33. hebasto commented at 4:33 PM on August 14, 2022: member

    Updated e098ba80b6ec0debc62c32c65b72a518b126ed54 -> 88d797f926cb0d874a30aa732dcc0221f78b007a (pr25797.04 -> pr25797.05):

    I'm testing on macOS 12.5 M1 MacBook Pro and running into errors.

    Thank you for testing! Should be fixed now :tiger2:

  34. maflcko referenced this in commit 2778cccf1c on Aug 15, 2022
  35. adam2k commented at 3:55 PM on August 15, 2022: none

    Updated e098ba8 -> 88d797f (pr25797.04 -> pr25797.05):

    @adam2k

    I'm testing on macOS 12.5 M1 MacBook Pro and running into errors.

    Thank you for testing! Should be fixed now 🐅

    Concept ACK 88d797f926cb0d874a30aa732dcc0221f78b007a

    Again, I'm testing on macOS 12.5 M1 MacBook Pro and the previous errors seem to be resolved.

    $ cmake -S . -B build
    -- Performing Test HAS_CXX_-pipe_FLAG
    -- Performing Test HAS_CXX_-pipe_FLAG - Success
    -- Performing Test HAS_CXX_-O2_FLAG
    -- Performing Test HAS_CXX_-O2_FLAG - Success
    -- Performing Test HAS_CXX_-g_FLAG
    -- Performing Test HAS_CXX_-g_FLAG - Success
    -- Performing Test HAS_CXX_-Wstack-protector_FLAG
    -- Performing Test HAS_CXX_-Wstack-protector_FLAG - Success
    -- Performing Test HAS_CXX_-fstack-protector-all_FLAG
    -- Performing Test HAS_CXX_-fstack-protector-all_FLAG - Success
    -- Performing Test HAS_CXX_-fcf-protection=full_FLAG
    -- Performing Test HAS_CXX_-fcf-protection=full_FLAG - Failed
    -- Found Qt, version 5.15.5
    
    
    Configure summary
    =================
    Build type ......................... RelHardened
    Preprocessor defined macros ........ MAC_OSX;OBJC_OLD_DISPATCH_PROTOTYPES=0
    C++ compiler ....................... /opt/homebrew/bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
    Compile options ....................
    Utility binaries:
      bitcoin-cli ...................... ON
      bitcoin-tx ....................... ON
      bitcoin-util ..................... ON
    Wallet functionality ............... yes
      SQLite, descriptor wallets ....... yes
      Berkeley DB, legacy wallets ...... yes
      wallet tool ...................... ON
    Optional packages:
      GUI .............................. Qt5
      QR code (GUI) .................... yes
      external signer .................. no
      NAT-PMP .......................... yes
      UPNP ............................. yes
      ZeroMQ ........................... yes
      USDT tracing ..................... no
      experimental syscall sandbox ..... no
    
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /Users/adam2k/Documents/bitcoin/build
    

    Although, I am running into errors during the second step in the process when I get to the Linking CXX executable bitcoin-qt. I added the -v to gather more debug logs.

    $ cmake --build build -v
    ...
    Consolidate compiler generated dependencies of target bitcoin-qt
    /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f src/qt/CMakeFiles/bitcoin-qt.dir/build.make src/qt/CMakeFiles/bitcoin-qt.dir/build
    [ 98%] Linking CXX executable bitcoin-qt
    cd /Users/adam2k/Documents/bitcoin/build/src/qt && /opt/homebrew/Cellar/cmake/3.24.0/bin/cmake -E cmake_link_script CMakeFiles/bitcoin-qt.dir/link.txt --verbose=1
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -pipe -O2 -g -Wstack-protector -fstack-protector-all -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/homebrew/opt/llvm/lib "CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o" "CMakeFiles/bitcoin-qt.dir/main.cpp.o" "CMakeFiles/bitcoin-qt.dir/__/init/bitcoin-qt.cpp.o" -o bitcoin-qt -F/opt/homebrew/opt/qt@5/lib  -Wl,-headerpad_max_install_names libbitcoinqt.a ../libbitcoin_node.a ../libbitcoin_common.a ../libbitcoin_consensus.a ../util/libbitcoin_util.a ../crypto/libbitcoin_crypto.a /opt/homebrew/opt/qt@5/lib/QtWidgets.framework/QtWidgets /opt/homebrew/opt/qt@5/lib/QtGui.framework/QtGui ../librpc_client.a /opt/homebrew/Cellar/qrencode/4.1.1/lib/libqrencode.dylib ../wallet/libbitcoin_wallet.a ../libbitcoin_common.a /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/lib/libsqlite3.tbd /opt/homebrew/opt/qt@5/lib/QtNetwork.framework/QtNetwork /opt/homebrew/opt/qt@5/lib/QtCore.framework/QtCore /opt/homebrew/opt/libnatpmp/lib/libnatpmp.dylib /opt/homebrew/lib/libminiupnpc.dylib /opt/homebrew/opt/berkeley-db@4/lib/libdb_cxx-4.8.dylib ../../libminisketch.a /opt/homebrew/Cellar/libevent/2.1.12/lib/libevent_pthreads.dylib ../zmq/libbitcoin_zmq.a ../leveldb/libleveldb.a ../crc32c/libcrc32c.a /opt/homebrew/Cellar/zeromq/4.3.4/lib/libzmq.dylib ../crypto/libbitcoin_crypto.a ../../libsecp256k1.a ../univalue/libunivalue.a -Wl,-headerpad_max_install_names /opt/homebrew/Cellar/libevent/2.1.12/lib/libevent.dylib
    Undefined symbols for architecture arm64:
      "_NSClassFromString", referenced from:
          MacNotificationHandler::hasUserNotificationCenterSupport() in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_OBJC_CLASS_$_NSApplication", referenced from:
          objc-class-ref in libbitcoinqt.a(macdockiconhandler.mm.o)
      "_OBJC_CLASS_$_NSBundle", referenced from:
          objc-class-ref in libbitcoinqt.a(macnotificationhandler.mm.o)
          __OBJC_$_CATEGORY_NSBundle_$_returnCorrectIdentifier in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_OBJC_CLASS_$_NSProcessInfo", referenced from:
          objc-class-ref in libbitcoinqt.a(macos_appnap.mm.o)
      "_OBJC_CLASS_$_NSUserNotification", referenced from:
          objc-class-ref in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_OBJC_CLASS_$_NSUserNotificationCenter", referenced from:
          objc-class-ref in libbitcoinqt.a(macnotificationhandler.mm.o)
      "___CFConstantStringClassReference", referenced from:
          CFString in libbitcoinqt.a(macos_appnap.mm.o)
          CFString in libbitcoinqt.a(macnotificationhandler.mm.o)
          CFString in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_class_getInstanceMethod", referenced from:
          MacNotificationHandler::instance() in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_class_replaceMethod", referenced from:
          setupDockClickHandler() in libbitcoinqt.a(macdockiconhandler.mm.o)
      "_method_exchangeImplementations", referenced from:
          MacNotificationHandler::instance() in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_objc_alloc_init", referenced from:
          MacNotificationHandler::showNotification(QString const&, QString const&) in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_objc_autoreleasePoolPop", referenced from:
          CAppNapInhibitor::CAppNapImpl::disableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
          CAppNapInhibitor::CAppNapImpl::enableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
      "_objc_autoreleasePoolPush", referenced from:
          CAppNapInhibitor::CAppNapImpl::disableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
          CAppNapInhibitor::CAppNapImpl::enableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
      "_objc_getClass", referenced from:
          MacNotificationHandler::instance() in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_objc_msgSend", referenced from:
          setupDockClickHandler() in libbitcoinqt.a(macdockiconhandler.mm.o)
          ForceActivation() in libbitcoinqt.a(macdockiconhandler.mm.o)
          CAppNapInhibitor::CAppNapImpl::disableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
          CAppNapInhibitor::CAppNapImpl::enableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
          -[NSBundle(returnCorrectIdentifier) __bundleIdentifier] in libbitcoinqt.a(macnotificationhandler.mm.o)
          MacNotificationHandler::showNotification(QString const&, QString const&) in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_objc_opt_class", referenced from:
          setupDockClickHandler() in libbitcoinqt.a(macdockiconhandler.mm.o)
      "_objc_opt_respondsToSelector", referenced from:
          CAppNapInhibitor::CAppNapImpl::disableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
          CAppNapInhibitor::CAppNapImpl::enableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
      "_objc_release", referenced from:
          CAppNapInhibitor::CAppNapImpl::enableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
          MacNotificationHandler::showNotification(QString const&, QString const&) in libbitcoinqt.a(macnotificationhandler.mm.o)
      "_objc_retain", referenced from:
          CAppNapInhibitor::CAppNapImpl::disableAppNap() in libbitcoinqt.a(macos_appnap.mm.o)
      "_sel_registerName", referenced from:
          setupDockClickHandler() in libbitcoinqt.a(macdockiconhandler.mm.o)
    ld: symbol(s) not found for architecture arm64
    clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [src/qt/bitcoin-qt] Error 1
    make[1]: *** [src/qt/CMakeFiles/bitcoin-qt.dir/all] Error 2
    make: *** [all] Error 2
    
  36. sidhujag referenced this in commit 830a309f13 on Aug 15, 2022
  37. hebasto force-pushed on Aug 15, 2022
  38. hebasto commented at 11:32 PM on August 15, 2022: member

    Updated 88d797f926cb0d874a30aa732dcc0221f78b007a -> 6e1dcc2ae5096dde327b71efb6bfa0bf120227e5 (pr25797.05 -> pr25797.06):

    • rebased on top of the #25836
    • fixed native building on Windows (MSVC + vcpkg). No longer needed to pre-build Qt :tiger2:

    Instructions for native building on Windows (MSVC + vcpkg) added to the PR description.

    cc @sipsorcery

  39. dongcarl commented at 5:29 PM on August 16, 2022: contributor

    @hebasto Could you give us an idea of the diff between the new CMake and the old autotools build systems from a user's perspective? Have we achieved feature-parity yet?

  40. hebasto commented at 6:06 AM on August 17, 2022: member

    @dongcarl

    Could you give us an idea of the diff between the new CMake and the old autotools build systems from a user's perspective?

    1. The main difference is a directory structure. While the current Autotools-based build system (AT) supports out-of-source builds, most users make in-source builds. The new CMake-based build system (CM) does not support in-source builds. I consider this as a benefit. As a consequence, there is no make distclean in CM.

    2. Most of AT configure options are mapped to CM cache variable, for example:

    • --with-daemon --> -DBUILD_DAEMON
    • --enable-zmq --> -DWITH_ZMQ
    1. Some of AT configure options are implemented as custom build types in CM, for example:
    • --enable-hardening --> -DCMAKE_BUILD_TYPE=RelHardened
    1. User provided CC, CXX, CFLAGS, CXXFLAGS, LDFLAGS are supported by CM perfectly out of the box.

    2. Integration with our depends build subsystem has been implemented already:

    • CONFIG_SITE=$PWD/depends/<HOST>/share/config.site --> --toolchain depends/<HOST>/share/toolchain.cmake
    1. With CM users are able to use the same build system natively on a wider range of platforms, e.g., on Windows with MSVC.

    2. With CM the GUI users get Qt 6 support finally :tiger2:

    Have we achieved feature-parity yet?

    Not in this PR, to keep it in reviewable state. The full feature-parity is achievable with a couple follow ups.

  41. in CMakeLists.txt:139 in 6e1dcc2ae5 outdated
     134 | +  endif()
     135 | +endif()
     136 | +
     137 | +if(CMAKE_SYSTEM_NAME STREQUAL Linux)
     138 | +  if(CMAKE_SYSTEM_PROCESSOR STREQUAL arm)
     139 | +    add_compile_options(-Wno-psabi)
    


    fanquake commented at 8:18 AM on August 17, 2022:

    We don't currently suppress this in configure, why is it being added here?


    hebasto commented at 1:19 PM on August 17, 2022:
  42. in CMakeLists.txt:140 in 6e1dcc2ae5 outdated
     136 | +
     137 | +if(CMAKE_SYSTEM_NAME STREQUAL Linux)
     138 | +  if(CMAKE_SYSTEM_PROCESSOR STREQUAL arm)
     139 | +    add_compile_options(-Wno-psabi)
     140 | +  endif()
     141 | +  link_libraries(-Wl,-O2)
    


    fanquake commented at 8:19 AM on August 17, 2022:

    We don't currently add linker optimisation flags in configure, why are they being added here?


    hebasto commented at 12:49 AM on August 18, 2022:

    Thanks! Updated.

  43. in CMakeLists.txt:173 in 6e1dcc2ae5 outdated
     157 | +    link_libraries(-Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1)
     158 | +  endif()
     159 | +endif()
     160 | +if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
     161 | +  add_definitions(-DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0)
     162 | +  link_libraries(-Wl,-headerpad_max_install_names)
    


    fanquake commented at 8:23 AM on August 17, 2022:

    Shouldn't this link flag also be used when cross-compiling?


    hebasto commented at 8:29 PM on August 17, 2022:

    Why? This link flag is being processed after the if test $cross_compiling != "yes"; block end in the configure.ac.


    fanquake commented at 8:36 PM on August 17, 2022:

    Yes. Which means it gets used for both native and cross-compile builds.

  44. in CMakeLists.txt:259 in 6e1dcc2ae5 outdated
     255 | +if(CMAKE_CROSSCOMPILING)
     256 | +  message("Cross compiling for ................ ${CMAKE_SYSTEM_NAME}, ${CMAKE_SYSTEM_PROCESSOR}")
     257 | +endif()
     258 | +get_directory_property(definitions COMPILE_DEFINITIONS)
     259 | +message("Preprocessor defined macros ........ ${definitions}")
     260 | +message("C++ compiler ....................... ${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER}")
    


    fanquake commented at 8:29 AM on August 17, 2022:

    Cross-compiling for macOS, the "C++ compiler" output is /usr/bin/ccache /usr/bin/env. Not super helpful.


    adam2k commented at 6:58 PM on August 17, 2022:

    That output on macOS 12.5 is different for me

    C++ compiler ....................... /opt/homebrew/bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
    

    hebasto commented at 7:42 PM on August 17, 2022:

    @adam2k You are building natively on macOS for macOS, while @fanquake cross builds on Linux for macOS. Right?


    hebasto commented at 8:19 PM on August 17, 2022:

    Cross-compiling for macOS, the "C++ compiler" output is /usr/bin/ccache /usr/bin/env. Not super helpful.

    This is caused by the #21552 bug. A possible fix has been suggested in #24620.


    adam2k commented at 7:34 PM on August 31, 2022:

    @hebasto yes, that's right. I'm building natively on macOS for macOS.

  45. in CMakeLists.txt:261 in 6e1dcc2ae5 outdated
     257 | +endif()
     258 | +get_directory_property(definitions COMPILE_DEFINITIONS)
     259 | +message("Preprocessor defined macros ........ ${definitions}")
     260 | +message("C++ compiler ....................... ${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER}")
     261 | +get_directory_property(compile_options COMPILE_OPTIONS)
     262 | +message("Compile options .................... ${compile_options}")
    


    fanquake commented at 8:29 AM on August 17, 2022:

    Cross-compiling for macOS/Windows, the "Compile options" output is something like $<$<COMPILE_LANGUAGE:C>:-pipe>;$<$<COMPILE_LANGUAGE:C>:-std=c11>;$<$<COMPILE_LANGUAGE:C>:-O2>;$<$<COMPILE_LANGUAGE:CXX>:-pipe>;$<$<COMPILE_LANGUAGE:CXX>:-std=c++17>;$<$<COMPILE_LANGUAGE:CXX>:-O2>. Which isn't readable.


    hebasto commented at 12:49 AM on August 18, 2022:

    Thanks! Should be fixed now.

  46. in CMakeLists.txt:111 in 6e1dcc2ae5 outdated
      92 | +set(CMAKE_CXX_FLAGS_RELHARDENED "${release_cxx_flags} ${hardened_cxx_flags}" CACHE STRING
      93 | +  "Flags used by the C++ compiler during \"RelHardened\" builds."
      94 | +  FORCE
      95 | +)
      96 | +if(CMAKE_SYSTEM_NAME STREQUAL Linux)
      97 | +  set(hardened_linker_flags "-Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code")
    


    fanquake commented at 8:45 AM on August 17, 2022:

    Shouldn't we check these flags are available, rather than assuming the user has as certain version of binutils?


    hebasto commented at 2:30 PM on August 18, 2022:

    Thanks! Updated.

  47. in CMakeLists.txt:113 in 6e1dcc2ae5 outdated
      94 | +  FORCE
      95 | +)
      96 | +if(CMAKE_SYSTEM_NAME STREQUAL Linux)
      97 | +  set(hardened_linker_flags "-Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code")
      98 | +elseif(CMAKE_SYSTEM_NAME STREQUAL Windows)
      99 | +  set(hardened_linker_flags "-Wl,--enable-reloc-section -Wl,--dynamicbase -Wl,--nxcompat -Wl,--high-entropy-va")
    


    fanquake commented at 8:45 AM on August 17, 2022:

    Same here.


    hebasto commented at 2:31 PM on August 18, 2022:

    Thanks! Updated.

  48. in CMakeLists.txt:118 in 6e1dcc2ae5 outdated
      82 | +  FORCE
      83 | +)
      84 | +# Define custom "RelHardened" build type
      85 | +set(hardened_cxx_flags "")
      86 | +try_append_cxxflag(hardened_cxx_flags "-Wstack-protector")
      87 | +try_append_cxxflag(hardened_cxx_flags "-fstack-protector-all")
    


    fanquake commented at 9:23 AM on August 17, 2022:

    This test fails when cross-compiling for Windows, and we end up building without -fstack-protector-all.

    /usr/lib/gcc/x86_64-w64-mingw32/11.2.1/../../../../x86_64-w64-mingw32/bin/ld: CMakeFiles/cmTC_c6384.dir/objects.a(src.cxx.obj):src.cxx:(.text+0x35): undefined reference to `__stack_chk_fail'
    /usr/lib/gcc/x86_64-w64-mingw32/11.2.1/../../../../x86_64-w64-mingw32/bin/ld: CMakeFiles/cmTC_c6384.dir/objects.a(src.cxx.obj):src.cxx:(.rdata$.refptr.__stack_chk_guard[.refptr.__stack_chk_guard]+0x0): undefined reference to `__stack_chk_guard'
    

    hebasto commented at 12:51 AM on August 18, 2022:

    Thanks! Fixed.

  49. fanquake commented at 9:29 AM on August 17, 2022: member

    If I perform a depends build with NO_QT=1 NO_WALLET=1 NO_ZMQ=1 options. Cmake is warning about these packages being missing:

    -- Could NOT find QT (missing: QT_DIR)
    CMake Warning at cmake/optional_qt.cmake:60 (message):
      Qt not found, disabling.
    
      To skip this warning check, use "-DWITH_GUI=no".
    
    Call Stack (most recent call first):
      CMakeLists.txt:181 (include)
    
    -- Could NOT find BerkeleyDB (missing: BerkeleyDB_LIBRARY BerkeleyDB_INCLUDE_DIR) (Required is at least version "4.8")
    CMake Warning at cmake/optional.cmake:79 (message):
      Berkeley DB (BDB) required for legacy wallet support, but not found.
    
      Passing "-DWITH_BDB=no" will suppress this warning.
    
    Call Stack (most recent call first):
      CMakeLists.txt:182 (include)
    
    -- Checking for module 'libzmq>=4'
    --   No package 'libzmq' found
    CMake Warning at cmake/optional.cmake:134 (message):
      libzmq not found, disabling.
    
      To skip libzmq check, use "-DWITH_ZMQ=no".
    
    Call Stack (most recent call first):
      CMakeLists.txt:182 (include)
    

    We shouldn't have to pass any options to suppress, as Cmake shouldn't even be looking for these libs if we've opted out of in depends.

    Note how Cmake didn't warn about a missing sqlite above. That seems to be because it'll just grab the sqlite from the system to enable sqlite wallet support. This shouldn't happen if I'm cross-compiling, or building from depends (regardless of NO_WALLET=1), and ultimately results in link errors:

    [ 86%] Linking CXX executable bitcoin-wallet
    ld: warning: ignoring file /usr/lib/x86_64-linux-gnu/libsqlite3.so, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
    ...
          wallet::SQLiteBatch::EraseKey(CDataStream&&) in libbitcoin_wallet.a(sqlite.cpp.o)
          wallet::SQLiteBatch::HasKey(CDataStream&&) in libbitcoin_wallet.a(sqlite.cpp.o)
          ...
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    Testing a Windows cross compile currently fails for me:

    make -C depends HOST=x86_64-w64-mingw32 NO_QT=1 NO_BDB=1 NO_UPNP=1 NO_ZMQ=1 NO_NATPMP=1
    cmake --toolchain depends/x86_64-w64-mingw32/share/toolchain.cmake -S . -B build
    cmake --build build -j9
    ...
    /usr/bin/x86_64-w64-mingw32-ld: [ 97%] Linking CXX static library libbitcoin_node.a
    cd /home/ubuntu/bitcoin/build/src && /usr/bin/cmake -P CMakeFiles/bitcoin_node.dir/cmake_clean_target.cmake
    cd /home/ubuntu/bitcoin/build/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/bitcoin_node.dir/link.txt --verbose=1
    /usr/bin/x86_64-w64-mingw32-ar qc libbitcoin_node.a CMakeFiles/bitcoin_node.dir/addrdb.cpp.obj CMakeFiles/bitcoin_node.dir/addrman.cpp.obj CMakeFiles/bitcoin_node.dir/banman.cpp.obj CMakeFiles/bitcoin_node.dir/blockencodings.cpp.obj CMakeFiles/bitcoin_node.dir/blockfilter.cpp.obj CMakeFiles/bitcoin_node.dir/chain.cpp.obj CMakeFiles/bitcoin_node.dir/consensus/tx_verify.cpp.obj CMakeFiles/bitcoin_node.dir/dbwrapper.cpp.obj CMakeFiles/bitcoin_node.dir/deploymentstatus.cpp.obj CMakeFiles/bitcoin_node.dir/flatfile.cpp.obj CMakeFiles/bitcoin_node.dir/httprpc.cpp.obj CMakeFiles/bitcoin_node.dir/httpserver.cpp.obj CMakeFiles/bitcoin_node.dir/i2p.cpp.obj CMakeFiles/bitcoin_node.dir/index/base.cpp.obj CMakeFiles/bitcoin_node.dir/index/blockfilterindex.cpp.obj CMakeFiles/bitcoin_node.dir/index/coinstatsindex.cpp.obj CMakeFiles/bitcoin_node.dir/index/txindex.cpp.obj CMakeFiles/bitcoin_node.dir/init.cpp.obj CMakeFiles/bitcoin_node.dir/kernel/chain.cpp.obj CMakeFiles/bitcoin_node.dir/kernel/checks.cpp.obj CMakeFiles/bitcoin_node.dir/kernel/coinstats.cpp.obj CMakeFiles/bitcoin_node.dir/kernel/context.cpp.obj CMakeFiles/bitcoin_node.dir/kernel/mempool_persist.cpp.obj CMakeFiles/bitcoin_node.dir/mapport.cpp.obj CMakeFiles/bitcoin_node.dir/net.cpp.obj CMakeFiles/bitcoin_node.dir/netgroup.cpp.obj CMakeFiles/bitcoin_node.dir/net_processing.cpp.obj CMakeFiles/bitcoin_node.dir/node/blockstorage.cpp.obj CMakeFiles/bitcoin_node.dir/node/caches.cpp.obj CMakeFiles/bitcoin_node.dir/node/chainstate.cpp.obj CMakeFiles/bitcoin_node.dir/node/coin.cpp.obj CMakeFiles/bitcoin_node.dir/node/connection_types.cpp.obj CMakeFiles/bitcoin_node.dir/node/context.cpp.obj CMakeFiles/bitcoin_node.dir/node/eviction.cpp.obj CMakeFiles/bitcoin_node.dir/node/interface_ui.cpp.obj CMakeFiles/bitcoin_node.dir/node/interfaces.cpp.obj CMakeFiles/bitcoin_node.dir/node/mempool_args.cpp.obj CMakeFiles/bitcoin_node.dir/node/mempool_persist_args.cpp.obj CMakeFiles/bitcoin_node.dir/node/miner.cpp.obj CMakeFiles/bitcoin_node.dir/node/minisketchwrapper.cpp.obj CMakeFiles/bitcoin_node.dir/node/psbt.cpp.obj CMakeFiles/bitcoin_node.dir/node/transaction.cpp.obj CMakeFiles/bitcoin_node.dir/node/validation_cache_args.cpp.obj CMakeFiles/bitcoin_node.dir/noui.cpp.obj CMakeFiles/bitcoin_node.dir/policy/fees.cpp.obj CMakeFiles/bitcoin_node.dir/policy/fees_args.cpp.obj CMakeFiles/bitcoin_node.dir/policy/packages.cpp.obj CMakeFiles/bitcoin_node.dir/policy/rbf.cpp.obj CMakeFiles/bitcoin_node.dir/policy/settings.cpp.obj CMakeFiles/bitcoin_node.dir/pow.cpp.obj CMakeFiles/bitcoin_node.dir/rest.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/blockchain.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/fees.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/mempool.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/mining.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/net.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/node.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/output_script.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/rawtransaction.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/server.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/server_util.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/signmessage.cpp.obj CMakeFiles/bitcoin_node.dir/rpc/txoutproof.cpp.obj CMakeFiles/bitcoin_node.dir/script/sigcache.cpp.obj CMakeFiles/bitcoin_node.dir/shutdown.cpp.obj CMakeFiles/bitcoin_node.dir/signet.cpp.obj CMakeFiles/bitcoin_node.dir/timedata.cpp.obj CMakeFiles/bitcoin_node.dir/torcontrol.cpp.obj CMakeFiles/bitcoin_node.dir/txdb.cpp.obj CMakeFiles/bitcoin_node.dir/txmempool.cpp.obj CMakeFiles/bitcoin_node.dir/txorphanage.cpp.obj CMakeFiles/bitcoin_node.dir/txrequest.cpp.obj CMakeFiles/bitcoin_node.dir/validation.cpp.obj CMakeFiles/bitcoin_node.dir/validationinterface.cpp.obj CMakeFiles/bitcoin_node.dir/versionbits.cpp.obj CMakeFiles/bitcoin_node.dir/wallet/init.cpp.obj
    CMakeFiles/bitcoinkernel.dir/objects.a(system.cpp.obj): in function `GetNumCores()':
    /home/ubuntu/bitcoin/src/util/system.cpp:1415: undefined reference to `std::thread::hardware_concurrency()'
    /usr/bin/x86_64-w64-mingw32-ld: /usr/bin/x86_64-w64-mingw32-ranlib libbitcoin_node.a
    gmake[2]: Leaving directory '/home/ubuntu/bitcoin/build'
    

    Full log is here: https://gist.github.com/fanquake/095adeae6f874ed6065c40019068bfff.

  50. hebasto force-pushed on Aug 17, 2022
  51. hebasto commented at 1:19 PM on August 17, 2022: member

    Updated 6e1dcc2ae5096dde327b71efb6bfa0bf120227e5 -> d56e4d193b7266212686dab00f57a3adf3b11db0 (pr25797.06 -> pr25797.07):

    (addressing of other comments in progress)

  52. hebasto commented at 1:22 PM on August 17, 2022: member

    We shouldn't have to pass any options to suppress, as Cmake shouldn't even be looking for these libs if we've opted out of in depends.

    Fixed in the recent update.

  53. luke-jr commented at 2:59 PM on August 17, 2022: member

    The new CMake-based build system (CM) does not support in-source builds.

    This is a HUGE regression for development.

    We shouldn't have to pass any options to suppress, as Cmake shouldn't even be looking for these libs if we've opted out of in depends.

    Don't some depends users want to build using those system libs (while using depends for other stuff)?

    On another note, I've noticed a lot of build system refactoring/NIH in Core has broken things that worked previously, and had to be fixed later. This indicates build system stuff, especially homegrown, is underreviewed. CMake might help this, or make it worse. If it's going to help, I would expect to see it reflected in a higher than normal amount of code review on this PR.

  54. fanquake commented at 3:10 PM on August 17, 2022: member

    Don't some depends users want to build using those system libs (while using depends for other stuff)?

    Only if you explicitly opt in. That shouldn't be the default behaviour (would defeat the point of depends), and I hadn't opted in here.

  55. theuni commented at 6:38 PM on August 17, 2022: member

    Concept ACK-ish, but only with 100% feature parity.

    This is the kind of work that's easy enough to get 90% of the way there, but the remaining 10% will almost certainly be brutal.

    I'm in agreement about moving to something more maintainable than Autotools in the long-term, but I'm absolutely against merging this for the sake of the stated reasons: Qt6, MSVC, trendiness (note that I've switched to CMake for my own projects, so I certainly have nothing against it). No offense, but honestly I think it's more reasonable to consider dropping those platforms than to cater our entire infrastructure to them. I share many of @luke-jr's concerns as well.

    That said, I am very open to a feature-complete CMake port of our current build-system for the sake of modernization and future-proofing. But again, that means feature-parity and a focus on the high-priority targets. Sorry, but Qt6 and MSVC just aren't that.

    I'm honestly not sure how to even begin reviewing this without some kind of 1:1 feature completion mapping. Our current build system does a whole lot more than just build binaries and libs.

    For example, comments like this don't inspire much confidence

    I'm assuming that unit-test build support with CMake is still under construction?

    It is, but not as a part of this PR. My intention is to keep the latter more or less digestible for reviewers.

    Could you please advise how we can review this without simply testing it on each platform? That approach would likely take years of after-the-fact corner-case fixing. For example, I think it'd be reasonable to set "autotools/cmake binary output equivalents for all supported platforms, or detailed explanations as to why they differ" as a pretty obvious requirement for merge. Otherwise we're just kinda hoping for no regressions, no?

    I don't mean to be harsh with the above, I know how much time/effort work like this takes. But I'm afraid this will require some pretty intense planning and arguing to make it to the finish line.

    tl;dr: charts and graphs please :)

  56. ryanofsky commented at 7:13 PM on August 17, 2022: contributor

    This is the kind of work that's easy enough to get 90% of the way there, but the remaining 10% will almost certainly be brutal.

    I'm probably naive, but I wonder what types of things might be difficult to implement with cmake.

    It would also be helpful if PR description mentioned what features autotools build supports that cmake build doesn't support yet. Just skimming it wasn't clear if this mostly needs more testing on different platforms or if it has some major missing features that need to be implemented still.

  57. theuni commented at 7:23 PM on August 17, 2022: member

    @ryanofsky I didn't mean to imply that there's anything that wouldn't be possible with CMake, just that there's a lot to get done other than vanilla builds. A long list of little stuff like profiling output, configurable shared/static builds, deployment targets (dmg/exe installer creation), etc. Many of those things may even be easier with CMake, there's just a lot to account for.

    It would also be helpful if PR description mentioned what features autotools build supports that cmake build doesn't support yet. Just skimming it wasn't clear if this mostly needs more testing on different platforms or if it has some major missing features that need to be implemented still.

    Agreed, this is my ask as well. It could be that I skimmed too quickly, but I didn't see those kinds of things addressed here yet.

  58. ryanofsky commented at 7:39 PM on August 17, 2022: contributor

    dongcarl fanquake ryanofsky theuni

    Your conceptual assessments of this PR will be much appreciated.

    Definitely major concept ACK from me. And the implementation seems very clean. I guess I can try getting multiprocess build to work with this since I don't see a flag for it yet.

  59. ryanofsky commented at 8:05 PM on August 17, 2022: contributor

    Just to explain my concept ACK a little bit: I don't think CMake build needs to add much of a maintenance burden and don't think it needs to have parity with the autotools build. I think if we can start using CMake build for binary releases, then developers can switch to using cmake for all the cool new stuff (qt6, jetbrains, android, web IDEs, rust, bitcoin kernel) and autotools build can hang around in maintenance mode for the old boring stuff.

    I don't think having two build systems should could much trouble for normal developers. Only difference is if you add or renaming a file or flag, you have to may have to make an extra edit.

    I also don't think having two build systems should cause much trouble for people working on build features either, as long as we don't insist on parity between two systems and are clear about which build system is used for binary releases.

  60. hebasto force-pushed on Aug 18, 2022
  61. hebasto commented at 12:48 AM on August 18, 2022: member

    Updated d56e4d193b7266212686dab00f57a3adf3b11db0 -> 156afca1c03e2688417d1da313a475e58260d4ac (pr25797.07 -> pr25797.08):

    • addressed more of @fanquake's comments, (addressing of other comments in progress)
    • improved and detailed configure summary
  62. fanquake commented at 9:37 AM on August 18, 2022: member

    Doing a depends build of 156afca1c03e2688417d1da313a475e58260d4ac, on aarch64 Linux, currently fails with:

    make -C depends -j9 NO_QT=1 NO_WALLET=1 NO_ZMQ=1 NO_UPNP=1 NO_NATPMP=1 CC=clang CXX=clang++
    cmake --toolchain depends/aarch64-unknown-linux-gnu/share/toolchain.cmake -S . -B build
    Wallet functionality:
      SQLite, descriptor wallets ....... auto
      Berkeley DB, legacy wallets ...... auto
      wallet tool ...................... OFF
    ...
    cmake --build build -j9
    Consolidate compiler generated dependencies of target univalue
    [  0%] Building CXX object CMakeFiles/minisketch.dir/src/minisketch/src/fields/generic_1byte.cpp.o
    [  0%] Building CXX object src/crypto/CMakeFiles/bitcoin_crypto.dir/aes.cpp.o
    [  0%] Building CXX object src/crc32c/CMakeFiles/crc32c_arm64.dir/src/crc32c_arm64.cc.o
    [  1%] Building CXX object CMakeFiles/minisketch.dir/src/minisketch/src/fields/generic_2bytes.cpp.o
    [  1%] Building CXX object CMakeFiles/minisketch.dir/src/minisketch/src/minisketch.cpp.o
    [  1%] Building CXX object CMakeFiles/minisketch.dir/src/minisketch/src/fields/generic_3bytes.cpp.o
    clang-14: warning: argument unused during compilation: '-fstack-clash-protection' [-Wunused-command-line-argument]
    [  3%] Building CXX object src/crc32c/CMakeFiles/crc32c_sse42.dir/src/crc32c_sse42.cc.o
    [  3%] Built target univalue
    [  3%] Building C object CMakeFiles/secp256k1.dir/src/secp256k1/src/secp256k1.c.o
    clang-14clang-14: warning: argument unused during compilation: '-fstack-clash-protection' [-Wunused-command-line-argument]
    clang-14: warning: argument unused during compilation: '-fstack-clash-protection' [-Wunused-command-line-argument]
    : error: argument unused during compilation: '-fstack-clash-protection' [-Werror,-Wunused-command-line-argument]
    gmake[2]: *** [src/crc32c/CMakeFiles/crc32c_arm64.dir/build.make:76: src/crc32c/CMakeFiles/crc32c_arm64.dir/src/crc32c_arm64.cc.o] Error 1
    gmake[1]: *** [CMakeFiles/Makefile2:543: src/crc32c/CMakeFiles/crc32c_arm64.dir/all] Error 2
    gmake[1]: *** Waiting for unfinished jobs....
    Consolidate compiler generated dependencies of target bitcoin_util
    clang-14: warning: argument unused during compilation: '-fstack-clash-protection' [-Wunused-command-line-argument]
    [  3%] Building C object CMakeFiles/secp256k1.dir/src/secp256k1/src/precomputed_ecmult.c.o
    clang-14: warning: argument unused during compilation: '-fstack-clash-protection' [-Wunused-command-line-argument]
    clang-14: error: argument unused during compilation: '-fstack-clash-protection' [-Werror,-Wunused-command-line-argument]
    gmake[2]: *** [src/crc32c/CMakeFiles/crc32c_sse42.dir/build.make:76: src/crc32c/CMakeFiles/crc32c_sse42.dir/src/crc32c_sse42.cc.o] Error 1
    

    CXXFLAG detection marks -fstack-clash-protection as usable even though it's unused:

    Source file was:
    int main() { return 0; }
    Performing C++ SOURCE FILE Test CXX_SUPPORTS_FSTACK_CLASH_PROTECTION succeeded with the following output:
    Change Dir: /home/fedora/bitcoin/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_c2ada/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_c2ada.dir/build.make CMakeFiles/cmTC_c2ada.dir/build
    gmake[1]: Entering directory '/home/fedora/bitcoin/build/CMakeFiles/CMakeTmp'
    Building CXX object CMakeFiles/cmTC_c2ada.dir/src.cxx.o
    /usr/bin/clang++ -DCXX_SUPPORTS_FSTACK_CLASH_PROTECTION  -fstack-clash-protection -std=c++17 -MD -MT CMakeFiles/cmTC_c2ada.dir/src.cxx.o -MF CMakeFiles/cmTC_c2ada.dir/src.cxx.o.d -o CMakeFiles/cmTC_c2ada.dir/src.cxx.o -c /home/fedora/bitcoin/build/CMakeFiles/CMakeTmp/src.cxx
    clang-14: warning: argument unused during compilation: '-fstack-clash-protection' [-Wunused-command-line-argument]
    Linking CXX static library libcmTC_c2ada.a
    /usr/bin/cmake -P CMakeFiles/cmTC_c2ada.dir/cmake_clean_target.cmake
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c2ada.dir/link.txt --verbose=1
    /usr/bin/llvm-ar qc libcmTC_c2ada.a CMakeFiles/cmTC_c2ada.dir/src.cxx.o
    /usr/bin/llvm-ranlib libcmTC_c2ada.a
    gmake[1]: Leaving directory '/home/fedora/bitcoin/build/CMakeFiles/CMakeTmp'
    

    Any reason you're not using -Werror for flag checks like we do in configure?

    The build ultimately fails because -Werror is enabled for the crc32c build. Looks like we'll need to turn off any flags we don't want enabled by default (like -Werror) in the subproject CMake configurations.

    Note that I included the Wallet functionality snippet above, because even though I built depends with NO_WALLET=1, the configure summary says auto for sqlite/bdb, where it should say no.

  63. vasild commented at 10:31 AM on August 18, 2022: contributor

    Concept ACK

    https://blog.jetbrains.com/clion/2020/06/dev-eco-cpp-2020/#project_models has some numbers on build systems' popularity and trends.

  64. fanquake added the label Feature on Aug 18, 2022
  65. fanquake removed the label Feature on Aug 18, 2022
  66. hebasto force-pushed on Aug 18, 2022
  67. hebasto commented at 2:29 PM on August 18, 2022: member

    Updated 156afca1c03e2688417d1da313a475e58260d4ac -> e016b22e6c365194743f54a7111f44caf6051394 (pr25797.08 -> pr25797.09):

    • added the TryAppendLinkerFlag module
    • addressed more of @fanquake's comments, (addressing of other comments in progress)
  68. theuni commented at 2:55 PM on August 18, 2022: member

    Just to explain my concept ACK a little bit: I don't think CMake build needs to add much of a maintenance burden and don't think it needs to have parity with the autotools build. I think if we can start using CMake build for binary releases, then developers can switch to using cmake for all the cool new stuff (qt6, jetbrains, android, web IDEs, rust, bitcoin kernel) and autotools build can hang around in maintenance mode for the old boring stuff.

    I don't think having two build systems should could much trouble for normal developers. Only difference is if you add or renaming a file or flag, you have to may have to make an extra edit.

    I also don't think having two build systems should cause much trouble for people working on build features either, as long as we don't insist on parity between two systems and are clear about which build system is used for binary releases.

    I beg you not to trivialize this way. The buildsystem has major implications for how work is done, namely large refactoring projects like libkernel. Maintaining two build systems may only make one-off PRs a little tougher, but it's guaranteed to significantly impede more interesting (and important) long-term efforts. Given the burnout and long-term developer attrition we've seen lately, that seems exactly backwards prioritization to me. Sure I'm biased towards the big cleanup projects, but at as I said above I think the project would benefit from dropping features and scope rather than adding/expanding. Sure, IDE integration and new platforms and bells and whistles would be nice, but this has whiffs of Zawinski's Law to me.

    Call me a cranky old git, but as much as I'd like a more modern infrastructure, I'm changing/editing my support to a NACK for CMake until it's clear that the implications are better understood by everyone involved/affected. I don't understand the support/concept ACKs that this is receiving when so much of the concept (or even a roadmap) is still absent.

    And all that is without even mentioning the new overhead of adding what's essentially a new language that we have no history of reviewing/supporting in this project. Please consider the growing pains.

    I support @hebasto's work here, but I think this PR was opened too early. Personally, I'd suggest taking a step back and making a plan before throwing it up for a committee-style discussion. I'd be happy to take another look at this if/when there's a thoughtful roadmap/feature matrix attached. Until then I'm honestly not sure what we're discussing here so I'll keep out.

  69. ryanofsky commented at 3:03 PM on August 18, 2022: contributor

    it's guaranteed to significantly impede more interesting (and important) long-term efforts.

    My point is that this is only true if you require parity between the two build systems. I think it's fine (and preferable) if libbitcoinkernel and other newer projects target cmake only, and just keep autotools build working in maintenance mode. Of course if any autotools-lovers want to step up and contribute new features to the autotools build they should be free to do that, too.

  70. ryanofsky commented at 3:36 PM on August 18, 2022: contributor

    @theuni, I think you not making a clear enough distinction between maintaining a build system, and adding new features to a build system. I can attest to the difference personally. For everyday development, my interaction with autotools is very pleasant. It is very easy to maintain makefiles during normal c++ development as flags are switched or files are added and moved around. By contrast, implementing multiprocess support where I was adding a new build feature to autotools was a painful process that was very difficult to get right, and even had subtle bugs that were uncovered years after original code was written (#25214).

    I think we both agree that requiring new features to be implemented in two build systems would be a major setback to development. But your solution to that would be to ban use of a build system that would make development easier. My solution would be to choose one build system to use for binary releases, and drop the requirement that the both systems need to have feature parity for other types of development. For development purposes, it's fine to say that we have two build systems, and you are free to use the one your prefer. Build system X supports features A B and C, system Y supports features A B and D. If there is a build feature which your preferred build system is missing, you are welcome to submit a patch.

    I think new IDEs and new development tools tend to use cmake, and tend not use or even support autotools. I think we will make onboarding of new developers more difficult by feverishly clinging to autotools, and make existing developers less productive and code less safe if we can't benefit from using new tools. I also think adding new build features easier using cmake, but obviously this is subjective, and a reason why I think we shouldn't be demanding feature parity.

  71. theuni commented at 3:56 PM on August 18, 2022: member

    @ryanofsky Please re-read my comments and please don't twist my words. Nowhere to I advocate for autotools. I hate it. it's dated and awful. In each comment I've advocated FOR CMake. I use, like, and prefer it.

    I'm just begging that we not hand-wave the very real pain of switching or maintaining two, and figure out a way to do it right. I'm on your side here, really.

  72. theuni commented at 4:23 PM on August 18, 2022: member

    @ryanofsky as for partial/incremental support of CMake, I suppose my hesitation (which I should've made more clear) is that neither a (partial) build-system switch or a long-term feature merge happen overnight, nor in a vacuum. Realistically they'll overlap. It's easy to say "just use CMake for the new stuff", but for long-lived projects, that unfortunately will mean supporting both (or one awkwardly) during the dev/work/comment/merge periods.

    For the CMake buildsystem to become supported for release, I would expect that to take no less than 6months to a year. Maybe I'm over-estimating, but that's exactly what I'm trying to flesh out here. When I alluded to the 90%/10% work above, that's what I was getting at. Getting to the point where the binaries build is one milestone, but getting to the point where we have that process fully integrated and we're ready to ship those deterministic/hardened/etc. binaries with all tests passing and happy downstreams is another. It's doable and we SHOULD do it, but it will take time and process and people-power. And during that time, it will be an extra burden for long-lived projects.

  73. hebasto commented at 4:29 PM on August 18, 2022: member

    @theuni

    I'd be happy to take another look at this if/when there's a ... feature matrix attached.

    Is the following table a move in the right direction?

    Autotools -- CMake Feature Parity Table

    Autotool-based build system (AT) features being listed according to the ./configure --help output.

    AT feature CM feature
    --enable-c++20 TBD
    --disable-wallet -DENABLE_WALLET
    --enable-usdt -DWITH_USDT
    --enable-upnp-default -DENABLE_UPNP_DEFAULT
    --enable-natpmp-default -DENABLE_NATPMP_DEFAULT
    --disable-tests TBD
    --disable-gui-tests TBD
    --disable-bench TBD
    --enable-extended-functional-tests TBD
    --enable-fuzz TBD
    --enable-fuzz-binary TBD
    --disable-hardening -DCMAKE_BUILD_TYPE=RelHardened
    --enable-reduce-exports -DREDUCE_EXPORTS
    --disable-ccache -DUSE_CCACHE
    --enable-suppress-external-warnings TBD
    --enable-lcov TBD
    --enable-lcov-branch-coverage TBD
    --enable-threadlocal TBD
    --disable-asm TBD
    --disable-zmq -DWITH_ZMQ
    --enable-multiprocess TBD
    --disable-man TBD
    --enable-debug TBD
    --enable-gprof TBD
    --enable-werror TBD
    --enable-external-signer -DWITH_EXTERNAL_SIGNER
    --enable-lto TBD
    --enable-util-cli -DBUILD_CLI
    --enable-util-tx -DBUILD_TX
    --enable-util-wallet -DBUILD_WALLET_TOOL
    --enable-util-util -DBUILD_UTIL
    --enable-experimental-util-chainstate TBD
    --with-seccomp -DWITH_SECCOMP
    --with-sqlite -DWITH_SQLITE
    --without-bdb -DWITH_BDB
    --with-miniupnpc -DWITH_MINIUPNPC
    --with-natpmp -DWITH_NATPMP
    --with-qrencode -DWITH_QRENCODE
    --with-libmultiprocess TBD
    --with-mpgen TBD
    --with-sanitizers TBD
    --with-utils individual options
    --with-libs TBD
    --with-experimental-kernel-lib TBD
    --with-daemon -DBUILD_DAEMON
    --with-gui -DWITH_GUI
  74. theuni commented at 4:48 PM on August 18, 2022: member

    @hebasto Yes thanks, that's a huge help! One other helpful set of features to add would be convenience targets used by release processes/ci/etc. There are lots, but make deploy and make check are the two most obvious that come to mind.

    Edit: s/release/deploy/

    Edit2: Also --enable-shared and --enable-static are biggies for the libs in that they add lots of build complexity.

  75. ryanofsky commented at 5:38 PM on August 18, 2022: contributor

    @ryanofsky Please re-read my comments and please don't twist my words. Nowhere to I advocate for autotools. I hate it. it's dated and awful. In each comment I've advocated FOR CMake. I use, like, and prefer it.

    Sorry, it's a really bad thing to misrepresent someone's position and I was not trying to do that. I wasn't trying to say you personally prefer autotools, just that, as I see it, the bitcoin core project is unproductively stuck clinging to autotools, and costs of adding cmake support should be small as long as we (1) choose one build system to use for official releases (2) allow each build system to have different features for other development and don't insist on parity

  76. theuni commented at 5:53 PM on August 18, 2022: member

    Sorry, it's a really bad thing to misrepresent someone's position and I was not trying to do that. I wasn't trying to say you personally prefer autotools, just that, as I see it, the bitcoin core project is unproductively stuck clinging to autotools, and costs of adding cmake support should be small as long as we (1) choose one build system to use for official releases (2) allow each build system to have different features for other development and don't insist on parity

    Thanks. And it's understandable that I'm pretty much synonymous with autotools around here, since I did that to us.

    Agree to disagree on 2), as I believe problems with this approach will expose themselves as @hebasto plods on. But I'll try to keep the discussion productive.

  77. theuni commented at 6:08 PM on August 18, 2022: member

    (2) allow each build system to have different features for other development and don't insist on parity

    More specifically, I don't think that a flag-day switch-over would be the only way to do this. But maybe I've been misrepresenting your "some stuff here, some stuff there" approach as well. So maybe we should drill down some.

    I took your approach to mean something like (using a made-up but maybe realistic example): "CMake builds the release binaries, but autotools continues to handle the c-i for a while". I think this would be a bad idea. I jumped to that conclusion because @hebasto mentioned hooking up the unit tests in a follow-up PR. I think that would be a very unwise approach.

    However, if (once the feature matrix is more built out) we can agree on a set of essentials (I would say release binaries, c-i, everyday dev features, not sure what else), then something like a feature-freeze for autotools and a promise to move over the remaining less critical features (for ex profiling, coverage, etc) over the course of a release cycle.. I could see that as realistic. So I guess that relies on a few things happening:

    • a minimum viable set of features being 100% complete, tested, and working with CMake
    • a clear direction of feature movement (away from frozen autotools to CMake)
    • a plan/promise to move the remaining features
    • a sunset plan for autotools

    Again, the absence of those things here is what leads me to believe that this work is jumping the gun. But instead of grumping, I should've just laid that out. Turns out it took some fighting for that to materialize for me. Thank you for your patience :)

  78. hebasto marked this as a draft on Aug 18, 2022
  79. hebasto commented at 8:12 PM on August 18, 2022: member

    Converted to a draft until achievement of essential features parity.

  80. hebasto force-pushed on Aug 19, 2022
  81. hebasto commented at 12:19 PM on August 19, 2022: member

    Updated e016b22e6c365194743f54a7111f44caf6051394 -> 99793951bb06819aa626f7813e7d6f0a26ebd205 (pr25797.09 -> pr25797.10):

    Any reason you're not using -Werror for flag checks like we do in configure?

    Fixed. Actually, it is that file's job, but it needs to be updated with the "argument unused during compilation" case.

    The build ultimately fails because -Werror is enabled for the crc32c build. Looks like we'll need to turn off any flags we don't want enabled by default (like -Werror) in the subproject CMake configurations.

    As the crc32c project modifies the CMAKE_CXX_FLAGS variable directly, it must be fixed within the project (a bad CMake practice case -- global compiler flags instead of binding them to targets).

  82. theuni commented at 3:10 PM on August 26, 2022: member

    As the crc32c project modifies the CMAKE_CXX_FLAGS variable directly, it must be fixed within the project (a bad CMake practice case -- global compiler flags instead of binding them to targets).

    Any reason not to PR a fix for this upstream?

  83. da2ce7 commented at 10:38 PM on August 28, 2022: none

    Interesting. Many open-source project have considered meson a very lightweight, effective, and well-maintained build system.

    Have you compared or contrasted CMake with Meson?

  84. hebasto commented at 10:40 PM on August 28, 2022: member

    @da2ce7

    Have you compared or contrasted CMake with Meson?

    From the PR description:

    CMake is the build system for Qt 6

  85. da2ce7 commented at 10:49 PM on August 28, 2022: none

    @da2ce7

    Have you compared or contrasted CMake with Meson?

    From the PR description:

    CMake is the build system for Qt 6

    I believe the QT module for meson supports Qt 6 also: https://github.com/mesonbuild/meson/blob/master/mesonbuild/modules/qt.py

    In many ways I think that the ideals of meson align closer than cmake for bitcoin. (light-weight, more auditable, and faster, while still being activity maintained and popular).

  86. luke-jr commented at 11:09 PM on August 28, 2022: member

    meson is annoying to me as a user (for other software). I have to re-patch it every release.

    But in any case, other build systems seem off-topic here. Suggest opening a new issue if you really want to push meson.

  87. eli-schwartz commented at 11:27 PM on August 28, 2022: none

    meson is annoying to me as a user (for other software). I have to re-patch it every release.

    Aside: Why would you need to patch any software "every release"? If you're maintaining a private rolling patchset on top of Meson, shouldn't this be contributed upstream?

  88. hebasto commented at 11:40 AM on August 29, 2022: member

    As the crc32c project modifies the CMAKE_CXX_FLAGS variable directly, it must be fixed within the project (a bad CMake practice case -- global compiler flags instead of binding them to targets).

    I was wrong. We can override the -Werror option in the CMAKE_CXX_FLAGS variable, which is local in the crc32c directory scope, with the -Wno-error option in the COMPILE_OPTIONS property of the crc32c directory. @theuni

    Any reason not to PR a fix for this upstream?

    A patch doesn't look to be trivial as the CMAKE_CXX_FLAGS variable does affect the following check_cxx_compiler_flag commands.

  89. hebasto force-pushed on Aug 29, 2022
  90. hebasto commented at 10:30 PM on August 29, 2022: member

    Updated 99793951bb06819aa626f7813e7d6f0a26ebd205 -> 943e5ceeaaba706560cfbd23023e7cd8be151d6f (pr25797.10 -> pr25797.11):

    • rebased
    • added draft implementation for test_bitcoin executable
    • a few other improvements
  91. hebasto force-pushed on Aug 30, 2022
  92. hebasto commented at 1:41 PM on August 30, 2022: member

    Updated 943e5ceeaaba706560cfbd23023e7cd8be151d6f -> 24dc55b03ce11cc5a51d4973993058bb7b77ae9f (pr25797.11 -> pr25797.12):

    • rebased
    • added the check target, use as usually -- make check
    • fixed linter errors

    The PR description has been updated.

  93. hebasto commented at 1:50 PM on August 30, 2022: member

    I'm assuming that unit-test build support with CMake is still under construction?

    It is, but not as a part of this PR. My intention is to keep the latter more or less digestible for reviewers.

    Could you please advise how we can review this without simply testing it on each platform? @theStack @theuni

    The make check has been implemented now :tiger2:

  94. hebasto force-pushed on Aug 30, 2022
  95. hebasto commented at 6:59 PM on August 30, 2022: member

    Updated 24dc55b03ce11cc5a51d4973993058bb7b77ae9f -> efe98def733c39e18dc2b0032787fe6dda503ab5 (pr25797.12 -> pr25797.13):

    • rebased on top of the recent changes in the build system
    • fixed linking on macOS
  96. hebasto commented at 7:01 PM on August 30, 2022: member

    @adam2k

    Although, I am running into errors during the second step in the process when I get to the Linking CXX executable bitcoin-qt.

    Thank you for testing! Linking on macOS should be fixed now.

  97. in cmake/optional.cmake:81 in efe98def73 outdated
      76 | +        if(ALLOW_INCOMPATIBLE_BDB)
      77 | +          message(WARNING "BDB (legacy) wallets opened by this build will not be portable!")
      78 | +        else()
      79 | +          message(WARNING "BDB (legacy) wallets opened by this build would not be portable!\n"
      80 | +                          "If this is intended, pass \"-DALLOW_INCOMPATIBLE_BDB=ON\".\n"
      81 | +                          "Passing \"-DWITH_BDB=no\" will suppress this warning.\n")
    


    vasild commented at 3:46 PM on August 31, 2022:

    Is the only difference in the text of the warning message, if ALLOW_INCOMPATIBLE_BDB is defined or not? I would expect the build to fail if bdb 5.3 is found and ALLOW_INCOMPATIBLE_BDB is not defined. Also, the warnings look a bit too alarming in the cmake output, especially given that I have specified -DALLOW_INCOMPATIBLE_BDB=ON. Consider the below or feel free to ignore:

    --- i/cmake/optional.cmake
    +++ w/cmake/optional.cmake
    @@ -69,19 +69,19 @@ if(ENABLE_WALLET)
       if(NOT WITH_BDB STREQUAL "no")
         find_package(BerkeleyDB 4.8)
         if(BerkeleyDB_FOUND)
           set(WITH_BDB yes)
           set(USE_BDB ON)
           if(NOT BerkeleyDB_VERSION VERSION_EQUAL 4.8)
    -        message(WARNING "Found Berkeley DB (BDB) other than 4.8.")
    +        message(STATUS "Found Berkeley DB (BDB) other than 4.8.")
             if(ALLOW_INCOMPATIBLE_BDB)
    -          message(WARNING "BDB (legacy) wallets opened by this build will not be portable!")
    +          message(STATUS "BDB (legacy) wallets opened by this build will not be portable!")
             else()
    -          message(WARNING "BDB (legacy) wallets opened by this build would not be portable!\n"
    +          message(FATAL_ERROR "BDB (legacy) wallets opened by this build would not be portable!\n"
                               "If this is intended, pass \"-DALLOW_INCOMPATIBLE_BDB=ON\".\n"
    -                          "Passing \"-DWITH_BDB=no\" will suppress this warning.\n")
    +                          "Passing \"-DWITH_BDB=no\" will suppress this check.\n")
             endif()
           endif()
    

    hebasto commented at 10:12 AM on September 1, 2022:

    There is a rough consensus among build system people here that the new CMake-based system should follow the current Autotools-based one as close as possible.

    These lines follow https://github.com/bitcoin/bitcoin/blob/fa5c224d444802dabec5841009e029b9754c92f1/build-aux/m4/bitcoin_find_bdb48.m4#L56-L66

    which was recently updated in #23168.

  98. adam2k commented at 8:16 PM on August 31, 2022: none

    Thanks for the fix @hebasto!

    Approach ACK efe98def733c39e18dc2b0032787fe6dda503ab5

    I don't have as much background as others commenting here, so take my ACK as QA on the build and run process on an M1 Mac.

    Hardware Overview:
    
      Model Name:	MacBook Pro
      Model Identifier:	MacBookPro18,3
      Chip:	Apple M1 Pro
      Total Number of Cores:	8 (6 performance and 2 efficiency)
      Memory:	32 GB
    
    $ make
    ...
    [ 78%] Built target bitcoinqt
    [ 78%] Automatic MOC and UIC for target bitcoin-qt
    [ 78%] Built target bitcoin-qt_autogen
    [ 78%] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
    [ 78%] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
    [ 78%] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/init/bitcoin-qt.cpp.o
    [ 79%] Linking CXX executable bitcoin-qt
    [ 79%] Built target bitcoin-qt
    ...
    [100%] Linking CXX executable test_bitcoin
    [100%] Built target test_bitcoin
    
    $ make check
    ...
    108/108 Test [#105](/bitcoin-bitcoin/105/): wallet_tests:../wallet/test/wallet_tests.cpp ................................   Passed   12.83 sec
    
    100% tests passed, 0 tests failed out of 108
    
    Total Test time (real) =  18.36 sec
    [100%] Built target check
    
  99. hebasto force-pushed on Sep 1, 2022
  100. hebasto commented at 3:36 PM on September 1, 2022: member

    Updated efe98def733c39e18dc2b0032787fe6dda503ab5 -> 10c404eb22d48cf7472ecde6571e276ecb0b3975 (pr25797.13 -> pr25797.14):

    • added the WERROR option
    • fixed BDB search on FreeBSD (thanks to @vasild for reporting this issue on IRC and working on a fix)
    • other improvements and fixes
  101. hebasto force-pushed on Sep 20, 2022
  102. hebasto commented at 9:21 PM on September 20, 2022: member

    Updated 10c404eb22d48cf7472ecde6571e276ecb0b3975 -> f4908a81baf9db9d4b1239856901743bb5a7404e (pr25797.14 -> pr25797.15):

    • added the CXX20 option
    • use -DCMAKE_BUILD_TYPE=Debug as Autotools's --enable-debug
    • other improvements and fixes

    The PR description has been amended with an example of cross-building for Windows with DEBUG=1 which is broken in Autotools-based build system.

  103. hebasto force-pushed on Sep 24, 2022
  104. hebasto commented at 8:58 PM on September 24, 2022: member

    Updated f4908a81baf9db9d4b1239856901743bb5a7404e -> e518752dde040626e8833124107210a980c713fb (pr25797.15 -> pr25797.16):

    • added the BUILD_BENCH option
    • added the INSTALL_MAN option
  105. hebasto force-pushed on Sep 25, 2022
  106. hebasto commented at 8:55 PM on September 25, 2022: member

    Updated e518752dde040626e8833124107210a980c713fb -> c2c5553c2e02e75be0a87e4522329b792cf23a25 (pr25797.16 -> pr25797.17):

    • added the BUILD_SHARED option
    • added the BUILD_STATIC option
    • added the BUILD_UTIL_CHAINSTATE option @theuni @TheCharlatan Your feedback regarding the recent updates will be much appreciated.
  107. hebasto force-pushed on Sep 27, 2022
  108. hebasto commented at 3:35 PM on September 27, 2022: member

    Updated c2c5553c2e02e75be0a87e4522329b792cf23a25 -> b08c83db15e5fc2cfe1d075854b6cb481432f1d3 (pr25797.17 -> pr25797.18).

    Building of libbitcoinconsensus and libbitcoinkernel now works for any reasonable configuration, including shared and/or static, native for Linux, macOS, Windows or cross-building.

    Also an issue, which was similar to #25947, has been fixed.

  109. hebasto force-pushed on Oct 1, 2022
  110. hebasto force-pushed on Oct 2, 2022
  111. DrahtBot added the label Needs rebase on Oct 3, 2022
  112. hebasto force-pushed on Oct 5, 2022
  113. DrahtBot removed the label Needs rebase on Oct 5, 2022
  114. hebasto force-pushed on Oct 11, 2022
  115. hebasto commented at 8:42 AM on October 12, 2022: member

    Updated b4ffc79603c73a73df0fc734e2825450920de929 -> 43c9e77b6c158874831aba61e2861060137a209e (pr25797.20 -> pr25797.21):

    • rebased
    • the "Win64 native [vs2022]" CI task converted to CMake (cc @sipsorcery)
  116. DrahtBot added the label Needs rebase on Oct 13, 2022
  117. hebasto force-pushed on Oct 19, 2022
  118. hebasto commented at 9:04 AM on October 19, 2022: member

    Rebased 43c9e77b6c158874831aba61e2861060137a209e -> 8a1fd1984100911ddfc16175a66ca45cac36de32 (pr25797.21 -> pr25797.22).

  119. DrahtBot removed the label Needs rebase on Oct 19, 2022
  120. hebasto force-pushed on Oct 23, 2022
  121. hebasto commented at 9:51 AM on October 23, 2022: member

    Updated 8a1fd1984100911ddfc16175a66ca45cac36de32 -> 14c3cd04db7168478cbbd0294d3de8c892c67b45 (pr25797.22 -> pr25797.23):

    • rebased
    • bugfixes
    • improvements
  122. hebasto force-pushed on Oct 23, 2022
  123. hebasto force-pushed on Oct 31, 2022
  124. hebasto commented at 11:45 AM on October 31, 2022: member

    Updated d6c6114845d9199e9e4cf56e5d2a4a5103034c14 -> d4965750cb24a853d19114799babafb72676f8e2 (pr25797.24 -> pr25797.25):

    • rebased
    • bugfixes
    • improvements
  125. fanquake referenced this in commit d08b63baa0 on Nov 1, 2022
  126. hebasto force-pushed on Nov 1, 2022
  127. hebasto commented at 8:48 AM on November 1, 2022: member

    Rebased d4965750cb24a853d19114799babafb72676f8e2 -> fdaea87660acdf5d76182f313a7add5ea0b2fd98 (pr25797.25 -> pr25797.26) on top of the #26373 to make the test/lint/git-subtree-check.sh lint script happy.

  128. sidhujag referenced this in commit 0d85218568 on Nov 1, 2022
  129. hebasto force-pushed on Nov 3, 2022
  130. hebasto force-pushed on Nov 3, 2022
  131. hebasto commented at 6:09 PM on November 3, 2022: member

    Updated fdaea87660acdf5d76182f313a7add5ea0b2fd98 -> db8632f872b73d42aa1b2c73ecf2647b9f3c4df0 (pr25797.26 -> pr25797.27):

    • rebased
    • fixed CMake 3.10 compatibility issues

    Guix builds for all Linux hosts are available now.

  132. hebasto force-pushed on Nov 8, 2022
  133. hebasto commented at 2:39 PM on November 8, 2022: member

    Guix builds on x86_64:

    c58be75a724bd60c56d8a1b0480ff596b29430e4b5b55e901eb787c1809b040d  guix-build-2d258107b571/output/aarch64-linux-gnu/SHA256SUMS.part
    4900d846afb99419c7e43940fc0fde830cde42fea23f4dac68dbb3e280d397b3  guix-build-2d258107b571/output/aarch64-linux-gnu/bitcoin-2d258107b571-aarch64-linux-gnu-debug.tar.gz
    61c5b5a95e6fbce0bfbc49cdd4cf5b64992fb2307531fe16f313da39d0e780de  guix-build-2d258107b571/output/aarch64-linux-gnu/bitcoin-2d258107b571-aarch64-linux-gnu.tar.gz
    e13d1450756b56d094a948c8939f0657f3ee1ac688d3c3914afcbd192a843ec9  guix-build-2d258107b571/output/arm-linux-gnueabihf/SHA256SUMS.part
    9b42766eedeef981e40be5d8d568ba02c84b3b238a532f6ce587ea6f129b3e8a  guix-build-2d258107b571/output/arm-linux-gnueabihf/bitcoin-2d258107b571-arm-linux-gnueabihf-debug.tar.gz
    08ec85b271da0f9635af02bfc058e77096ba9092137068955e8e2d3f4542b8a2  guix-build-2d258107b571/output/arm-linux-gnueabihf/bitcoin-2d258107b571-arm-linux-gnueabihf.tar.gz
    5a9bb233e3f36514bf7688db2e21656bb93e239dd251553aa144f47c31138d08  guix-build-2d258107b571/output/arm64-apple-darwin/SHA256SUMS.part
    f183ff9670aad8584268c8d941dfd9259b0329a1b5793cf324c6908266fcf05a  guix-build-2d258107b571/output/arm64-apple-darwin/bitcoin-2d258107b571-arm64-apple-darwin-unsigned.dmg
    47e5caaab3d7f46a85f6beaa90f3b3c9b7f709499462f014664236a18ea9b108  guix-build-2d258107b571/output/arm64-apple-darwin/bitcoin-2d258107b571-arm64-apple-darwin-unsigned.tar.gz
    cbc92e630d47c5d3ef47de7b0e03f74257ee9c2b37505e64f9a6a15c8899499d  guix-build-2d258107b571/output/arm64-apple-darwin/bitcoin-2d258107b571-arm64-apple-darwin.tar.gz
    77e7d0cfceb99540e6edc4a0a33e4b347a0873c636be0a2388d0fd25f189d8ba  guix-build-2d258107b571/output/dist-archive/bitcoin-2d258107b571.tar.gz
    bb320880d72f23f68d6a81cb73179b4e39330c9413e7c7712b5421ec5e63c889  guix-build-2d258107b571/output/powerpc64-linux-gnu/SHA256SUMS.part
    4b82844ff411fc91ec90efec91d44cadd3683fb082f623aa2bc05b4226f4042a  guix-build-2d258107b571/output/powerpc64-linux-gnu/bitcoin-2d258107b571-powerpc64-linux-gnu-debug.tar.gz
    3b8077f819ad6368a7bad5a77a9b5df65acbe6b9ef981d8fd9317522c693dc99  guix-build-2d258107b571/output/powerpc64-linux-gnu/bitcoin-2d258107b571-powerpc64-linux-gnu.tar.gz
    5851b4127ad6c898bd817e20d1ed82e425bd8944db8a9325426790511ec3ddfe  guix-build-2d258107b571/output/powerpc64le-linux-gnu/SHA256SUMS.part
    48e0f599217a850e300efa4a623817ea9eb4ed6126be69c64944d2244159b42e  guix-build-2d258107b571/output/powerpc64le-linux-gnu/bitcoin-2d258107b571-powerpc64le-linux-gnu-debug.tar.gz
    cfd05fe5358b816c4b841c67d39376b6d57ce9dfad3a28f3470e88f149598378  guix-build-2d258107b571/output/powerpc64le-linux-gnu/bitcoin-2d258107b571-powerpc64le-linux-gnu.tar.gz
    d5f59ee98e32afeefad09e49103913ffe0a084837fac6be037e244590c988e03  guix-build-2d258107b571/output/riscv64-linux-gnu/SHA256SUMS.part
    6a3f61ba145b245fd49478efeae247c401f12554aed6ac07df618dc1d1b38468  guix-build-2d258107b571/output/riscv64-linux-gnu/bitcoin-2d258107b571-riscv64-linux-gnu-debug.tar.gz
    9308468239e3915a43347011fe4bf56382c84093b42a9443acdba33352b5453f  guix-build-2d258107b571/output/riscv64-linux-gnu/bitcoin-2d258107b571-riscv64-linux-gnu.tar.gz
    e819271d918e9df8cb99188123ff7476674b60eed363c8a0b90df7ddca4e072e  guix-build-2d258107b571/output/x86_64-apple-darwin/SHA256SUMS.part
    17e103e6844629b70a57894ada0b49a7c296ac868a0bb4969535135e573899c7  guix-build-2d258107b571/output/x86_64-apple-darwin/bitcoin-2d258107b571-x86_64-apple-darwin-unsigned.dmg
    e3a3c09e8b1ea70aede28a12c6c945c03a98712a148c73ff8cd0a487ed9ee095  guix-build-2d258107b571/output/x86_64-apple-darwin/bitcoin-2d258107b571-x86_64-apple-darwin-unsigned.tar.gz
    812fcd5a02bc5b18c8a10724393e20d9256597ac6eb5f2f4869933ef0a2370a4  guix-build-2d258107b571/output/x86_64-apple-darwin/bitcoin-2d258107b571-x86_64-apple-darwin.tar.gz
    415679743fd23edea683ae407c8f4e4b888c11128062cf3b580a9488653976aa  guix-build-2d258107b571/output/x86_64-linux-gnu/SHA256SUMS.part
    2d12a909dd88ffb27464f9c58cf8e0e4cc7411740c437f59b564e311d68e9141  guix-build-2d258107b571/output/x86_64-linux-gnu/bitcoin-2d258107b571-x86_64-linux-gnu-debug.tar.gz
    7cb247a192cf057d39e336657f8b9a4a190ef492acfc5f55a00c319fa7781b68  guix-build-2d258107b571/output/x86_64-linux-gnu/bitcoin-2d258107b571-x86_64-linux-gnu.tar.gz
    074fad654665bece50efe8ceca8dfc044ececb3189bf56d1d07ac50d5b3699b6  guix-build-2d258107b571/output/x86_64-w64-mingw32/SHA256SUMS.part
    0cfa618db540b54799c7c0f5c19ebf51d6d1d6dddda552099f936ad49b5f4ebd  guix-build-2d258107b571/output/x86_64-w64-mingw32/bitcoin-2d258107b571-win64-debug.zip
    57360aec700e67dc1993669008b29267916fb9986f2157a9c3aade46c134c50e  guix-build-2d258107b571/output/x86_64-w64-mingw32/bitcoin-2d258107b571-win64-setup-unsigned.exe
    658ecc8f096ca2336ebf42b5898b7605bec77196191578daa38a56cd491fe2ca  guix-build-2d258107b571/output/x86_64-w64-mingw32/bitcoin-2d258107b571-win64-unsigned.tar.gz
    d1df5ff7cd47f4baf7c6846229ad1fc24849742831916d4e7bc5c6b80a812626  guix-build-2d258107b571/output/x86_64-w64-mingw32/bitcoin-2d258107b571-win64.zip
    
  134. maflcko added the label DrahtBot Guix build requested on Nov 8, 2022
  135. maflcko referenced this in commit 44ca5d5e87 on Nov 9, 2022
  136. sidhujag referenced this in commit 9296034a34 on Nov 9, 2022
  137. hebasto force-pushed on Nov 9, 2022
  138. hebasto force-pushed on Nov 9, 2022
  139. hebasto force-pushed on Nov 10, 2022
  140. hebasto force-pushed on Nov 11, 2022
  141. hebasto force-pushed on Nov 11, 2022
  142. hebasto force-pushed on Nov 11, 2022
  143. hebasto commented at 10:06 PM on November 11, 2022: member

    Updated (pr25797.33):

  144. hebasto force-pushed on Nov 12, 2022
  145. hebasto commented at 1:48 PM on November 12, 2022: member

    Guix builds:

    52832f54f426c0cf5af8de29c721c97bb4719822e1ad15c13bba19c3e27eecbf  guix-build-22ca7396ce14/output/aarch64-linux-gnu/SHA256SUMS.part
    b688f1943508b53a4ab9717b5602667b5fd0eaaa3f748b565553745ecb5e2a59  guix-build-22ca7396ce14/output/aarch64-linux-gnu/bitcoin-22ca7396ce14-aarch64-linux-gnu-debug.tar.gz
    dc49db0237f1f4cd530aff692fd9216b418356f7ec78c646ed3b7d92a3f611f1  guix-build-22ca7396ce14/output/aarch64-linux-gnu/bitcoin-22ca7396ce14-aarch64-linux-gnu.tar.gz
    eb1160121252cfa11d0c442a5361867383c865a2ae06e9bde7f74403eee87631  guix-build-22ca7396ce14/output/arm-linux-gnueabihf/SHA256SUMS.part
    bc74674499eda7848939c419626f8060df49065b4c59867273b0e4de9771ff87  guix-build-22ca7396ce14/output/arm-linux-gnueabihf/bitcoin-22ca7396ce14-arm-linux-gnueabihf-debug.tar.gz
    1072d500c3bc3ac0eacbe83c480ad59f3bab9623104110775a2cae8add3b8b5b  guix-build-22ca7396ce14/output/arm-linux-gnueabihf/bitcoin-22ca7396ce14-arm-linux-gnueabihf.tar.gz
    31bb7fc6133b89f278467c4e013ebb4f2cdbd128be51c823f746166584faf9d5  guix-build-22ca7396ce14/output/arm64-apple-darwin/SHA256SUMS.part
    957f06f3fc73e5511e7fdc359c5f3b54fc6a02dac2a30c54a17b54c3435d1b99  guix-build-22ca7396ce14/output/arm64-apple-darwin/bitcoin-22ca7396ce14-arm64-apple-darwin-unsigned.dmg
    d1031ce7e0c5cf39d6ca714e0fc173a09cbee4d8f5b879a391829c265c73c054  guix-build-22ca7396ce14/output/arm64-apple-darwin/bitcoin-22ca7396ce14-arm64-apple-darwin-unsigned.tar.gz
    3f47536fc946828c83c873b7b3151a757ebab0d09236230b8fe21398202793a6  guix-build-22ca7396ce14/output/arm64-apple-darwin/bitcoin-22ca7396ce14-arm64-apple-darwin.tar.gz
    24978bcaa13a6ec4cca2dbbf3171bbb1b0db562b84299ada6821ad628d366583  guix-build-22ca7396ce14/output/dist-archive/bitcoin-22ca7396ce14.tar.gz
    1c1ebde18fde86ecffe6d7637deca5443cf9491d7dc28b53d9aae2b28cbb0870  guix-build-22ca7396ce14/output/powerpc64-linux-gnu/SHA256SUMS.part
    fb69f7374e32e2c9725df08251cd86564b5ee751b61d9b43630ef730ec451300  guix-build-22ca7396ce14/output/powerpc64-linux-gnu/bitcoin-22ca7396ce14-powerpc64-linux-gnu-debug.tar.gz
    076664d13654653e0db1706a3624c01d5d23a4ab0490b5eacc5f6d050cd53cb5  guix-build-22ca7396ce14/output/powerpc64-linux-gnu/bitcoin-22ca7396ce14-powerpc64-linux-gnu.tar.gz
    21ee21c5bf45fe32373615682a3da6a196530ef5af9f6627dee653bfc81e9975  guix-build-22ca7396ce14/output/powerpc64le-linux-gnu/SHA256SUMS.part
    361a811774b669f7157c6cd55c9ac821f8b93aff10348dc93ef8e284705b7e99  guix-build-22ca7396ce14/output/powerpc64le-linux-gnu/bitcoin-22ca7396ce14-powerpc64le-linux-gnu-debug.tar.gz
    b9c6688e1eca7b845205d46614828e03115f5116aeb0da9fbad4964eaf0a089f  guix-build-22ca7396ce14/output/powerpc64le-linux-gnu/bitcoin-22ca7396ce14-powerpc64le-linux-gnu.tar.gz
    b105397484b320d719153e3d8901deac54a94fb212391fc673427e1ba4392e5a  guix-build-22ca7396ce14/output/riscv64-linux-gnu/SHA256SUMS.part
    c83aea30a43de251f41c762cdc74a742f4ccf4872e9ec90b1128e6b22d543342  guix-build-22ca7396ce14/output/riscv64-linux-gnu/bitcoin-22ca7396ce14-riscv64-linux-gnu-debug.tar.gz
    9c7fbc84c2fe1a13b9a8513518ef2cf7619cb0d955c2e608dea54a24996a77ff  guix-build-22ca7396ce14/output/riscv64-linux-gnu/bitcoin-22ca7396ce14-riscv64-linux-gnu.tar.gz
    e6468e171b4565276f49540e83e632c4610251f9ff2aac99259b630465d38c19  guix-build-22ca7396ce14/output/x86_64-apple-darwin/SHA256SUMS.part
    68f8f7b7c1faa68ee0c3e16e5d981efb898c0c47139e4b13cddbb037f59f5da8  guix-build-22ca7396ce14/output/x86_64-apple-darwin/bitcoin-22ca7396ce14-x86_64-apple-darwin-unsigned.dmg
    fe23d0ab05b060438f68245b3e9094746bffa82e3aca6b49784b6b4f9b58f3e9  guix-build-22ca7396ce14/output/x86_64-apple-darwin/bitcoin-22ca7396ce14-x86_64-apple-darwin-unsigned.tar.gz
    a09de4ecf300c4597f4f57e61a70197fa739f2bffb2511f6e6f0cca04b8ba778  guix-build-22ca7396ce14/output/x86_64-apple-darwin/bitcoin-22ca7396ce14-x86_64-apple-darwin.tar.gz
    f8bfa10c142fbe13984c70c6f6ccc8072ae51d967d6d7d05f74e5eaad3e92527  guix-build-22ca7396ce14/output/x86_64-linux-gnu/SHA256SUMS.part
    639ed8090d8c0fe41ba9e0fd9f01ad811fa0935ff03f5adb542d3beca5083610  guix-build-22ca7396ce14/output/x86_64-linux-gnu/bitcoin-22ca7396ce14-x86_64-linux-gnu-debug.tar.gz
    0c198c0fd19f5b2ba8e6796148389d9a82399ce60ad99e6ee471696db40bc473  guix-build-22ca7396ce14/output/x86_64-linux-gnu/bitcoin-22ca7396ce14-x86_64-linux-gnu.tar.gz
    3acef415941b8c9ed25e24a7687e3c1de26521e5cb9e13ecc66659e81502bf90  guix-build-22ca7396ce14/output/x86_64-w64-mingw32/SHA256SUMS.part
    6be35017e1ccce2ec006f3ce1dbb5510837e3b2c875efb9f42340db742fc0a80  guix-build-22ca7396ce14/output/x86_64-w64-mingw32/bitcoin-22ca7396ce14-win64-debug.zip
    8a81fcbdc679025f24565156501f0f3e521d7baa88c216bf1a20751b8a906516  guix-build-22ca7396ce14/output/x86_64-w64-mingw32/bitcoin-22ca7396ce14-win64-setup-unsigned.exe
    5ecba9102b88bcb863830b111392ef28063fc69248bb40e798755e250fcd3649  guix-build-22ca7396ce14/output/x86_64-w64-mingw32/bitcoin-22ca7396ce14-win64-unsigned.tar.gz
    351d98273b73a8548b736347adcf8774cfe78c258309f64ff2417e7c2fe0ff1f  guix-build-22ca7396ce14/output/x86_64-w64-mingw32/bitcoin-22ca7396ce14-win64.zip
    
  146. hebasto force-pushed on Nov 13, 2022
  147. hebasto commented at 8:57 PM on November 13, 2022: member

    Updated 22ca7396ce1407b47f6ece5167f95c50509475ab -> f7ed9f9398c6a587018faa16af86bb48c3150dc6 (pr25797.34 -> pr25797.35):

    Guix builds:

    cadfa7b74983799b45dac13ab6e3737634ae7f2417f88c1c24578b1bab7ba328  guix-build-f7ed9f9398c6/output/aarch64-linux-gnu/SHA256SUMS.part
    fa969c0908b4cb81b79fa919d5502446976a8cca21b6ced56b99b05d39c1fd2d  guix-build-f7ed9f9398c6/output/aarch64-linux-gnu/bitcoin-f7ed9f9398c6-aarch64-linux-gnu-debug.tar.gz
    0f6902081fdc6c57a41581c81719eb54a18f036bdb8761c6db6ab146709ac9f5  guix-build-f7ed9f9398c6/output/aarch64-linux-gnu/bitcoin-f7ed9f9398c6-aarch64-linux-gnu.tar.gz
    49bdd3992d93207fd5b5ea9cda8d5dc3fceb65817ce61f89031814de56b705eb  guix-build-f7ed9f9398c6/output/arm-linux-gnueabihf/SHA256SUMS.part
    25d895ffe694368800ffe13e210f48446d04e28ae4451f7191bfedc79fd9ac2e  guix-build-f7ed9f9398c6/output/arm-linux-gnueabihf/bitcoin-f7ed9f9398c6-arm-linux-gnueabihf-debug.tar.gz
    97ddc3125ead3b652e798b4b45ac2fa86f7325a01f5d42a6418f5c8cb530822e  guix-build-f7ed9f9398c6/output/arm-linux-gnueabihf/bitcoin-f7ed9f9398c6-arm-linux-gnueabihf.tar.gz
    21ee91cc8eb48a9f1aca5c18ec93c5f03a99a942dcf09dd08accc128ceea2ad6  guix-build-f7ed9f9398c6/output/arm64-apple-darwin/SHA256SUMS.part
    18cc268dd33ffcd32585f53283bacb7171fc10641e3e26e1cd1f47b1f2db8406  guix-build-f7ed9f9398c6/output/arm64-apple-darwin/bitcoin-f7ed9f9398c6-arm64-apple-darwin-unsigned.dmg
    bf63c940e6219160a973adfd7d1b28e3da801f4b520b67081c6d8ef89824f505  guix-build-f7ed9f9398c6/output/arm64-apple-darwin/bitcoin-f7ed9f9398c6-arm64-apple-darwin-unsigned.tar.gz
    76d6dbbf5c94abc0c2c6e0289ec8d61c22e28f8d46554bdc9820e679d65d3600  guix-build-f7ed9f9398c6/output/arm64-apple-darwin/bitcoin-f7ed9f9398c6-arm64-apple-darwin.tar.gz
    d27ce78ad5ceb3b32173c37477d1d13d425fcd62c3d311682890a6c66fe6cd3b  guix-build-f7ed9f9398c6/output/dist-archive/bitcoin-f7ed9f9398c6.tar.gz
    6f50dc81f9355ee950258ab41f4699eb5832799106db372e3453033df5890438  guix-build-f7ed9f9398c6/output/powerpc64-linux-gnu/SHA256SUMS.part
    d9eaf2acb164874fdd10482f4ed406e799779127164aa8bc3b7e7421449c0675  guix-build-f7ed9f9398c6/output/powerpc64-linux-gnu/bitcoin-f7ed9f9398c6-powerpc64-linux-gnu-debug.tar.gz
    256ec2ff854c9245849d213dfcedcef42f0e5ffa32f166e6bfd79b20e4826b63  guix-build-f7ed9f9398c6/output/powerpc64-linux-gnu/bitcoin-f7ed9f9398c6-powerpc64-linux-gnu.tar.gz
    aad9d8341121480484b234f4b388a4c012a1a17e3d37dae287d4731305257cdd  guix-build-f7ed9f9398c6/output/powerpc64le-linux-gnu/SHA256SUMS.part
    f4db4e916b401e9c36d0716412dc97a6781322d21ffd4695258400650b9bf7b6  guix-build-f7ed9f9398c6/output/powerpc64le-linux-gnu/bitcoin-f7ed9f9398c6-powerpc64le-linux-gnu-debug.tar.gz
    ede35d7e5edbf3e22a98bf1dc7e0b7d7c0cb2785be72725e0ff41c27484de413  guix-build-f7ed9f9398c6/output/powerpc64le-linux-gnu/bitcoin-f7ed9f9398c6-powerpc64le-linux-gnu.tar.gz
    a98ed30e2b9664e17d644a61f0029320f43e10fa4a6427d274c2a3f590064f21  guix-build-f7ed9f9398c6/output/riscv64-linux-gnu/SHA256SUMS.part
    1bc0949f5df2981d542dfc66899c71bbd3675f0f32939ac0318724570e9dcfae  guix-build-f7ed9f9398c6/output/riscv64-linux-gnu/bitcoin-f7ed9f9398c6-riscv64-linux-gnu-debug.tar.gz
    3361a2c8813cac0060f66e6234741aca2183ce55d09d1b2edbfa60a71ac62b66  guix-build-f7ed9f9398c6/output/riscv64-linux-gnu/bitcoin-f7ed9f9398c6-riscv64-linux-gnu.tar.gz
    a937ce1d200b6bc17399fede527a019619cebd955b05ccc106d4afa5aa556b96  guix-build-f7ed9f9398c6/output/x86_64-apple-darwin/SHA256SUMS.part
    27fe9256c9a007e72d6e13ddf1dcf7a0bfb567d5b2f48dd1b165de7bcd263d82  guix-build-f7ed9f9398c6/output/x86_64-apple-darwin/bitcoin-f7ed9f9398c6-x86_64-apple-darwin-unsigned.dmg
    66034f0ea1d5f686d3414a1afbc2bf9382bac3a5b9630b2b7c6567787cb10a06  guix-build-f7ed9f9398c6/output/x86_64-apple-darwin/bitcoin-f7ed9f9398c6-x86_64-apple-darwin-unsigned.tar.gz
    6059c3fc0da479313f14a1a4d7c36c31298c26c7c95f5bc5b657fcb5e9cb3b42  guix-build-f7ed9f9398c6/output/x86_64-apple-darwin/bitcoin-f7ed9f9398c6-x86_64-apple-darwin.tar.gz
    abce2647002aefc89122f9a7ea2a43c2d247645e5c4f79b5af3ae02b32093ab3  guix-build-f7ed9f9398c6/output/x86_64-linux-gnu/SHA256SUMS.part
    b154d572eb7685cdf68da707a34d68ebc99ae84fe1d72f0103252a777ac7c113  guix-build-f7ed9f9398c6/output/x86_64-linux-gnu/bitcoin-f7ed9f9398c6-x86_64-linux-gnu-debug.tar.gz
    71acc448615b5cfe584363e8af658918188cb0de4cf1fb3f5c142a2f1e3b2882  guix-build-f7ed9f9398c6/output/x86_64-linux-gnu/bitcoin-f7ed9f9398c6-x86_64-linux-gnu.tar.gz
    0fd696057066c4c4f7917775c4fea3c98321842100f53328ecd25b049e2991c1  guix-build-f7ed9f9398c6/output/x86_64-w64-mingw32/SHA256SUMS.part
    cc51d66f6ac3036e0fb83f1aeadea98894eb62c468370e2cb9cc3102be5ffff6  guix-build-f7ed9f9398c6/output/x86_64-w64-mingw32/bitcoin-f7ed9f9398c6-win64-debug.zip
    111aa29051931e1911d87d5e26c5a85b1ac1721cce6d70ffd8bc9308f694b6a9  guix-build-f7ed9f9398c6/output/x86_64-w64-mingw32/bitcoin-f7ed9f9398c6-win64-setup-unsigned.exe
    01e8039fab1597940113e22214789b2434fd783e8de58361f0d1505fd8f82ff7  guix-build-f7ed9f9398c6/output/x86_64-w64-mingw32/bitcoin-f7ed9f9398c6-win64-unsigned.tar.gz
    7a1470d41d8fe319d3be18cc339ed80696589c09c091d45d7e41294bdd56ddf6  guix-build-f7ed9f9398c6/output/x86_64-w64-mingw32/bitcoin-f7ed9f9398c6-win64.zip
    
  148. jarolrod commented at 2:58 AM on November 15, 2022: member

    GUIX hashes

    x86:

    20f02048691ca60d9e4a7202cfc7607cbd16e616df81ccf346a8e09b91d94134  guix-build-219866feca50/output/aarch64-linux-gnu/SHA256SUMS.part
    73e722a001c303ca27762ceedffb53e092b22e3c5ff2130bc42cb9f42423433a  guix-build-219866feca50/output/aarch64-linux-gnu/bitcoin-219866feca50-aarch64-linux-gnu-debug.tar.gz
    b35a5e5295469aa3e4a99faba16f32b4a236014f1048f2602c0ed118279aec9f  guix-build-219866feca50/output/aarch64-linux-gnu/bitcoin-219866feca50-aarch64-linux-gnu.tar.gz
    9edacfaefa0eacd629488ec24ee8c9225b1f3bfc11c1f4bb2cd918fb04c7ed01  guix-build-219866feca50/output/arm-linux-gnueabihf/SHA256SUMS.part
    3d83a9d4a6726ea0cd075d43d33924c844b5fec21e5b09136cd69eddcee61539  guix-build-219866feca50/output/arm-linux-gnueabihf/bitcoin-219866feca50-arm-linux-gnueabihf-debug.tar.gz
    1975b67418b7e8c353c3656af47a32640ba26257b60daaee2e03181f2e6bcf09  guix-build-219866feca50/output/arm-linux-gnueabihf/bitcoin-219866feca50-arm-linux-gnueabihf.tar.gz
    982557aa54df13656f79514ff0b3407674c72f7712eaa77054b2d2179500f044  guix-build-219866feca50/output/arm64-apple-darwin/SHA256SUMS.part
    9ddf8d105ca71e8b2c6cb412ebc7096a8b73683196d582cf41829d4efd08970d  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin-unsigned.dmg
    69ce578e761179caa5c89b3b6904a18306c6a2a71ccae8cd8319b19b0e77433f  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin-unsigned.tar.gz
    5d5f45579f878deb83d9c1efc90dc731c385645d0d0741733aa7069219f17ee3  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin.tar.gz
    5ff1b74f04033cce9bd81381f22dad7cce6cdd6f9a904660df4bb972f0f90a64  guix-build-219866feca50/output/dist-archive/bitcoin-219866feca50.tar.gz
    7007509d189f6e72dcec499c21863ac971394b20895ef787c97ee7334c4f03a9  guix-build-219866feca50/output/powerpc64-linux-gnu/SHA256SUMS.part
    da6bba4dadec94c67373daf3e1c8360ffc2c106c9b3ed745e4377ec24614001d  guix-build-219866feca50/output/powerpc64-linux-gnu/bitcoin-219866feca50-powerpc64-linux-gnu-debug.tar.gz
    6c2eddecb33dc1a8fce980c6093188be19ba8d4bbe7ea391bfd5655d884e9563  guix-build-219866feca50/output/powerpc64-linux-gnu/bitcoin-219866feca50-powerpc64-linux-gnu.tar.gz
    edbe01931488033808ac143b8d0e5e908e600ba7adaa70762b5554ba8b2ddede  guix-build-219866feca50/output/powerpc64le-linux-gnu/SHA256SUMS.part
    37028a694608ea5de486a25814adcafea371686a0eb6293f1afa6f8da37823a4  guix-build-219866feca50/output/powerpc64le-linux-gnu/bitcoin-219866feca50-powerpc64le-linux-gnu-debug.tar.gz
    6bf6896934a96cd3ed088822af1ab236ffb75d56ca3c1607edf313ff88d0636d  guix-build-219866feca50/output/powerpc64le-linux-gnu/bitcoin-219866feca50-powerpc64le-linux-gnu.tar.gz
    b28d61a9be932b35b39e71651df787d132cf3a84b2057da037478dab9afa0d51  guix-build-219866feca50/output/riscv64-linux-gnu/SHA256SUMS.part
    d7f8a8db3e6b663f2f16584e0ae3e053f53ac28ab9eb04421bed6c30e490a8dd  guix-build-219866feca50/output/riscv64-linux-gnu/bitcoin-219866feca50-riscv64-linux-gnu-debug.tar.gz
    ab9fc807d237d7d3e3ba48af2f8907c669c6282bcd6dfda68523505976d093fc  guix-build-219866feca50/output/riscv64-linux-gnu/bitcoin-219866feca50-riscv64-linux-gnu.tar.gz
    d583f668b9e81bc38b5a21121b0713337bd9ace9aeb32638cc8e1838e821c25d  guix-build-219866feca50/output/x86_64-apple-darwin/SHA256SUMS.part
    5582c5c7625d12165774ad2bf9e8b86bae6623870802e2b56f1b46daec46f03f  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin-unsigned.dmg
    4229782794fc915d65a29a7efc084246a46a31719e912e3d0d676e6ab21e5aed  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin-unsigned.tar.gz
    5eb722711acf9b0a7020c8291123c42f4c93bde0e075ce943493a36eb81567db  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin.tar.gz
    79688f6bb82cbc68ce9e0a5f33d3cab5c4b6dc962255287005c4899890f67986  guix-build-219866feca50/output/x86_64-linux-gnu/SHA256SUMS.part
    16c8f915c3387422e04be20f1161853721a607d7bf46e0cab0a944d927e1e7ab  guix-build-219866feca50/output/x86_64-linux-gnu/bitcoin-219866feca50-x86_64-linux-gnu-debug.tar.gz
    e8ab83d38a7ffb261dadb6ba6216321569bc560e9f60f9468781e91fbdf8c4b5  guix-build-219866feca50/output/x86_64-linux-gnu/bitcoin-219866feca50-x86_64-linux-gnu.tar.gz
    317c549a71c20766a632a19f7d555b05c40adb4ac9a63926524ec117227679c6  guix-build-219866feca50/output/x86_64-w64-mingw32/SHA256SUMS.part
    da29a3e4895097e8c65e1c3eb5fb968c142d97a2c0024285c9cd9c9bf08cd407  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-debug.zip
    913dd6b18ee709131cb67d903beec86eb98b430f4632b2a423c25baffe6d363d  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-setup-unsigned.exe
    34dbeda2d684595de8a3b171ff79fc50d9287df9e153bd332a93cccfb4f1fe3c  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-unsigned.tar.gz
    9e1d73e552eec44fde06d82b5eb72d7f077d68a826c6827f179ca6c25d66ad17  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64.zip
    

    arm64:

    20f02048691ca60d9e4a7202cfc7607cbd16e616df81ccf346a8e09b91d94134  guix-build-219866feca50/output/aarch64-linux-gnu/SHA256SUMS.part
    73e722a001c303ca27762ceedffb53e092b22e3c5ff2130bc42cb9f42423433a  guix-build-219866feca50/output/aarch64-linux-gnu/bitcoin-219866feca50-aarch64-linux-gnu-debug.tar.gz
    b35a5e5295469aa3e4a99faba16f32b4a236014f1048f2602c0ed118279aec9f  guix-build-219866feca50/output/aarch64-linux-gnu/bitcoin-219866feca50-aarch64-linux-gnu.tar.gz
    9edacfaefa0eacd629488ec24ee8c9225b1f3bfc11c1f4bb2cd918fb04c7ed01  guix-build-219866feca50/output/arm-linux-gnueabihf/SHA256SUMS.part
    3d83a9d4a6726ea0cd075d43d33924c844b5fec21e5b09136cd69eddcee61539  guix-build-219866feca50/output/arm-linux-gnueabihf/bitcoin-219866feca50-arm-linux-gnueabihf-debug.tar.gz
    1975b67418b7e8c353c3656af47a32640ba26257b60daaee2e03181f2e6bcf09  guix-build-219866feca50/output/arm-linux-gnueabihf/bitcoin-219866feca50-arm-linux-gnueabihf.tar.gz
    982557aa54df13656f79514ff0b3407674c72f7712eaa77054b2d2179500f044  guix-build-219866feca50/output/arm64-apple-darwin/SHA256SUMS.part
    9ddf8d105ca71e8b2c6cb412ebc7096a8b73683196d582cf41829d4efd08970d  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin-unsigned.dmg
    69ce578e761179caa5c89b3b6904a18306c6a2a71ccae8cd8319b19b0e77433f  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin-unsigned.tar.gz
    5d5f45579f878deb83d9c1efc90dc731c385645d0d0741733aa7069219f17ee3  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin.tar.gz
    5ff1b74f04033cce9bd81381f22dad7cce6cdd6f9a904660df4bb972f0f90a64  guix-build-219866feca50/output/dist-archive/bitcoin-219866feca50.tar.gz
    7007509d189f6e72dcec499c21863ac971394b20895ef787c97ee7334c4f03a9  guix-build-219866feca50/output/powerpc64-linux-gnu/SHA256SUMS.part
    da6bba4dadec94c67373daf3e1c8360ffc2c106c9b3ed745e4377ec24614001d  guix-build-219866feca50/output/powerpc64-linux-gnu/bitcoin-219866feca50-powerpc64-linux-gnu-debug.tar.gz
    6c2eddecb33dc1a8fce980c6093188be19ba8d4bbe7ea391bfd5655d884e9563  guix-build-219866feca50/output/powerpc64-linux-gnu/bitcoin-219866feca50-powerpc64-linux-gnu.tar.gz
    edbe01931488033808ac143b8d0e5e908e600ba7adaa70762b5554ba8b2ddede  guix-build-219866feca50/output/powerpc64le-linux-gnu/SHA256SUMS.part
    37028a694608ea5de486a25814adcafea371686a0eb6293f1afa6f8da37823a4  guix-build-219866feca50/output/powerpc64le-linux-gnu/bitcoin-219866feca50-powerpc64le-linux-gnu-debug.tar.gz
    6bf6896934a96cd3ed088822af1ab236ffb75d56ca3c1607edf313ff88d0636d  guix-build-219866feca50/output/powerpc64le-linux-gnu/bitcoin-219866feca50-powerpc64le-linux-gnu.tar.gz
    b28d61a9be932b35b39e71651df787d132cf3a84b2057da037478dab9afa0d51  guix-build-219866feca50/output/riscv64-linux-gnu/SHA256SUMS.part
    d7f8a8db3e6b663f2f16584e0ae3e053f53ac28ab9eb04421bed6c30e490a8dd  guix-build-219866feca50/output/riscv64-linux-gnu/bitcoin-219866feca50-riscv64-linux-gnu-debug.tar.gz
    ab9fc807d237d7d3e3ba48af2f8907c669c6282bcd6dfda68523505976d093fc  guix-build-219866feca50/output/riscv64-linux-gnu/bitcoin-219866feca50-riscv64-linux-gnu.tar.gz
    d583f668b9e81bc38b5a21121b0713337bd9ace9aeb32638cc8e1838e821c25d  guix-build-219866feca50/output/x86_64-apple-darwin/SHA256SUMS.part
    5582c5c7625d12165774ad2bf9e8b86bae6623870802e2b56f1b46daec46f03f  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin-unsigned.dmg
    4229782794fc915d65a29a7efc084246a46a31719e912e3d0d676e6ab21e5aed  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin-unsigned.tar.gz
    5eb722711acf9b0a7020c8291123c42f4c93bde0e075ce943493a36eb81567db  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin.tar.gz
    79688f6bb82cbc68ce9e0a5f33d3cab5c4b6dc962255287005c4899890f67986  guix-build-219866feca50/output/x86_64-linux-gnu/SHA256SUMS.part
    16c8f915c3387422e04be20f1161853721a607d7bf46e0cab0a944d927e1e7ab  guix-build-219866feca50/output/x86_64-linux-gnu/bitcoin-219866feca50-x86_64-linux-gnu-debug.tar.gz
    e8ab83d38a7ffb261dadb6ba6216321569bc560e9f60f9468781e91fbdf8c4b5  guix-build-219866feca50/output/x86_64-linux-gnu/bitcoin-219866feca50-x86_64-linux-gnu.tar.gz
    317c549a71c20766a632a19f7d555b05c40adb4ac9a63926524ec117227679c6  guix-build-219866feca50/output/x86_64-w64-mingw32/SHA256SUMS.part
    da29a3e4895097e8c65e1c3eb5fb968c142d97a2c0024285c9cd9c9bf08cd407  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-debug.zip
    913dd6b18ee709131cb67d903beec86eb98b430f4632b2a423c25baffe6d363d  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-setup-unsigned.exe
    34dbeda2d684595de8a3b171ff79fc50d9287df9e153bd332a93cccfb4f1fe3c  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-unsigned.tar.gz
    9e1d73e552eec44fde06d82b5eb72d7f077d68a826c6827f179ca6c25d66ad17  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64.zip
    
  149. DrahtBot commented at 10:29 PM on November 17, 2022: contributor

    <!--9cd9c72976c961c55c7acef8f6ba82cd-->

    Guix builds

    File commit 82fe672ea078371cfa7a504cba87e52a782235fa<br>(master) commit 8d2b589a2b22461d5031e0cfc80cd73835158ccd<br>(master and this pull)
    SHA256SUMS.part b38f95d08b23616f... ba10ed64adedb83a...
    *-aarch64-linux-gnu-debug.tar.gz 9fa913450e29fc50... c32e47efad6e3420...
    *-aarch64-linux-gnu.tar.gz 260e9625075e4f19... 14c3b3d64e5b65bb...
    *-arm-linux-gnueabihf-debug.tar.gz 0bba99f7f5bec889... 0909cfc9eff7f479...
    *-arm-linux-gnueabihf.tar.gz fbf3a25ee9fc9e78... d1406926a4c2ed53...
    *-arm64-apple-darwin-unsigned.dmg 0bffc27fd303170b... 0f520318a7396437...
    *-arm64-apple-darwin-unsigned.tar.gz 433f72313857bbaf... 5d37af408e704fb4...
    *-arm64-apple-darwin.tar.gz 37b77895351f7522... 27e2076e71f51400...
    *-powerpc64-linux-gnu-debug.tar.gz 8a93308bb6fc5390... b8de829c361f9851...
    *-powerpc64-linux-gnu.tar.gz 5c12db2cb10b0e1b... f81b953612b70b4a...
    *-powerpc64le-linux-gnu-debug.tar.gz 169f2a89a43bdefc... 99132b8c994d2fbb...
    *-powerpc64le-linux-gnu.tar.gz 6ed11e729af32b1b... 64cdf4cb02f4c338...
    *-riscv64-linux-gnu-debug.tar.gz 3fff971d326647fa... b491fa1d3aafeeaa...
    *-riscv64-linux-gnu.tar.gz 23d9c5727d6cbcda... aa2227918d00d2b8...
    *-win64-debug.zip 900a6616c2cb833e... 4a7a47a510a9f85f...
    *-win64-setup-unsigned.exe e8fe580806aeb211... 18e423930fd72430...
    *-win64-unsigned.tar.gz 6d4cf146144b002c... cec5d1d704268791...
    *-win64.zip 90b2a0eacdf61f6c... ce3f65aca8016c9e...
    *-x86_64-apple-darwin-unsigned.dmg 1db55013b34b61d0... 6b1a3fa7804fba40...
    *-x86_64-apple-darwin-unsigned.tar.gz 52faa476c3df42ab... 12ef0f09feb05ce2...
    *-x86_64-apple-darwin.tar.gz 3bf6525ff9b6dc24... 7b6b64f5c9321e0a...
    *-x86_64-linux-gnu-debug.tar.gz 8a104738429e1a8f... 7d3a3f72eea40d45...
    *-x86_64-linux-gnu.tar.gz 37670b512a9f2c4e... d589d97ccdea8f29...
    *.tar.gz abc53833a9a002b4... f11828e42a0edd22...
    guix_build.log 5f09579d30fe2ea9... d1742a13aeac140e...
    guix_build.log.diff 13b1535f67b9424c...
  150. DrahtBot removed the label DrahtBot Guix build requested on Nov 17, 2022
  151. hebasto force-pushed on Nov 22, 2022
  152. hebasto commented at 4:37 PM on November 22, 2022: member

    Updated f7ed9f9398c6a587018faa16af86bb48c3150dc6 -> 6dfed1e708fa874870d9880d6348836577239223 (pr25797.35 -> pr25797.36):

    • rebased
    • fixed maxOS-specific minor bugs
    • improved multi-configuration handling for dependencies (MSVC)
  153. hebasto force-pushed on Nov 23, 2022
  154. hebasto force-pushed on Nov 23, 2022
  155. hebasto force-pushed on Nov 23, 2022
  156. hebasto force-pushed on Nov 23, 2022
  157. hebasto force-pushed on Nov 25, 2022
  158. hebasto force-pushed on Nov 25, 2022
  159. hebasto force-pushed on Nov 25, 2022
  160. RandyMcMillan commented at 5:37 PM on November 25, 2022: contributor

    concept ACK

  161. hebasto force-pushed on Nov 25, 2022
  162. hebasto commented at 8:11 PM on November 25, 2022: member

    Updated up to pr25797.39:

    Guix builds:

    20f02048691ca60d9e4a7202cfc7607cbd16e616df81ccf346a8e09b91d94134  guix-build-219866feca50/output/aarch64-linux-gnu/SHA256SUMS.part
    73e722a001c303ca27762ceedffb53e092b22e3c5ff2130bc42cb9f42423433a  guix-build-219866feca50/output/aarch64-linux-gnu/bitcoin-219866feca50-aarch64-linux-gnu-debug.tar.gz
    b35a5e5295469aa3e4a99faba16f32b4a236014f1048f2602c0ed118279aec9f  guix-build-219866feca50/output/aarch64-linux-gnu/bitcoin-219866feca50-aarch64-linux-gnu.tar.gz
    9edacfaefa0eacd629488ec24ee8c9225b1f3bfc11c1f4bb2cd918fb04c7ed01  guix-build-219866feca50/output/arm-linux-gnueabihf/SHA256SUMS.part
    3d83a9d4a6726ea0cd075d43d33924c844b5fec21e5b09136cd69eddcee61539  guix-build-219866feca50/output/arm-linux-gnueabihf/bitcoin-219866feca50-arm-linux-gnueabihf-debug.tar.gz
    1975b67418b7e8c353c3656af47a32640ba26257b60daaee2e03181f2e6bcf09  guix-build-219866feca50/output/arm-linux-gnueabihf/bitcoin-219866feca50-arm-linux-gnueabihf.tar.gz
    982557aa54df13656f79514ff0b3407674c72f7712eaa77054b2d2179500f044  guix-build-219866feca50/output/arm64-apple-darwin/SHA256SUMS.part
    9ddf8d105ca71e8b2c6cb412ebc7096a8b73683196d582cf41829d4efd08970d  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin-unsigned.dmg
    69ce578e761179caa5c89b3b6904a18306c6a2a71ccae8cd8319b19b0e77433f  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin-unsigned.tar.gz
    5d5f45579f878deb83d9c1efc90dc731c385645d0d0741733aa7069219f17ee3  guix-build-219866feca50/output/arm64-apple-darwin/bitcoin-219866feca50-arm64-apple-darwin.tar.gz
    5ff1b74f04033cce9bd81381f22dad7cce6cdd6f9a904660df4bb972f0f90a64  guix-build-219866feca50/output/dist-archive/bitcoin-219866feca50.tar.gz
    7007509d189f6e72dcec499c21863ac971394b20895ef787c97ee7334c4f03a9  guix-build-219866feca50/output/powerpc64-linux-gnu/SHA256SUMS.part
    da6bba4dadec94c67373daf3e1c8360ffc2c106c9b3ed745e4377ec24614001d  guix-build-219866feca50/output/powerpc64-linux-gnu/bitcoin-219866feca50-powerpc64-linux-gnu-debug.tar.gz
    6c2eddecb33dc1a8fce980c6093188be19ba8d4bbe7ea391bfd5655d884e9563  guix-build-219866feca50/output/powerpc64-linux-gnu/bitcoin-219866feca50-powerpc64-linux-gnu.tar.gz
    edbe01931488033808ac143b8d0e5e908e600ba7adaa70762b5554ba8b2ddede  guix-build-219866feca50/output/powerpc64le-linux-gnu/SHA256SUMS.part
    37028a694608ea5de486a25814adcafea371686a0eb6293f1afa6f8da37823a4  guix-build-219866feca50/output/powerpc64le-linux-gnu/bitcoin-219866feca50-powerpc64le-linux-gnu-debug.tar.gz
    6bf6896934a96cd3ed088822af1ab236ffb75d56ca3c1607edf313ff88d0636d  guix-build-219866feca50/output/powerpc64le-linux-gnu/bitcoin-219866feca50-powerpc64le-linux-gnu.tar.gz
    b28d61a9be932b35b39e71651df787d132cf3a84b2057da037478dab9afa0d51  guix-build-219866feca50/output/riscv64-linux-gnu/SHA256SUMS.part
    d7f8a8db3e6b663f2f16584e0ae3e053f53ac28ab9eb04421bed6c30e490a8dd  guix-build-219866feca50/output/riscv64-linux-gnu/bitcoin-219866feca50-riscv64-linux-gnu-debug.tar.gz
    ab9fc807d237d7d3e3ba48af2f8907c669c6282bcd6dfda68523505976d093fc  guix-build-219866feca50/output/riscv64-linux-gnu/bitcoin-219866feca50-riscv64-linux-gnu.tar.gz
    d583f668b9e81bc38b5a21121b0713337bd9ace9aeb32638cc8e1838e821c25d  guix-build-219866feca50/output/x86_64-apple-darwin/SHA256SUMS.part
    5582c5c7625d12165774ad2bf9e8b86bae6623870802e2b56f1b46daec46f03f  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin-unsigned.dmg
    4229782794fc915d65a29a7efc084246a46a31719e912e3d0d676e6ab21e5aed  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin-unsigned.tar.gz
    5eb722711acf9b0a7020c8291123c42f4c93bde0e075ce943493a36eb81567db  guix-build-219866feca50/output/x86_64-apple-darwin/bitcoin-219866feca50-x86_64-apple-darwin.tar.gz
    79688f6bb82cbc68ce9e0a5f33d3cab5c4b6dc962255287005c4899890f67986  guix-build-219866feca50/output/x86_64-linux-gnu/SHA256SUMS.part
    16c8f915c3387422e04be20f1161853721a607d7bf46e0cab0a944d927e1e7ab  guix-build-219866feca50/output/x86_64-linux-gnu/bitcoin-219866feca50-x86_64-linux-gnu-debug.tar.gz
    e8ab83d38a7ffb261dadb6ba6216321569bc560e9f60f9468781e91fbdf8c4b5  guix-build-219866feca50/output/x86_64-linux-gnu/bitcoin-219866feca50-x86_64-linux-gnu.tar.gz
    317c549a71c20766a632a19f7d555b05c40adb4ac9a63926524ec117227679c6  guix-build-219866feca50/output/x86_64-w64-mingw32/SHA256SUMS.part
    da29a3e4895097e8c65e1c3eb5fb968c142d97a2c0024285c9cd9c9bf08cd407  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-debug.zip
    913dd6b18ee709131cb67d903beec86eb98b430f4632b2a423c25baffe6d363d  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-setup-unsigned.exe
    34dbeda2d684595de8a3b171ff79fc50d9287df9e153bd332a93cccfb4f1fe3c  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64-unsigned.tar.gz
    9e1d73e552eec44fde06d82b5eb72d7f077d68a826c6827f179ca6c25d66ad17  guix-build-219866feca50/output/x86_64-w64-mingw32/bitcoin-219866feca50-win64.zip
    
  163. DrahtBot added the label Needs rebase on Dec 2, 2022
  164. willcl-ark commented at 11:12 AM on January 18, 2023: member

    Whilst I could get this to build pretty easily (nice work!) I had difficulty with FindBerkeleyDB.cmake picking up my BDB4.8 build from the default location in my source directory on Ubuntu 22.04.

    $ pwd
    /home/will/src/bitcoin
    $ ./contrib/install_db4.sh `pwd`
    # outputs db4 directory in /home/will/src/bitcoin/db4
    $ cmake -S . -B build
     ...
    -- Could NOT find BerkeleyDB (missing: BerkeleyDB_LIBRARY BerkeleyDB_INCLUDE_DIR) (Required is at least version "4.8")
    CMake Warning at cmake/optional.cmake:65 (message):
      Berkeley DB (BDB) required for legacy wallet support, but not found.
    
      Passing "-DWITH_BDB=OFF" will suppress this warning.
    
    Call Stack (most recent call first):
      CMakeLists.txt:420 (include)
    
    

    In in order to fix I applied this patch:

    <details> <summary>Details</summary>

    diff --git a/cmake/module/FindBerkeleyDB.cmake b/cmake/module/FindBerkeleyDB.cmake
    index 144120126..b1321d5fb 100644
    --- a/cmake/module/FindBerkeleyDB.cmake
    +++ b/cmake/module/FindBerkeleyDB.cmake
    @@ -13,7 +13,7 @@ endif()
     
     find_path(BerkeleyDB_INCLUDE_DIR
       NAMES db.h
    -  HINTS ${bdb4_brew_prefix}/include
    +  HINTS ${bdb4_brew_prefix}/include $ENV{BerkeleyDB_INCLUDE_DIR}
       PATH_SUFFIXES 4.8 48 4 db4 5 5.3 db5
     )
     
    @@ -43,7 +43,7 @@ if(MSVC)
     else()
       find_library(BerkeleyDB_LIBRARY
         NAMES db_cxx-4.8 libdb48 db4_cxx db_cxx db_cxx-5
    -    HINTS ${bdb4_brew_prefix}/lib
    +    HINTS ${bdb4_brew_prefix}/lib $ENV{BerkeleyDB_LIBRARY}
       )
       set(BerkeleyDB_required BerkeleyDB_LIBRARY)
     endif()
    

    </details>

    So that it could pick up exported BDB env vars BerkeleyDB_INCLUDE_DIR and BerkeleyDB_LIBRARY.

    I am curious if I was doing something wrong, as it doesn't seem like anyone else had this issue? I am on commit 219866feca50ba1c87388ed118b76f3cb3e41714

  165. hebasto commented at 2:20 PM on January 20, 2023: member

    @willcl-ark

    Whilst I could get this to build pretty easily (nice work!) I had difficulty with FindBerkeleyDB.cmake picking up my BDB4.8 build from the default location in my source directory on Ubuntu 22.04.

    In the light of #26834 it seems reasonable to postpone your patch. WDYT?

  166. hebasto force-pushed on Jan 20, 2023
  167. hebasto commented at 3:18 PM on January 20, 2023: member

    Updated up to pr25797.40:

    • rebased
    • added proper finding of python
  168. DrahtBot removed the label Needs rebase on Jan 20, 2023
  169. willcl-ark commented at 4:01 PM on January 20, 2023: member

    In the light of #26834 it seems reasonable to postpone your patch. WDYT?

    I think it still needs some tweaking, perhaps...

    It might not be the most elegant but I was able to get it working "automagically" with:

    <details> <summary>this patch</summary>

    diff --git a/cmake/module/FindBerkeleyDB.cmake b/cmake/module/FindBerkeleyDB.cmake
    index 144120126..4b581ae75 100644
    --- a/cmake/module/FindBerkeleyDB.cmake
    +++ b/cmake/module/FindBerkeleyDB.cmake
    @@ -13,7 +13,7 @@ endif()
     
     find_path(BerkeleyDB_INCLUDE_DIR
       NAMES db.h
    -  HINTS ${bdb4_brew_prefix}/include
    +  HINTS ${bdb4_brew_prefix}/include BDB_INCLUDE
       PATH_SUFFIXES 4.8 48 4 db4 5 5.3 db5
     )
     
    @@ -43,7 +43,7 @@ if(MSVC)
     else()
       find_library(BerkeleyDB_LIBRARY
         NAMES db_cxx-4.8 libdb48 db4_cxx db_cxx db_cxx-5
    -    HINTS ${bdb4_brew_prefix}/lib
    +    HINTS ${bdb4_brew_prefix}/lib BDB_LIBS
       )
       set(BerkeleyDB_required BerkeleyDB_LIBRARY)
     endif()
    diff --git a/depends/toolchain.cmake.in b/depends/toolchain.cmake.in
    index 291918497..791b52b1e 100644
    --- a/depends/toolchain.cmake.in
    +++ b/depends/toolchain.cmake.in
    @@ -74,6 +74,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
     set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
     set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
     set(QT_CROSS_LIBS_PATH "${CMAKE_FIND_ROOT_PATH}/lib")
    +set(BDB_LIBS "${CMAKE_FIND_ROOT_PATH}/lib")
    +set(BDB_INCLUDE "${CMAKE_FIND_ROOT_PATH}/include")
     set(PKG_CONFIG_PATH "${CMAKE_FIND_ROOT_PATH}/lib/pkgconfig")
     if("@allow_host_packages@" STREQUAL "1")
       set(DEPENDS_ALLOW_HOST_PACKAGES TRUE)
    

    </details>

    ...by running the following:

    make -C depends/ NO_BOOST=1 NO_LIBEVENT=1 NO_QT=1 NO_SQLITE=1 NO_NATPMP=1 NO_ZMQ=1 NO_UPNP=1 NO_USDT=1 ALLOW_HOST_PACKAGES=1
    cmake --toolchain depends/x86_64-pc-linux-gnu/share/toolchain.cmake -S . -B build
    

    I don't see how it is supposed to pick up the depends BDB lib/include directories otherwise? Are these lines supposed to be handling adding */lib and */include type directories automatically (I couldn't find much documentation on them).

    I also didn't test this patch with any of the CI builds or anything, only on my machine.

  170. hebasto commented at 5:05 PM on January 20, 2023: member

    @willcl-ark

    ...by running the following:

    make -C depends/ NO_BOOST=1 NO_LIBEVENT=1 NO_QT=1 NO_SQLITE=1 NO_NATPMP=1 NO_ZMQ=1 NO_UPNP=1 NO_USDT=1 ALLOW_HOST_PACKAGES=1
    cmake --toolchain depends/x86_64-pc-linux-gnu/share/toolchain.cmake -S . -B build
    

    Hmm. On my Ubuntu 22.04 with this PR unpatched branch:

    $ make -j 16 -C depends NO_BOOST=1 NO_LIBEVENT=1 NO_QT=1 NO_SQLITE=1 NO_NATPMP=1 NO_UPNP=1 NO_ZMQ=1 NO_USDT=1 ALLOW_HOST_PACKAGES=1
    ...
    copying packages: bdb
    to: /home/hebasto/git/bitcoin/depends/x86_64-pc-linux-gnu
    make: Leaving directory '/home/hebasto/git/bitcoin/depends'
    $ cmake --toolchain depends/x86_64-pc-linux-gnu/share/toolchain.cmake -S . -B build
    ...
    -- Found BerkeleyDB: /home/hebasto/git/bitcoin/depends/x86_64-pc-linux-gnu/lib/libdb_cxx-4.8.a (found suitable version "4.8", minimum required is "4.8")
    ...
    

    Do you have a clean build environment? Maybe rm -rf build would help?

  171. hebasto commented at 5:11 PM on January 20, 2023: member

    Are these lines supposed to be handling adding */lib and */include type directories automatically (I couldn't find much documentation on them).

    find_library, for example, uses lib as a path component in its searching procedure.

  172. hebasto force-pushed on Jan 20, 2023
  173. hebasto commented at 5:52 PM on January 20, 2023: member

    @willcl-ark

    Following an approach promoted by @fanquake in #26834, you could also specify a path to the BDB package in a CMake-specfic way as follows:

    $ make -C depends NO_BOOST=1 NO_LIBEVENT=1 NO_QT=1 NO_SQLITE=1 NO_NATPMP=1 NO_UPNP=1 NO_ZMQ=1 NO_USDT=1
    $ export BerkeleyDB_ROOT=/home/hebasto/git/bitcoin/depends/x86_64-pc-linux-gnu
    $ cmake -S . -B build
    
  174. willcl-ark commented at 8:05 PM on January 20, 2023: member

    Do you have a clean build environment?

    Correct! It's now working without patch, cool. I'm really enjoying cmake so far.

  175. hebasto force-pushed on Jan 22, 2023
  176. hebasto commented at 1:06 PM on January 22, 2023: member

    Updated up to pr25797.42:

    Guix builds:

    3f3c58ad29f91fe9ec97e9ed2fb98c6448150b0f9905df986c35a15a5d90a5d5  guix-build-d3e1ecc1f982/output/aarch64-linux-gnu/SHA256SUMS.part
    e13930bec76db2493fd68f74427bf4c4d1b14ca6d9af4903bd186beb038115c3  guix-build-d3e1ecc1f982/output/aarch64-linux-gnu/bitcoin-d3e1ecc1f982-aarch64-linux-gnu-debug.tar.gz
    b7cf6e6da2aeab202a060264d2f202b95df7d2afb632c27f8c9c8b152490a916  guix-build-d3e1ecc1f982/output/aarch64-linux-gnu/bitcoin-d3e1ecc1f982-aarch64-linux-gnu.tar.gz
    efd4eb6865afe549a4362813820c49eb0fbfcca28d322cb70287127204714467  guix-build-d3e1ecc1f982/output/arm-linux-gnueabihf/SHA256SUMS.part
    15dc508e612599977d078774a38e49b549ade8fc3df0574d356225fd70f33e92  guix-build-d3e1ecc1f982/output/arm-linux-gnueabihf/bitcoin-d3e1ecc1f982-arm-linux-gnueabihf-debug.tar.gz
    d6e9bfeb94276c1bb20d0f8ea10d437df2e6c4a7f1d1704a91931259ee87f4b5  guix-build-d3e1ecc1f982/output/arm-linux-gnueabihf/bitcoin-d3e1ecc1f982-arm-linux-gnueabihf.tar.gz
    7c4b9b52de53cc1c5355499d76d59e25361b4c31acd06f4a8a9cb87a0bfd9149  guix-build-d3e1ecc1f982/output/arm64-apple-darwin/SHA256SUMS.part
    099849168eba8229f6e5e4a3e26028ed823519b8a5e1a59fd773579b60a4d646  guix-build-d3e1ecc1f982/output/arm64-apple-darwin/bitcoin-d3e1ecc1f982-arm64-apple-darwin-unsigned.dmg
    6976eb243d7416737453a1296dcf8fe2e03574f9570f102fb9f21fdbd1f7bde3  guix-build-d3e1ecc1f982/output/arm64-apple-darwin/bitcoin-d3e1ecc1f982-arm64-apple-darwin-unsigned.tar.gz
    1a11032ec819a50854933fcc77271afccd675ec39c8b6b8b31a820a8d1136884  guix-build-d3e1ecc1f982/output/arm64-apple-darwin/bitcoin-d3e1ecc1f982-arm64-apple-darwin.tar.gz
    996136522d71cb8a783ab6c20e3b87d261af569a0eaa53591c7ffc310cd138e8  guix-build-d3e1ecc1f982/output/dist-archive/bitcoin-d3e1ecc1f982.tar.gz
    dcfd0451c99310a753b9858f478cbd1626312afc7411f132fb27477df1973cb4  guix-build-d3e1ecc1f982/output/powerpc64-linux-gnu/SHA256SUMS.part
    3ee13edc14c70df7c26174c0a2b7da27b1b15ba793329a6d8e2c0bac469ade06  guix-build-d3e1ecc1f982/output/powerpc64-linux-gnu/bitcoin-d3e1ecc1f982-powerpc64-linux-gnu-debug.tar.gz
    311ae30fde9095833087780f1f4515efdf042eaa1d736ef51632b7dac347cd88  guix-build-d3e1ecc1f982/output/powerpc64-linux-gnu/bitcoin-d3e1ecc1f982-powerpc64-linux-gnu.tar.gz
    23fbdcafff4872477f4f424a930eb53788d0602d3e644e57cfb2671601f1ca2e  guix-build-d3e1ecc1f982/output/powerpc64le-linux-gnu/SHA256SUMS.part
    8a6ca54e70de0f3abb679c120320469e061c5c645dbfc43be68ac9e3c87402aa  guix-build-d3e1ecc1f982/output/powerpc64le-linux-gnu/bitcoin-d3e1ecc1f982-powerpc64le-linux-gnu-debug.tar.gz
    66823db1433352a8a6652059346461dfc0f787b12d77a7c96075a06300fcf418  guix-build-d3e1ecc1f982/output/powerpc64le-linux-gnu/bitcoin-d3e1ecc1f982-powerpc64le-linux-gnu.tar.gz
    45ebdc988ccb9bc4068cc427c2b7c7bc216e8b31848971fb57f70bf1697979d0  guix-build-d3e1ecc1f982/output/riscv64-linux-gnu/SHA256SUMS.part
    9daddf8e4391d2477d7bf75acd2882678de797c8c0cea13e63971fcfac609c23  guix-build-d3e1ecc1f982/output/riscv64-linux-gnu/bitcoin-d3e1ecc1f982-riscv64-linux-gnu-debug.tar.gz
    441541534423bfa2c75b2b788b810ddc7f5d141e58e4e13df74bc37a1d070f20  guix-build-d3e1ecc1f982/output/riscv64-linux-gnu/bitcoin-d3e1ecc1f982-riscv64-linux-gnu.tar.gz
    7b0d130f3c340aca6833e2e95cb26bbe1adeb4126775bdd066c4c1ffa819d6b4  guix-build-d3e1ecc1f982/output/x86_64-apple-darwin/SHA256SUMS.part
    bbe6b1ee94d9ddf4d40cc5f0c0d651756c64dae5d543bfe62150bd5b55361b27  guix-build-d3e1ecc1f982/output/x86_64-apple-darwin/bitcoin-d3e1ecc1f982-x86_64-apple-darwin-unsigned.dmg
    c1b12006279e118a9f58fc7f91f8e014ce7205b832a9cbcbd2550d1f60bd9c5a  guix-build-d3e1ecc1f982/output/x86_64-apple-darwin/bitcoin-d3e1ecc1f982-x86_64-apple-darwin-unsigned.tar.gz
    36f3dcb8036a87994ad4cca0998d2891f9688b32f25013f0788ae9b25c5d3b88  guix-build-d3e1ecc1f982/output/x86_64-apple-darwin/bitcoin-d3e1ecc1f982-x86_64-apple-darwin.tar.gz
    0cee6a8091c25d623ce5a771e053b7660a1926e0d62f396558751553e4938319  guix-build-d3e1ecc1f982/output/x86_64-linux-gnu/SHA256SUMS.part
    2cf690c18d12971fa16a20a7466da3c3d0ecb169ee8cec47a911c668137ce228  guix-build-d3e1ecc1f982/output/x86_64-linux-gnu/bitcoin-d3e1ecc1f982-x86_64-linux-gnu-debug.tar.gz
    85715720ae3ff7bab1d9e81b0fd34e2a8c81378a6891b247f54f318fe5c571c5  guix-build-d3e1ecc1f982/output/x86_64-linux-gnu/bitcoin-d3e1ecc1f982-x86_64-linux-gnu.tar.gz
    c0724d850a0ea52d26514d6a1dd3459c454156af7c90fd4ce94d1ccfe8e3256c  guix-build-d3e1ecc1f982/output/x86_64-w64-mingw32/SHA256SUMS.part
    db582b997e99836da6925b6bbbb43078bdcae4e4d286073179f42af044f490fa  guix-build-d3e1ecc1f982/output/x86_64-w64-mingw32/bitcoin-d3e1ecc1f982-win64-debug.zip
    84c32041bd40966ec49bbaf100204331ef87bd5c9d3238c8d69fe285974f0bb6  guix-build-d3e1ecc1f982/output/x86_64-w64-mingw32/bitcoin-d3e1ecc1f982-win64-setup-unsigned.exe
    cdb5e4b2dea7e0aa17c9d9bf9ddae061ffe7638217d86bdd2fb080bced488521  guix-build-d3e1ecc1f982/output/x86_64-w64-mingw32/bitcoin-d3e1ecc1f982-win64-unsigned.tar.gz
    e7c70ec3c80c0b4ce72f1b5b9027939dc8aa7e9b8514ff1504216f4b9a51b580  guix-build-d3e1ecc1f982/output/x86_64-w64-mingw32/bitcoin-d3e1ecc1f982-win64.zip
    

    @ryanofsky

    I guess I can try getting multiprocess build to work with this since I don't see a flag for it yet.

    Implemented now :)

  177. hebasto force-pushed on Jan 22, 2023
  178. hebasto force-pushed on Jan 24, 2023
  179. hebasto force-pushed on Jan 24, 2023
  180. TheCharlatan commented at 2:56 PM on January 30, 2023: contributor

    Concept ACK

    Also we could ask people who graduated CS recently whether their curriculums encompassed Autotools and/or CMake

    Autotools in HPC/physics with Fortran 77, cmake in CS. I think that says it all.

    I'll list my arguments that I have not seen in this discussion before:

    • Using interactive configuring with ccmake is a breeze, testing this PR with it is very enjoyable
    • Modern IDEs have great cmake support and poor autotools support. Many require an additional compilation database for autotools projects
    • Out of tree builds are easier to manage

    I am a bit confused about the semantics that distinguish if something is a module or a script in the cmake subdirectory. What is the logic there?

  181. hebasto commented at 3:27 PM on January 30, 2023: member

    @TheCharlatan

    I am a bit confused about the semantics that distinguish if something is a module or a script in the cmake subdirectory. What is the logic there?

    • cmake/module:

      • find modules
      • helper functions
    • cmake/script:

      • code generation scripts which are supposed to be processed in script mode, i.e., cmake -P <script>. Also see cmake/module/GenerateHeaders.cmake.
  182. DrahtBot added the label Needs rebase on Jan 31, 2023
  183. hebasto force-pushed on Feb 1, 2023
  184. DrahtBot removed the label Needs rebase on Feb 1, 2023
  185. DrahtBot added the label Needs rebase on Feb 2, 2023
  186. hebasto force-pushed on Feb 2, 2023
  187. DrahtBot removed the label Needs rebase on Feb 2, 2023
  188. DrahtBot added the label Needs rebase on Feb 2, 2023
  189. hebasto force-pushed on Feb 3, 2023
  190. DrahtBot removed the label Needs rebase on Feb 3, 2023
  191. hebasto force-pushed on Feb 7, 2023
  192. hebasto commented at 1:26 PM on February 7, 2023: member

    Updated up to pr25797.48:

    Guix builds:

    197c847bcf39b51d7941a34bc41382a0c12290703bb27190f97a6ca9140ae953  guix-build-59cb4dd8f852/output/aarch64-linux-gnu/SHA256SUMS.part
    a5332e286cf1ff01aaa07a60665a1784c0e17ce18a993c0764c10e7684908e5e  guix-build-59cb4dd8f852/output/aarch64-linux-gnu/bitcoin-59cb4dd8f852-aarch64-linux-gnu-debug.tar.gz
    3f1a1e913f2a58d179b2fb29ac7390fe9d5347d8fa13a0417a2bd2e0298385be  guix-build-59cb4dd8f852/output/aarch64-linux-gnu/bitcoin-59cb4dd8f852-aarch64-linux-gnu.tar.gz
    2feb1f5188baf65ea4b9dabf108d4860a1edd87be0a66a310219d9fa74d18802  guix-build-59cb4dd8f852/output/arm-linux-gnueabihf/SHA256SUMS.part
    51b3bf47130bc7dcd309385daf425fdb1f7b8db674ccb88666cf5a5c0a22bcf5  guix-build-59cb4dd8f852/output/arm-linux-gnueabihf/bitcoin-59cb4dd8f852-arm-linux-gnueabihf-debug.tar.gz
    d7d7c6c0269cc822a168705ab5893d3cc79ef13fb266eedf5194e3ee767bae34  guix-build-59cb4dd8f852/output/arm-linux-gnueabihf/bitcoin-59cb4dd8f852-arm-linux-gnueabihf.tar.gz
    96a5513c1b364c5823d6e6058eea7c2700cfc821fc174ecb2a9aeec329f3ed45  guix-build-59cb4dd8f852/output/arm64-apple-darwin/SHA256SUMS.part
    46341521fc7952954dbb28cc3ce47a261949bc543df78969a6135dd8dc49050a  guix-build-59cb4dd8f852/output/arm64-apple-darwin/bitcoin-59cb4dd8f852-arm64-apple-darwin-unsigned.dmg
    4674a096eadf90d820d0ad9f2fe708fe1c8b7e6d2b0d4534e3c5a4738aea7c77  guix-build-59cb4dd8f852/output/arm64-apple-darwin/bitcoin-59cb4dd8f852-arm64-apple-darwin-unsigned.tar.gz
    377af6c8f5891c675a9110c1c038b82079d2fdba7cb6a4e74050efaf8a6da7db  guix-build-59cb4dd8f852/output/arm64-apple-darwin/bitcoin-59cb4dd8f852-arm64-apple-darwin.tar.gz
    1e20bdecb33db04aaa0fac770b4778b5a5082b8bb7c2f357ed1f142f2a8b446a  guix-build-59cb4dd8f852/output/dist-archive/bitcoin-59cb4dd8f852.tar.gz
    3832a919f604c48a8f763946be3a0f7df9c358ac01580ebb1d03562ad2a8de33  guix-build-59cb4dd8f852/output/powerpc64-linux-gnu/SHA256SUMS.part
    4cb439509bfab37dc78ce39605b44468eb3db66ebf6831d4682612de4ddceca7  guix-build-59cb4dd8f852/output/powerpc64-linux-gnu/bitcoin-59cb4dd8f852-powerpc64-linux-gnu-debug.tar.gz
    a0605a0e0520b46a107c16eb83a8f9ea0c5a8aa0ff4894a0192938dffc18e5e4  guix-build-59cb4dd8f852/output/powerpc64-linux-gnu/bitcoin-59cb4dd8f852-powerpc64-linux-gnu.tar.gz
    0e2663bcc7ec2eefd84aeacad7c2222df8c4834172412c7e8b75834b8d3cbab9  guix-build-59cb4dd8f852/output/powerpc64le-linux-gnu/SHA256SUMS.part
    ce2d0382b199742d19e77aaa673cc4647078ba7b351fb04fe703881105bee710  guix-build-59cb4dd8f852/output/powerpc64le-linux-gnu/bitcoin-59cb4dd8f852-powerpc64le-linux-gnu-debug.tar.gz
    1293c1e8e85767c6f65efd463cdf0c638015581a41c862006002a069c780fedd  guix-build-59cb4dd8f852/output/powerpc64le-linux-gnu/bitcoin-59cb4dd8f852-powerpc64le-linux-gnu.tar.gz
    9fc46fafcc3842938428c7970d5e3c9880929486066b3b21d9b9f7ff42f84eae  guix-build-59cb4dd8f852/output/riscv64-linux-gnu/SHA256SUMS.part
    9e8baf08603e25835cf89981dc5e2a0591269f2ef1d1e4b1aabe822f192ae882  guix-build-59cb4dd8f852/output/riscv64-linux-gnu/bitcoin-59cb4dd8f852-riscv64-linux-gnu-debug.tar.gz
    00f84ee31d35624563d80a7615b8bf4d7971086b105edfaaa6274f4246d8f3a1  guix-build-59cb4dd8f852/output/riscv64-linux-gnu/bitcoin-59cb4dd8f852-riscv64-linux-gnu.tar.gz
    f67a438290ccb401b00d2f3cf41897f8159ec070123175b37040b59f123ebc7c  guix-build-59cb4dd8f852/output/x86_64-apple-darwin/SHA256SUMS.part
    9912ea7c4fb802f63a0de7d97d0a3375abe9e802562c9a1c1cfbaf5cca7eaebc  guix-build-59cb4dd8f852/output/x86_64-apple-darwin/bitcoin-59cb4dd8f852-x86_64-apple-darwin-unsigned.dmg
    c3858c98f3aae74a1b062540fe914bdcaba62b46b970c9816e99058af4e2e879  guix-build-59cb4dd8f852/output/x86_64-apple-darwin/bitcoin-59cb4dd8f852-x86_64-apple-darwin-unsigned.tar.gz
    0c3d97a420196a1265e5a0beead2b88ee74f0302ff0a8f8ea1441eadde546521  guix-build-59cb4dd8f852/output/x86_64-apple-darwin/bitcoin-59cb4dd8f852-x86_64-apple-darwin.tar.gz
    b825a5d2e743a47afa5c0624470dea4a0917f0bef721a8401c00b14e4d6c78b3  guix-build-59cb4dd8f852/output/x86_64-linux-gnu/SHA256SUMS.part
    81d90e4b2eb102f2b6d1c3e59b97b36bc50fa8aff1ff40b49afade9759f073ed  guix-build-59cb4dd8f852/output/x86_64-linux-gnu/bitcoin-59cb4dd8f852-x86_64-linux-gnu-debug.tar.gz
    9b737a4ca1c32e828ba1764abd27efc911f5e4c89684ee46b4932f77af7ffe44  guix-build-59cb4dd8f852/output/x86_64-linux-gnu/bitcoin-59cb4dd8f852-x86_64-linux-gnu.tar.gz
    d200ffe02765d63cac5171abaa1fd4d89e6c13595001bccd9a83d04d6f2381f3  guix-build-59cb4dd8f852/output/x86_64-w64-mingw32/SHA256SUMS.part
    891f138df29fe4783150d5b56d34665ebc2e8c5b12de633502a7fcb0aea240de  guix-build-59cb4dd8f852/output/x86_64-w64-mingw32/bitcoin-59cb4dd8f852-win64-debug.zip
    6efb468a97da5c2caba361d69e120a2826cb74d082b6c2b7e92ef684dbafd032  guix-build-59cb4dd8f852/output/x86_64-w64-mingw32/bitcoin-59cb4dd8f852-win64-setup-unsigned.exe
    7792e109d09ee227f6b90772edd3a85c50bfbb3165e4676d610f7cfab8a86d25  guix-build-59cb4dd8f852/output/x86_64-w64-mingw32/bitcoin-59cb4dd8f852-win64-unsigned.tar.gz
    e5d70a7c70c3274575d9ca7654994f3f0dcda97336c7317a63905b352485296e  guix-build-59cb4dd8f852/output/x86_64-w64-mingw32/bitcoin-59cb4dd8f852-win64.zip
    
  193. hebasto force-pushed on Feb 8, 2023
  194. in .cirrus.yml:320 in b82d2f1c57 outdated
     315 | @@ -315,6 +316,8 @@ task:
     316 |    << : *MAIN_TEMPLATE
     317 |    container:
     318 |      image: ubuntu:focal
     319 | +    cpu: 2
     320 | +    memory: 8G
    


    maflcko commented at 9:00 AM on February 8, 2023:

    not sure if related, but those changes to this file can probably be split up, including the bump to jammy below


    hebasto commented at 1:34 PM on February 8, 2023:

    not sure if related, but those changes to this file can probably be split up

    It will be no longer required after #27062.

    including the bump to jammy below

    That is related to CMake, as Android's NDK 23 expects CMake 3.19+, while Ubuntu Focal provides 3.16.


    maflcko commented at 1:54 PM on February 8, 2023:

    Ok. I mean that the NDK can be bumped regardless. I don't expect that anyone is building for android, and if they did, it should be fine to just require the latest Ubuntu LTS, which is Jammy, independent of cmake changes.


    hebasto commented at 2:18 PM on February 8, 2023:

    Ok. I mean that the NDK can be bumped regardless. I don't expect that anyone is building for android, and if they did, it should be fine to just require the latest Ubuntu LTS, which is Jammy, independent of cmake changes.

    See #27063.

  195. maflcko referenced this in commit dc905f6c2a on Feb 9, 2023
  196. DrahtBot added the label Needs rebase on Feb 9, 2023
  197. hebasto referenced this in commit 9c83f07844 on Feb 23, 2023
  198. hebasto referenced this in commit 38604b728e on Mar 2, 2023
  199. hebasto referenced this in commit 9ca357893f on Mar 31, 2023
  200. hebasto force-pushed on Apr 2, 2023
  201. hebasto force-pushed on Apr 2, 2023
  202. hebasto commented at 4:46 PM on April 2, 2023: member

    Updated up to pr25797.50:

    • rebased on the current cmake-staging branch (first 19 out of a total of 74 commits)
    • some CI regressions need to be fixed

    Guix builds:

    1fb441c811d3f919aeed3f356173a222221c6fcfe0986e45666c04f24c2cb197  guix-build-53c369f5a10b/output/aarch64-linux-gnu/SHA256SUMS.part
    83ef29ad6f9878b54288e11004801ce005a9af862fd7c6d11a4b3cce3bf6f52a  guix-build-53c369f5a10b/output/aarch64-linux-gnu/bitcoin-53c369f5a10b-aarch64-linux-gnu-debug.tar.gz
    ee1358b96b59ca348455fa97ef2159c9c5dc60a2e83262521af765178ae5f4a4  guix-build-53c369f5a10b/output/aarch64-linux-gnu/bitcoin-53c369f5a10b-aarch64-linux-gnu.tar.gz
    37a5c0f2d034acf7edff55f05e45d8c94bbcc16a1fd45a780d498b52ed1cefa5  guix-build-53c369f5a10b/output/arm-linux-gnueabihf/SHA256SUMS.part
    691b4be50a51c0b70626ee46b74f1727941f3a2b75779f40a5ede1e8e4a3f94e  guix-build-53c369f5a10b/output/arm-linux-gnueabihf/bitcoin-53c369f5a10b-arm-linux-gnueabihf-debug.tar.gz
    159c0b91d164a5f4efb15c12e08edd817a53340d218970b025bbe96452d92353  guix-build-53c369f5a10b/output/arm-linux-gnueabihf/bitcoin-53c369f5a10b-arm-linux-gnueabihf.tar.gz
    e515da9fa33370cad6d79912ce27c099e462d5c49bb1a0497e249a87913bd63a  guix-build-53c369f5a10b/output/arm64-apple-darwin/SHA256SUMS.part
    c5c1ba82b8548510ca7d16c5a6a15792609ba9aec99c3126d3499ef5d915e372  guix-build-53c369f5a10b/output/arm64-apple-darwin/bitcoin-53c369f5a10b-arm64-apple-darwin-unsigned.dmg
    55269fcaed6ad641c58edf2021eba54b82162c7e295811a7ea02376180bbcfd7  guix-build-53c369f5a10b/output/arm64-apple-darwin/bitcoin-53c369f5a10b-arm64-apple-darwin-unsigned.tar.gz
    48fa57916464242fc04b7cd8a1ea84c43e01b082e43c91e73f167a0d9a2b3b5e  guix-build-53c369f5a10b/output/arm64-apple-darwin/bitcoin-53c369f5a10b-arm64-apple-darwin.tar.gz
    ea4e12e81706efac9f44e989bfead204261612d36deac5f9d153a04375012251  guix-build-53c369f5a10b/output/dist-archive/bitcoin-53c369f5a10b.tar.gz
    1d2a92d9df9a0068954c6a602f0de9ee21e8aad427477aad308ccf5a073ab3c5  guix-build-53c369f5a10b/output/powerpc64-linux-gnu/SHA256SUMS.part
    61f285f16e9b0037ae209da5cbb5151cf450066be55bfa124c82f9803267dc7d  guix-build-53c369f5a10b/output/powerpc64-linux-gnu/bitcoin-53c369f5a10b-powerpc64-linux-gnu-debug.tar.gz
    e7bba264c1701b58db163159f310c94da6c341e8b2edab3d68bdd5b1274229dc  guix-build-53c369f5a10b/output/powerpc64-linux-gnu/bitcoin-53c369f5a10b-powerpc64-linux-gnu.tar.gz
    e485bbf2703cd4f9b24aa78d4d4c67b743db419252a17e82b8996c7ec40d3648  guix-build-53c369f5a10b/output/powerpc64le-linux-gnu/SHA256SUMS.part
    9efbb4d3c7c57136eed38ca69c43729ee4ddfb043c63bcbc07b6d44bdde4cdfb  guix-build-53c369f5a10b/output/powerpc64le-linux-gnu/bitcoin-53c369f5a10b-powerpc64le-linux-gnu-debug.tar.gz
    34e422d150d88f988a82cd397518ad744ccda217ee4864d21bf4552be976e9a7  guix-build-53c369f5a10b/output/powerpc64le-linux-gnu/bitcoin-53c369f5a10b-powerpc64le-linux-gnu.tar.gz
    3965d444b6c0d73d80d6e1959e6f8250d6308e48b8606f3d1a6e5b9d68a35871  guix-build-53c369f5a10b/output/riscv64-linux-gnu/SHA256SUMS.part
    02f6bf3e3cf7bef864b6beaf51ed9d434fbebba7794cfdcd52ed7272598d7668  guix-build-53c369f5a10b/output/riscv64-linux-gnu/bitcoin-53c369f5a10b-riscv64-linux-gnu-debug.tar.gz
    43d664eeadd297b14bd0c9a3ff7b3e3333c92c23d1079135fd980b8992670125  guix-build-53c369f5a10b/output/riscv64-linux-gnu/bitcoin-53c369f5a10b-riscv64-linux-gnu.tar.gz
    941448c54e1513f47f1f26e1298c9f26ac6caafe7f5daebe724e779ff92e22a8  guix-build-53c369f5a10b/output/x86_64-apple-darwin/SHA256SUMS.part
    108684d4c7b1348fdb71301cd0a23a516ccb9277421afa912ca8cd4119a6c8fc  guix-build-53c369f5a10b/output/x86_64-apple-darwin/bitcoin-53c369f5a10b-x86_64-apple-darwin-unsigned.dmg
    abc084e314f689a53c1e17c9344e6da68d9b7049ff9d2861c43b6b27afeb0ae0  guix-build-53c369f5a10b/output/x86_64-apple-darwin/bitcoin-53c369f5a10b-x86_64-apple-darwin-unsigned.tar.gz
    e5e1ed73a2f49b2ab0097d63ff63f9ad90946f6de2b19fc167e328062fb2131c  guix-build-53c369f5a10b/output/x86_64-apple-darwin/bitcoin-53c369f5a10b-x86_64-apple-darwin.tar.gz
    10399e8116d3f3b12c3cb39f51d59f1ea608be7179bc89c8a0ca7c308e4bbc4f  guix-build-53c369f5a10b/output/x86_64-linux-gnu/SHA256SUMS.part
    80101112c02778c5363451b84fbf38d7a831ffd464ea8c77fe601355baee7e34  guix-build-53c369f5a10b/output/x86_64-linux-gnu/bitcoin-53c369f5a10b-x86_64-linux-gnu-debug.tar.gz
    ea76edaed0ea3fb8ce6488674db357cb9e2ea6ebabb0286f88b362771697a509  guix-build-53c369f5a10b/output/x86_64-linux-gnu/bitcoin-53c369f5a10b-x86_64-linux-gnu.tar.gz
    e4cb7d579dbecf3044621a9f99b1037527d879e6b603916b8d7f9a2adb8b5f7d  guix-build-53c369f5a10b/output/x86_64-w64-mingw32/SHA256SUMS.part
    e3855ecad6f2ba0e145026cca9a2f85480c6f1b6b1d8e969d48174ed6e47260b  guix-build-53c369f5a10b/output/x86_64-w64-mingw32/bitcoin-53c369f5a10b-win64-debug.zip
    5e53d7d71481698b0816ca2a48cc72d712bdfc04dc027f669acf2bb96200a2d2  guix-build-53c369f5a10b/output/x86_64-w64-mingw32/bitcoin-53c369f5a10b-win64-setup-unsigned.exe
    add543ac6b319e8c2c389408f7cad9aa63356aa03364150b88768bfa41b1f5bd  guix-build-53c369f5a10b/output/x86_64-w64-mingw32/bitcoin-53c369f5a10b-win64-unsigned.tar.gz
    e66df3311aa6246089c4aa3778f65ffc5536a7f0e9a5d421bade5ee20a57b110  guix-build-53c369f5a10b/output/x86_64-w64-mingw32/bitcoin-53c369f5a10b-win64.zip
    
  203. DrahtBot removed the label Needs rebase on Apr 2, 2023
  204. hebasto force-pushed on Apr 2, 2023
  205. hebasto commented at 8:42 PM on April 2, 2023: member
    • some CI regressions need to be fixed

    The "previous releases" CI task has been fixed.

  206. hebasto force-pushed on Apr 2, 2023
  207. hebasto commented at 12:23 AM on April 3, 2023: member
    • some CI regressions need to be fixed

    The "fuzzer" and "multiprocess" CI tasks have been fixed.

  208. hebasto force-pushed on Apr 3, 2023
  209. hebasto force-pushed on Apr 3, 2023
  210. hebasto force-pushed on Apr 3, 2023
  211. hebasto force-pushed on Apr 3, 2023
  212. hebasto commented at 12:40 PM on April 3, 2023: member
    • some CI regressions need to be fixed

    The "tidy" and "TSan" CI tasks have been fixed.

  213. hebasto force-pushed on Apr 3, 2023
  214. hebasto force-pushed on Apr 3, 2023
  215. hebasto commented at 9:15 PM on April 3, 2023: member

    Rebased due to the conflict with bitcoin/bitcoin#27254.

    All CI tasks are :green_circle:

    Guix builds:

    aa34dfbb1956fa04b56efa3cbbc798d75f62141787ea01e28796c3c7fc1743d4  guix-build-7f09e7118a59/output/aarch64-linux-gnu/SHA256SUMS.part
    a7ceb4b814eb41558c5b8dcbe57e443505dac96181b9727fac235197ed729ef8  guix-build-7f09e7118a59/output/aarch64-linux-gnu/bitcoin-7f09e7118a59-aarch64-linux-gnu-debug.tar.gz
    b336955cf07c04c69cc03040fab63a5c862c7eb984ae56ddbec9b45345f1af99  guix-build-7f09e7118a59/output/aarch64-linux-gnu/bitcoin-7f09e7118a59-aarch64-linux-gnu.tar.gz
    88a7c5b582888fd1cbb2f782f7db66461b922ac0f8dc2cf16883907531182f9c  guix-build-7f09e7118a59/output/arm-linux-gnueabihf/SHA256SUMS.part
    eb1a39583367b0d6d7e4dd85442c6a1e892cd3cc15f362b4472837487aaebb6f  guix-build-7f09e7118a59/output/arm-linux-gnueabihf/bitcoin-7f09e7118a59-arm-linux-gnueabihf-debug.tar.gz
    98deb1f76780144c4c6a52ed1c96b5f682a70e3ca18218e138e7c87334499deb  guix-build-7f09e7118a59/output/arm-linux-gnueabihf/bitcoin-7f09e7118a59-arm-linux-gnueabihf.tar.gz
    9e3a0de508a3072eab71357245e6419daa4a93ba909680751b36b4f5f235d3d1  guix-build-7f09e7118a59/output/arm64-apple-darwin/SHA256SUMS.part
    ef98cd91204b5a43cd8cfd89e5d1634c05cc8c6af1fc03dbabd4cff5ebf83a36  guix-build-7f09e7118a59/output/arm64-apple-darwin/bitcoin-7f09e7118a59-arm64-apple-darwin-unsigned.dmg
    7dd49be111f58c2b3f016ef041b49733b491c83a99e9d454d717e6ed7e61e769  guix-build-7f09e7118a59/output/arm64-apple-darwin/bitcoin-7f09e7118a59-arm64-apple-darwin-unsigned.tar.gz
    5c6c24cc472f38b59c736b897d8660a008fe904cc8ebf69a07ec417b937a2e66  guix-build-7f09e7118a59/output/arm64-apple-darwin/bitcoin-7f09e7118a59-arm64-apple-darwin.tar.gz
    b7051454f59839dacc7b6eec12d55157e40671e3d853f696845cc69e3537f5aa  guix-build-7f09e7118a59/output/dist-archive/bitcoin-7f09e7118a59.tar.gz
    dab842b8fd5204d03968687a5d2f3d9a9ca123110ef337d717ffe834f8dadea8  guix-build-7f09e7118a59/output/powerpc64-linux-gnu/SHA256SUMS.part
    9c298807bd893f89fa1eab5bf006377f9a3d5ad9f14bcd339bc4b35fb8437133  guix-build-7f09e7118a59/output/powerpc64-linux-gnu/bitcoin-7f09e7118a59-powerpc64-linux-gnu-debug.tar.gz
    32c93b1e3abe40639c36e7481c7110f46cfb5b93f1209b36143392edaa2c3f01  guix-build-7f09e7118a59/output/powerpc64-linux-gnu/bitcoin-7f09e7118a59-powerpc64-linux-gnu.tar.gz
    1457f1ace9b0a2a9da4fa63e9786aa82d266bc86ce17d56d05a80bf3ab2ba7c0  guix-build-7f09e7118a59/output/powerpc64le-linux-gnu/SHA256SUMS.part
    29dd12bd6e3513468a5100bd57b0b181b673b1ef14c7c6a075d838a3cc1a10bc  guix-build-7f09e7118a59/output/powerpc64le-linux-gnu/bitcoin-7f09e7118a59-powerpc64le-linux-gnu-debug.tar.gz
    c4a3c945adcd1ed73c8361baf5e769f01913c4fea1443c111798a49cf70c3fa7  guix-build-7f09e7118a59/output/powerpc64le-linux-gnu/bitcoin-7f09e7118a59-powerpc64le-linux-gnu.tar.gz
    c216f19d31006cff568c20c4de94f62ba77447dc563e6667c855ffa171d67027  guix-build-7f09e7118a59/output/riscv64-linux-gnu/SHA256SUMS.part
    8384074d1f33fb6ab148866c75448cb5ff642018df9f4ebeb20d912796a5921f  guix-build-7f09e7118a59/output/riscv64-linux-gnu/bitcoin-7f09e7118a59-riscv64-linux-gnu-debug.tar.gz
    ed97103a771f54a0653d71bbf40c67be01dc6847f0241cf416c36cb78736ed89  guix-build-7f09e7118a59/output/riscv64-linux-gnu/bitcoin-7f09e7118a59-riscv64-linux-gnu.tar.gz
    fced51a5449bb20afd87bb806666c1977a232eec437b4c05db2d399943dedd32  guix-build-7f09e7118a59/output/x86_64-apple-darwin/SHA256SUMS.part
    5e78bec524968a10bac4378bf97ee33f07083ae02758d3d9f0af193865e557cd  guix-build-7f09e7118a59/output/x86_64-apple-darwin/bitcoin-7f09e7118a59-x86_64-apple-darwin-unsigned.dmg
    673139580ea513f008864248f6cba44f55f1ae789424f09908763ca83f40e59e  guix-build-7f09e7118a59/output/x86_64-apple-darwin/bitcoin-7f09e7118a59-x86_64-apple-darwin-unsigned.tar.gz
    55b0f0936fa831f71624d700f30337bd2b8f5a3a73556754c6ce56177ecd1ab3  guix-build-7f09e7118a59/output/x86_64-apple-darwin/bitcoin-7f09e7118a59-x86_64-apple-darwin.tar.gz
    f32c51dcdb164bfc5d3d02a4d9fd1351381bc64783a570859c9c1f63e8c175e8  guix-build-7f09e7118a59/output/x86_64-linux-gnu/SHA256SUMS.part
    0874a7622869a03af961426b01ca67ab8f4eec3cc5343a27b87dab5ab5fc74bc  guix-build-7f09e7118a59/output/x86_64-linux-gnu/bitcoin-7f09e7118a59-x86_64-linux-gnu-debug.tar.gz
    5cff7e564f44cc5b8440ddd89052e2f432b7bb8a577e1ae4aa6a2e107b2ffc40  guix-build-7f09e7118a59/output/x86_64-linux-gnu/bitcoin-7f09e7118a59-x86_64-linux-gnu.tar.gz
    e91a91a1d64be61b71e19c5c2964d90430a94add57228207f5cda7fe940abde3  guix-build-7f09e7118a59/output/x86_64-w64-mingw32/SHA256SUMS.part
    3a758ceb7c00474fe261b8d8b49521b6f484c5ac5ba5015a101aba3fc83b3d5d  guix-build-7f09e7118a59/output/x86_64-w64-mingw32/bitcoin-7f09e7118a59-win64-debug.zip
    15e081d5b5c7432737d99a655ef0202af5bc5b0ec6a5b782f2329088ccea5b55  guix-build-7f09e7118a59/output/x86_64-w64-mingw32/bitcoin-7f09e7118a59-win64-setup-unsigned.exe
    9551ebb61378f009b0216cdb00a04940445dc73d62e002f825ed1d0cd1736c05  guix-build-7f09e7118a59/output/x86_64-w64-mingw32/bitcoin-7f09e7118a59-win64-unsigned.tar.gz
    2383972fd9fae4f5804b64ff09b975a6ed766550a10a114ac5010572e6670775  guix-build-7f09e7118a59/output/x86_64-w64-mingw32/bitcoin-7f09e7118a59-win64.zip
    
  216. DrahtBot added the label Needs rebase on Apr 5, 2023
  217. hebasto referenced this in commit 2428f6ce9a on Apr 19, 2023
  218. hebasto force-pushed on Apr 19, 2023
  219. DrahtBot removed the label Needs rebase on Apr 19, 2023
  220. hebasto commented at 9:20 PM on April 19, 2023: member

    Updated up to pr25797.59:

    Rebased on the current cmake-staging branch (first 25 out of a total of 75 commits).

    All CI tasks are :green_circle:

    Guix builds:

    25a62ef8d51c07799b2fe3f687f2340b9f5cf2523079ed12cdc1bbac07b38188  guix-build-33b2db8e6f7c/output/aarch64-linux-gnu/SHA256SUMS.part
    af60d9a558ed74492cdf2697d54c3a25aa236a29721269a0eaa35a37997724bd  guix-build-33b2db8e6f7c/output/aarch64-linux-gnu/bitcoin-33b2db8e6f7c-aarch64-linux-gnu-debug.tar.gz
    af96e13399e83c52abd7ef662083dfaa0a65eefe604d9b5120455c7850ce0171  guix-build-33b2db8e6f7c/output/aarch64-linux-gnu/bitcoin-33b2db8e6f7c-aarch64-linux-gnu.tar.gz
    550961782fadeb4b3cfa90c8afc2d5817a22c81d807d7dc60a3d96de0d363b4b  guix-build-33b2db8e6f7c/output/arm-linux-gnueabihf/SHA256SUMS.part
    98784733b5778b053f4c6c4e39b53a67fe55915ea3f15ffbac124c3e7bcedce9  guix-build-33b2db8e6f7c/output/arm-linux-gnueabihf/bitcoin-33b2db8e6f7c-arm-linux-gnueabihf-debug.tar.gz
    fa96724fc0a73024977de9becdae9cfe5dd7075a7559efa383b8fc5464890021  guix-build-33b2db8e6f7c/output/arm-linux-gnueabihf/bitcoin-33b2db8e6f7c-arm-linux-gnueabihf.tar.gz
    cba90bbd8f6c58fab88a114802cf6c0daa65a9a22ad37e43137e8ecfcb7a1226  guix-build-33b2db8e6f7c/output/arm64-apple-darwin/SHA256SUMS.part
    d16ee4ff870a8274294efa19ad0a8c95ef494cf70cd30e9eac319d03be76af83  guix-build-33b2db8e6f7c/output/arm64-apple-darwin/bitcoin-33b2db8e6f7c-arm64-apple-darwin-unsigned.dmg
    242156b3435c6fe772455ad5863aa15e9d902f5c1db0bff59554673553ad4713  guix-build-33b2db8e6f7c/output/arm64-apple-darwin/bitcoin-33b2db8e6f7c-arm64-apple-darwin-unsigned.tar.gz
    00545ea7be77a9282c748118252706818a83f778b0efac8bb402dba5ee5b0d54  guix-build-33b2db8e6f7c/output/arm64-apple-darwin/bitcoin-33b2db8e6f7c-arm64-apple-darwin.tar.gz
    43e58fe001eff44cc80f4aef4c3d2bfb075a0eb5e0d1e86111d3bf7e149136a3  guix-build-33b2db8e6f7c/output/dist-archive/bitcoin-33b2db8e6f7c.tar.gz
    27fda6b50dbcf0a50785e5e4a93239396938f5fb82a0540e8d568dfa474ad1df  guix-build-33b2db8e6f7c/output/powerpc64-linux-gnu/SHA256SUMS.part
    92b414b6da2e99d118b6a596eb1731c6473e2292673ef0911478edfdef7bd5ce  guix-build-33b2db8e6f7c/output/powerpc64-linux-gnu/bitcoin-33b2db8e6f7c-powerpc64-linux-gnu-debug.tar.gz
    6144b1df8dbfac1fc9b6041b26d25ff5082896e9a0e7d1c2ee8e167ba3eb3c7a  guix-build-33b2db8e6f7c/output/powerpc64-linux-gnu/bitcoin-33b2db8e6f7c-powerpc64-linux-gnu.tar.gz
    5428d3b39dd1c308545e6f95215afb85e3bec265008a6e69a505cfe832fb26aa  guix-build-33b2db8e6f7c/output/powerpc64le-linux-gnu/SHA256SUMS.part
    11222fa40517d7933f662941a7bb0799f640fb0b8a0b3ad8517889f3afa59d9d  guix-build-33b2db8e6f7c/output/powerpc64le-linux-gnu/bitcoin-33b2db8e6f7c-powerpc64le-linux-gnu-debug.tar.gz
    07c8ffbe396f7c8c5e40eea1bee435446c65cee51e064d81e03b9cf06d5594db  guix-build-33b2db8e6f7c/output/powerpc64le-linux-gnu/bitcoin-33b2db8e6f7c-powerpc64le-linux-gnu.tar.gz
    a82208ec2ff6d137ac0d2fd9b836db76b6fd572ce97e4d5102a90f7aee4f6fef  guix-build-33b2db8e6f7c/output/riscv64-linux-gnu/SHA256SUMS.part
    59e2de9f1008433cab8ffc9f9e8f9e8528feb2a548096d8012893ef52eb89dc7  guix-build-33b2db8e6f7c/output/riscv64-linux-gnu/bitcoin-33b2db8e6f7c-riscv64-linux-gnu-debug.tar.gz
    acc0b76896d01a360a67a338f595dba7bf279e24d94f7ad78030170644a64618  guix-build-33b2db8e6f7c/output/riscv64-linux-gnu/bitcoin-33b2db8e6f7c-riscv64-linux-gnu.tar.gz
    e8b5505e3229834a0479f68614ee28ae6a2540c41824e2a5296af31eeddfe7f4  guix-build-33b2db8e6f7c/output/x86_64-apple-darwin/SHA256SUMS.part
    c3ead10696d15bd8851350da81d8430fb138fc36ee506b417c171053efed93b6  guix-build-33b2db8e6f7c/output/x86_64-apple-darwin/bitcoin-33b2db8e6f7c-x86_64-apple-darwin-unsigned.dmg
    e09ac2d4539a6a4335aa245cfa9f1870704b6b9f1aa858bd4e59b33b4f258a20  guix-build-33b2db8e6f7c/output/x86_64-apple-darwin/bitcoin-33b2db8e6f7c-x86_64-apple-darwin-unsigned.tar.gz
    c121c99424c428505d97e1183959b5aee08d163a0e5747300dad2442f54f37e1  guix-build-33b2db8e6f7c/output/x86_64-apple-darwin/bitcoin-33b2db8e6f7c-x86_64-apple-darwin.tar.gz
    9f877c75b2eca7d874027fe8c5cdb029e47ac9f8e66a24488c8a3e0a7456085d  guix-build-33b2db8e6f7c/output/x86_64-linux-gnu/SHA256SUMS.part
    8e1d83b7e467316504aae34ac7e37107b429911105f02f609b00cad23dd36434  guix-build-33b2db8e6f7c/output/x86_64-linux-gnu/bitcoin-33b2db8e6f7c-x86_64-linux-gnu-debug.tar.gz
    47a49e55a5d50ad0f554c11fcc8fd8ac81b748ead33500a2e8be6faf04332fad  guix-build-33b2db8e6f7c/output/x86_64-linux-gnu/bitcoin-33b2db8e6f7c-x86_64-linux-gnu.tar.gz
    410893fdc7d830f773bcec95f5c57b25e5d0c2d4f5c7643cba666ec2371ac0ee  guix-build-33b2db8e6f7c/output/x86_64-w64-mingw32/SHA256SUMS.part
    32885ed9d6a538a4afb82bacfb427a53f1feb5433c17315a0da425e383b916ce  guix-build-33b2db8e6f7c/output/x86_64-w64-mingw32/bitcoin-33b2db8e6f7c-win64-debug.zip
    1a39afa1449f80938500f5e47649ccc81d5193b1f7cbb643ca95a15c8d42679e  guix-build-33b2db8e6f7c/output/x86_64-w64-mingw32/bitcoin-33b2db8e6f7c-win64-setup-unsigned.exe
    0b43db6e26fbefe93597c9cc33091e63464a7b252ebc38658b681cb3ff098e6a  guix-build-33b2db8e6f7c/output/x86_64-w64-mingw32/bitcoin-33b2db8e6f7c-win64-unsigned.tar.gz
    296486c2cbf00dc658a78e90d4ea7584ca1c1d1dd6f38a4f6c161573b7274e27  guix-build-33b2db8e6f7c/output/x86_64-w64-mingw32/bitcoin-33b2db8e6f7c-win64.zip
    
  221. DrahtBot added the label CI failed on Apr 23, 2023
  222. DrahtBot added the label Needs rebase on Apr 28, 2023
  223. hebasto force-pushed on May 3, 2023
  224. hebasto force-pushed on May 3, 2023
  225. hebasto commented at 7:32 PM on May 3, 2023: member

    Updated on top of the recent https://github.com/hebasto/bitcoin/pull/15.

    CI build is :green_circle:

    Guix builds:

    040eb5ee40cf57dcfe34caf8598cd856ac8585565c74386905feccbeb1868830  guix-build-7cc0a620fd74/output/aarch64-linux-gnu/SHA256SUMS.part
    bb542a379b8c8ff54c645b4260ddf26265efcd0fc204fa09ce5eaf201f30ddb7  guix-build-7cc0a620fd74/output/aarch64-linux-gnu/bitcoin-7cc0a620fd74-aarch64-linux-gnu-debug.tar.gz
    c8a307a90343c8553ff98e17209989debfc39d8b458aacdb15300f570fd17931  guix-build-7cc0a620fd74/output/aarch64-linux-gnu/bitcoin-7cc0a620fd74-aarch64-linux-gnu.tar.gz
    b1f7db338801cd31356a893950db8829f17cf12ad3274494c365c33a5db60ac9  guix-build-7cc0a620fd74/output/arm-linux-gnueabihf/SHA256SUMS.part
    0575f8bd2323cfd44cf5cd700356e43f2b64b61c83145a5478ff5e5abb49e3e8  guix-build-7cc0a620fd74/output/arm-linux-gnueabihf/bitcoin-7cc0a620fd74-arm-linux-gnueabihf-debug.tar.gz
    6b32b77446c84623e119b6dcee72370f6d8d27036746c747638222b3daad6af0  guix-build-7cc0a620fd74/output/arm-linux-gnueabihf/bitcoin-7cc0a620fd74-arm-linux-gnueabihf.tar.gz
    dacf80f256dd007ec7cced824fb4318631c29d70357d0d5ea87141a65901cc6b  guix-build-7cc0a620fd74/output/arm64-apple-darwin/SHA256SUMS.part
    58ca86d8aa8a7d56a166e98aefb00001c57bdee0f55468b2b35f72831e47f709  guix-build-7cc0a620fd74/output/arm64-apple-darwin/bitcoin-7cc0a620fd74-arm64-apple-darwin-unsigned.dmg
    723c29160150146d2c2c1f3bba60f15eb576b074bc867d94477b9336261c8266  guix-build-7cc0a620fd74/output/arm64-apple-darwin/bitcoin-7cc0a620fd74-arm64-apple-darwin-unsigned.tar.gz
    34f64a9f13c7747182e991936b216d3f0df189006c989c8070e976263d72ab23  guix-build-7cc0a620fd74/output/arm64-apple-darwin/bitcoin-7cc0a620fd74-arm64-apple-darwin.tar.gz
    1da871c7bd2f98a87d8994b0b4fef1b728027174eaf96d937dbf27b3695cdc56  guix-build-7cc0a620fd74/output/dist-archive/bitcoin-7cc0a620fd74.tar.gz
    119d35fb81da37358022351eaa2637935557450891f6474d8351620310872c0e  guix-build-7cc0a620fd74/output/powerpc64-linux-gnu/SHA256SUMS.part
    a3fe00b000a6e5d14304cb696f0aac111b0c7c14a3e0fbc6e8e130fb27d898cc  guix-build-7cc0a620fd74/output/powerpc64-linux-gnu/bitcoin-7cc0a620fd74-powerpc64-linux-gnu-debug.tar.gz
    8256b626c095bac572f072b5715218eaa2526219a379931eea68692e968092d4  guix-build-7cc0a620fd74/output/powerpc64-linux-gnu/bitcoin-7cc0a620fd74-powerpc64-linux-gnu.tar.gz
    87a57ad92fad64d5a90113f906798e24350ef17fc72f18b92d554f0ee337f3d1  guix-build-7cc0a620fd74/output/powerpc64le-linux-gnu/SHA256SUMS.part
    f26c439e669779ba12e8a6b2c328ed5519abd8edf7b84160e2c9c13849bdfa46  guix-build-7cc0a620fd74/output/powerpc64le-linux-gnu/bitcoin-7cc0a620fd74-powerpc64le-linux-gnu-debug.tar.gz
    f930566537e99cdf7e56a3d06d5fab287950d27a80d08cd419828044fff0283a  guix-build-7cc0a620fd74/output/powerpc64le-linux-gnu/bitcoin-7cc0a620fd74-powerpc64le-linux-gnu.tar.gz
    1654e6fc1ada5b652d058f7d16c30251a72e7ee887771d0412a064160879e791  guix-build-7cc0a620fd74/output/riscv64-linux-gnu/SHA256SUMS.part
    55235d1f1e49e3e1ec315ca0ada603a07e230e07a9cf71ad4ab3d26c6a001945  guix-build-7cc0a620fd74/output/riscv64-linux-gnu/bitcoin-7cc0a620fd74-riscv64-linux-gnu-debug.tar.gz
    c017f5c635a2ebfa4891a76496508458c99ecee6950130893f11b3bed5f80d81  guix-build-7cc0a620fd74/output/riscv64-linux-gnu/bitcoin-7cc0a620fd74-riscv64-linux-gnu.tar.gz
    73c6373293a3ed759c7ce918ed704167306b8c598f41eda4fd725e7aceead10c  guix-build-7cc0a620fd74/output/x86_64-apple-darwin/SHA256SUMS.part
    ce76699a80c6698f4f1b6434a05cd83aa6ad3101eab999b40d06372c7fb43afe  guix-build-7cc0a620fd74/output/x86_64-apple-darwin/bitcoin-7cc0a620fd74-x86_64-apple-darwin-unsigned.dmg
    a87e4f2bb39f5a69b2577906a68303505be907f9996e2008929f621d48635047  guix-build-7cc0a620fd74/output/x86_64-apple-darwin/bitcoin-7cc0a620fd74-x86_64-apple-darwin-unsigned.tar.gz
    f4e740ef03cf030c2da98b9c5806262de886a61566e05324c3eb51e8ea05d09f  guix-build-7cc0a620fd74/output/x86_64-apple-darwin/bitcoin-7cc0a620fd74-x86_64-apple-darwin.tar.gz
    6cda85c3e8b3948c9356dc37e9c0b3c65f42a17368fb82d6b30d3af8a2c87348  guix-build-7cc0a620fd74/output/x86_64-linux-gnu/SHA256SUMS.part
    a0d167ba9c00d16c89b1ac5d536197376f81dfd82296319753a508d628d2c998  guix-build-7cc0a620fd74/output/x86_64-linux-gnu/bitcoin-7cc0a620fd74-x86_64-linux-gnu-debug.tar.gz
    445cadcc3d1b96b00a4a26111cd23f32cebe13a579bcd8dfb8e030a1f6bcd91f  guix-build-7cc0a620fd74/output/x86_64-linux-gnu/bitcoin-7cc0a620fd74-x86_64-linux-gnu.tar.gz
    6188e51d7e6f5bdaec57ce1e89d1e4f5e8c7a6c3ac7e067bc1780735ef514461  guix-build-7cc0a620fd74/output/x86_64-w64-mingw32/SHA256SUMS.part
    3ce66119f6600ead136d0331507577960e3eb921025beade89f18415c77d65d7  guix-build-7cc0a620fd74/output/x86_64-w64-mingw32/bitcoin-7cc0a620fd74-win64-debug.zip
    cb1df2bc4ab8f5ea738a2e189ea6b2acafcd25d7efca98cfc40321b807b16c08  guix-build-7cc0a620fd74/output/x86_64-w64-mingw32/bitcoin-7cc0a620fd74-win64-setup-unsigned.exe
    70569b6faadb4a3a8331f1e58aa4f6866281d1dddc262de97273a176b736db44  guix-build-7cc0a620fd74/output/x86_64-w64-mingw32/bitcoin-7cc0a620fd74-win64-unsigned.tar.gz
    e2aeb256daf04bb97dca3be0c73143371385002b5dda064a0dab059a4e3365db  guix-build-7cc0a620fd74/output/x86_64-w64-mingw32/bitcoin-7cc0a620fd74-win64.zip
    
  226. hebasto force-pushed on May 5, 2023
  227. DrahtBot removed the label Needs rebase on May 5, 2023
  228. DrahtBot removed the label CI failed on May 5, 2023
  229. hebasto commented at 6:50 PM on May 5, 2023: member

    Rebased on top of the bitcoin/bitcoin#27554.

    The CI build is :green_circle:

  230. DrahtBot added the label Needs rebase on May 10, 2023
  231. fanquake referenced this in commit 5421dc3244 on May 22, 2023
  232. fanquake referenced this in commit 5ef2c1ee7a on May 23, 2023
  233. sidhujag referenced this in commit 183a37a3b7 on May 23, 2023
  234. sidhujag referenced this in commit c2228804b5 on May 23, 2023
  235. hebasto force-pushed on May 25, 2023
  236. DrahtBot removed the label Needs rebase on May 25, 2023
  237. DrahtBot added the label CI failed on May 25, 2023
  238. hebasto force-pushed on May 26, 2023
  239. hebasto force-pushed on May 26, 2023
  240. hebasto force-pushed on May 26, 2023
  241. in ci/test/00_setup_env_i686_centos.sh:12 in d29bcb4acc outdated
       8 | @@ -9,9 +9,10 @@ export LC_ALL=C.UTF-8
       9 |  export HOST=i686-pc-linux-gnu
      10 |  export CONTAINER_NAME=ci_i686_centos
      11 |  export CI_IMAGE_NAME_TAG="quay.io/centos/centos:stream9"
      12 | -export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux"
      13 | +# Use minimum supported python3.8 and gcc-8, see doc/dependencies.md
    


    maflcko commented at 11:54 AM on May 26, 2023:

    ?


    hebasto commented at 12:13 PM on May 26, 2023:

    Oh... Bad rebasing. Thanks!

  242. hebasto force-pushed on May 26, 2023
  243. cmake: Add root `CMakeLists.txt` file 9431452c66
  244. cmake: Add `config/bitcoin-config.h` support e984ec4f51
  245. cmake: Add `cmake/introspection.cmake` file f106f21a2d
  246. cmake: Check system headers 4f047042a9
  247. cmake: Check system symbols
    Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
    Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
    85b930907b
  248. cmake: Check compiler features 7a10051bbe
  249. cmake: Build `crc32c` static library 3aaab8c9f8
  250. cmake: Build `leveldb` static library
    Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
    caaab6e8ab
  251. cmake: Add essential platform-specific definitions and options e2eb8698c5
  252. cmake: Build `minisketch` static library b6c361cb83
  253. cmake: Build `secp256k1` static library cfab899883
  254. cmake: Build `univalue` static library 35dd9889ae
  255. cmake: Build `bitcoin_crypto` library 8d90ec827b
  256. cmake: Build `bitcoin_util` static library 5e4d3f0614
  257. cmake: Build `bitcoin_consensus` library 746bb1e2e1
  258. cmake: Build `bitcoind` executable a00e580780
  259. build: Generate `share/toolchain.cmake` in depends bc4ea83cb5
  260. cmake: Add cross-compiling support
    To configure CMake for cross-compiling, use
    `--toolchain depends/${HOST}/share/toolchain.cmake` command-line option.
    dd8dfb5ee4
  261. cmake: Add `TristateOption` module f85e8853e7
  262. cmake: Add `ccache` support 95488cc49c
  263. cmake: Add `libnatpmp` optional package support c508c512c6
  264. cmake: Add `libminiupnpc` optional package support b1b91dd17f
  265. cmake: Add `libzmq` optional package support 00f909f219
  266. cmake: Add `systemtap-sdt` optional package support aad5119884
  267. cmake: Build `bitcoin-cli` executable 582424e494
  268. cmake: Build `bitcoin-tx` executable 3d79b0c145
  269. cmake: Build `bitcoin-util` executable 9d9ba349f0
  270. cmake: Add wallet functionality 731e17d4ea
  271. cmake: Add test config and runners dce36eada0
  272. cmake: Build `bench_bitcoin` executable 4432b571b2
  273. cmake: Build `test_bitcoin` executable 1447235b1d
  274. cmake: Include CTest a8a3c64f2a
  275. cmake: Add `TryAppendCompilerFlag` module 160eabdcb5
  276. cmake: Add `TryAppendLinkerFlag` module 21ed4a0cf5
  277. cmake: Add platform-specific flags 969e2a4cf5
  278. cmake: Redefine configuration flags b57e8ef8b4
  279. cmake: Add `HARDENING` option c592b189de
  280. cmake: Add `REDUCE_EXPORTS` option f7a7a0f16d
  281. cmake: Add `WERROR` option 3686ff6b88
  282. cmake: Add `BUILD_SHARED` and `BUILD_STATIC` options d66e45a9ab
  283. [FIXUP] cmake: Move only 9940dfa18a
  284. cmake: Build `libbitcoinconsensus` library a4acce434b
  285. cmake: Build `libbitcoinkernel` library 033fe81fd9
  286. cmake: Build `bitcoin-chainstate` executable 619cd25a47
  287. cmake: Add syscall sandbox support 2a4545128f
  288. cmake: Implement `make install` 976dab444e
  289. cmake: Add `split-debug.sh` support 513b18c977
  290. cmake: Add `GetAllExecutables` module 1a386a4751
  291. cmake: Add `check-symbols` target 8887e18a08
  292. cmake: Add `check-security` target cac3955cda
  293. cmake: Add `test-security-check` target 4ca1290d30
  294. cmake: Build `bitcoin-qt` executable f671c82ab6
  295. cmake: Add `libqrencode` optional package support 04ba5b13ef
  296. msvc: Fix building with vcpkg's Qt packages
    See: https://stackoverflow.com/questions/4845198/fatal-error-no-target-architecture-in-visual-studio
    1ff2ad8ef2
  297. [FIXUP] cmake: Link MINGW executables with `-static` ef36aefc33
  298. cmake: Add `deploy` target for MINGW builds 3126f426ae
  299. cmake: Add `deploy` target for macOS 95d0e7768d
  300. cmake: Migrate Guix builds to CMake 513d60815d
  301. cmake: Add `SANITIZERS` option 035a10de57
  302. cmake: Add `BUILD_FUZZ_BINARY` option d8faa8647b
  303. cmake: Add `FUZZ` option 55915a1733
  304. cmake: Add `MULTIPROCESS` option f613e0a0ea
  305. cmake: Add external signer support c466a858bf
  306. build: Fix duplicate Android platform plugin definitions in depends ecd42546fa
  307. cmake, depends: Add support for Android hosts 88230ecabb
  308. cmake: Add compiler diagnostic flags 63d9ddd52a
  309. ci: Migrate CI tasks to CMake 6da2447ba4
  310. hebasto force-pushed on May 26, 2023
  311. DrahtBot removed the label CI failed on May 26, 2023
  312. hebasto commented at 3:47 PM on May 26, 2023: member

    Rebased using the recent https://github.com/hebasto/bitcoin/pull/15.

    The CI build is :green_circle:

    Guix builds:

    0e55d1f6049ff973dc7a0d1a94f898cac5c107867e5b56ad1765add2cf5e9bad  guix-build-6da2447ba472/output/aarch64-linux-gnu/SHA256SUMS.part
    92edb276a7daef893edc1ad07a062666866b33d1e57c9475571ce7446d947d72  guix-build-6da2447ba472/output/aarch64-linux-gnu/bitcoin-6da2447ba472-aarch64-linux-gnu-debug.tar.gz
    b505174b13a9e15c99bb866238f6e8d06cecc9b7099f209fa556581927a61b32  guix-build-6da2447ba472/output/aarch64-linux-gnu/bitcoin-6da2447ba472-aarch64-linux-gnu.tar.gz
    808666e38700552b4ec8cfc726b56302426f8096193aaf57e3fa5a596966acbd  guix-build-6da2447ba472/output/arm-linux-gnueabihf/SHA256SUMS.part
    f73804869f6943c5eb3dfc2db61e3a49c4830ce4a44df80ead7783c5082daf1e  guix-build-6da2447ba472/output/arm-linux-gnueabihf/bitcoin-6da2447ba472-arm-linux-gnueabihf-debug.tar.gz
    067e98f534023be038ff70ae5cc84b9c1a0866f13cfaad3fcdb1b7f530010229  guix-build-6da2447ba472/output/arm-linux-gnueabihf/bitcoin-6da2447ba472-arm-linux-gnueabihf.tar.gz
    a8a14c4b5c85f99043c4ad619dbc53ec7b2905d640dda5f0b7e076b07006f8ed  guix-build-6da2447ba472/output/arm64-apple-darwin/SHA256SUMS.part
    803176a10aa6ffd057921e8a480dcbf7b2cdabfc351b77e270dce37effc739cb  guix-build-6da2447ba472/output/arm64-apple-darwin/bitcoin-6da2447ba472-arm64-apple-darwin-unsigned.dmg
    4baf135cfcae2583aa1a2b03be2a7a091ff4c364c101b1385a6873c5f5f4cf3d  guix-build-6da2447ba472/output/arm64-apple-darwin/bitcoin-6da2447ba472-arm64-apple-darwin-unsigned.tar.gz
    3644b950cd926ef7d0afd8efd4553dfbd5003c962e7411b952d77410903cf526  guix-build-6da2447ba472/output/arm64-apple-darwin/bitcoin-6da2447ba472-arm64-apple-darwin.tar.gz
    4f158342a1dc953daafed2d4668b7b3e16861dc80486d13794ad63c4f94307ed  guix-build-6da2447ba472/output/dist-archive/bitcoin-6da2447ba472.tar.gz
    eb60adece4c83d1cb7d86fdbc5a832f3c4212edb4f64c5ed57b0e363d939735a  guix-build-6da2447ba472/output/powerpc64-linux-gnu/SHA256SUMS.part
    e88896b253268f51472ff8a1719e368d5d780e5a81e4a1b3534749f7a169728a  guix-build-6da2447ba472/output/powerpc64-linux-gnu/bitcoin-6da2447ba472-powerpc64-linux-gnu-debug.tar.gz
    11062cfc02c2f02819133ed6bbb6858029c093f02977a6426ccedc3a0d61056d  guix-build-6da2447ba472/output/powerpc64-linux-gnu/bitcoin-6da2447ba472-powerpc64-linux-gnu.tar.gz
    f632db6ae6ca4d131929a55d7cc04f1535b8e14d53bf89c82022e53eb56521b1  guix-build-6da2447ba472/output/powerpc64le-linux-gnu/SHA256SUMS.part
    da3d0c0aa8e8cb32bc5f339e548dc06b5e73ca5904d8a51e13191e7172c2b1dc  guix-build-6da2447ba472/output/powerpc64le-linux-gnu/bitcoin-6da2447ba472-powerpc64le-linux-gnu-debug.tar.gz
    b608ee27dad6cee342961eacb0d36c3163868d846ce1e74275e22ac2270eaa7a  guix-build-6da2447ba472/output/powerpc64le-linux-gnu/bitcoin-6da2447ba472-powerpc64le-linux-gnu.tar.gz
    442c091932dcd37ba81e8a24fc396c8b6d327fcdc064ff440e4f3f63c1525b72  guix-build-6da2447ba472/output/riscv64-linux-gnu/SHA256SUMS.part
    f82a30c7f8aa710f7bda84fe83ced3445547656f2035615e5b8318b5a73764b4  guix-build-6da2447ba472/output/riscv64-linux-gnu/bitcoin-6da2447ba472-riscv64-linux-gnu-debug.tar.gz
    981ae422e09d6a03f9575808b42e772d3fb02c1afe1c2706054579662e88dc88  guix-build-6da2447ba472/output/riscv64-linux-gnu/bitcoin-6da2447ba472-riscv64-linux-gnu.tar.gz
    e7b0b2bc85c3e8d0c515de7b4b6140fb48bf6a4d448d3855b76f637f72af9a06  guix-build-6da2447ba472/output/x86_64-apple-darwin/SHA256SUMS.part
    9efd7787d8882c3e35c3a54b6d10f5a40aedad0178bfccdc1770426a766c15cb  guix-build-6da2447ba472/output/x86_64-apple-darwin/bitcoin-6da2447ba472-x86_64-apple-darwin-unsigned.dmg
    6ee52ec5fa097970cf1fa606dc7fc1a308ecc1a388570242683f5b7bb43146fb  guix-build-6da2447ba472/output/x86_64-apple-darwin/bitcoin-6da2447ba472-x86_64-apple-darwin-unsigned.tar.gz
    2ee3b5ddf39a6be1bce59f86c2694804d2e43e9f6cc32371d22b8bc1b946f3d4  guix-build-6da2447ba472/output/x86_64-apple-darwin/bitcoin-6da2447ba472-x86_64-apple-darwin.tar.gz
    2a19ce56e38c0ae93104cd7e594ad4a6fadc8aa3bb7ddc1c45eb35c9e4837cf7  guix-build-6da2447ba472/output/x86_64-linux-gnu/SHA256SUMS.part
    a6876c0ad3a7ecdc0c7040d88bc81b0a3d30854a51cb7edb87cf407c3971bad7  guix-build-6da2447ba472/output/x86_64-linux-gnu/bitcoin-6da2447ba472-x86_64-linux-gnu-debug.tar.gz
    663eb0817cc7f8da784ba66db8b068d68d47a8b06d8713be2dff7d80ab63326f  guix-build-6da2447ba472/output/x86_64-linux-gnu/bitcoin-6da2447ba472-x86_64-linux-gnu.tar.gz
    dfb0fedf875558a1f4e5dc7b6e3c9c0c42400ac0cb63f15d97135c629ff646ae  guix-build-6da2447ba472/output/x86_64-w64-mingw32/SHA256SUMS.part
    b0413410ff106c55672ac0533c7497cc2eda5a7a50202df016e59039adfa10e8  guix-build-6da2447ba472/output/x86_64-w64-mingw32/bitcoin-6da2447ba472-win64-debug.zip
    ebe471369c36358e687974fad18454be4f2b92a8986ff234e2018034994b1e0b  guix-build-6da2447ba472/output/x86_64-w64-mingw32/bitcoin-6da2447ba472-win64-setup-unsigned.exe
    c463081d2092f19de0c52f5b83f5f37d4373e80ca95842c161e8f23afbabc522  guix-build-6da2447ba472/output/x86_64-w64-mingw32/bitcoin-6da2447ba472-win64-unsigned.tar.gz
    e4f170a8cee8c410569c53b7029cea0298479c9b3999646fea0922876897ab00  guix-build-6da2447ba472/output/x86_64-w64-mingw32/bitcoin-6da2447ba472-win64.zip
    
  313. DrahtBot added the label Needs rebase on May 29, 2023
  314. DrahtBot commented at 4:54 PM on May 29, 2023: contributor

    <!--cf906140f33d8803c4a75a2196329ecb-->

    🐙 This pull request conflicts with the target branch and needs rebase.

  315. hebasto referenced this in commit 3a1fe30b87 on Jul 7, 2023
  316. hebasto commented at 5:16 PM on July 7, 2023: member

    Closing this PR as its usefulness seems marginal.

    Although, I'll keep maintaining this branch.

    Reminding that the active reviewing process still happening in https://github.com/hebasto/bitcoin/tree/cmake-staging and related PRs.

  317. hebasto closed this on Jul 7, 2023

  318. luke-jr commented at 5:30 PM on July 7, 2023: member

    we should be able to enumerate some more benefits to doing so.

    One more for the list:

    • Real out-of-tree builds. Autotools requires autogen to be run in the tree, which can be complicated when you don't want the build to have write access to the source dir.
  319. hebasto referenced this in commit e592ad1ea9 on Jul 20, 2023
  320. hebasto referenced this in commit 46da0cfa79 on Jul 20, 2023
  321. hebasto referenced this in commit 92e4391161 on Sep 13, 2023
  322. PastaPastaPasta referenced this in commit 74138c6a86 on Feb 28, 2024
  323. PastaPastaPasta referenced this in commit 1526885baf on Feb 29, 2024
  324. bitcoin locked this on Jul 6, 2024

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 21:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me