depends: check required host tools before Qt downloads #35631

pull vicjuma wants to merge 1 commits into bitcoin:master from vicjuma:depends-check-gui-host-tools changing 1 files +23 −2
  1. vicjuma commented at 1:09 PM on July 1, 2026: contributor

    Motivation

    When NO_QT is not set, the depends build requires several host tools for building the Qt dependencies. If one of these tools (for example, pkg-config or bison) is missing, the build only reports the error after the Qt dependency download process has already begun.

    This change performs an early check for the required host tools before downloading Qt dependencies, allowing the build to fail immediately with a clear error message instead of failing later in the build process.

    This change follows the depends build instructions, which document additional host tool requirements when NO_QT is not set (see depends/README.md). The checks are implemented only for the operating systems where these requirements are explicitly documented: Linux (Ubuntu/Debian and Alpine) and FreeBSD. The documentation does not currently specify equivalent requirements for the remaining supported operating systems.

    Testing

    • Built depends with all required host tools installed.
    • Verified that removing pkgconf causes the new early check to fail with the expected error:
    Error: bison host package is required to build Qt dependencies. Pass NO_QT=1 option to make if you wish to skip Qt.
    make: *** [Makefile:258: check-host-tools] Error 1
    
    • Verified that removing bison causes the new early check to fail with the expected error:
    Error: bison host package is required to build Qt dependencies. Pass NO_QT=1 option to make if you wish to skip Qt.
    make: *** [Makefile:258: check-host-tools] Error 1
    
    • Verified that make NO_QT=1 skips the host tool check.
  2. depends: check required host tools before Qt downloads
    When NO_QT is not set, building depends requires certain host tools,
    such as pkg-config and bison, for the Qt dependency build.
    
    Check for these tools before downloading Qt dependencies so the build
    fails immediately with a clear error rather than waiting until the Qt
    download step to report the missing host tools.
    3e2a94185d
  3. DrahtBot added the label Build system on Jul 1, 2026
  4. DrahtBot commented at 1:09 PM on July 1, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35631.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline and AI policy for information on the review process. A summary of reviews will appear here.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  5. maflcko commented at 2:00 PM on July 1, 2026: member

    No. It should be possible to download without having to install build tools, because download can happen on a different machine/context than building.

  6. vicjuma commented at 2:21 PM on July 1, 2026: contributor

    No. It should be possible to download without having to install build tools, because download can happen on a different machine/context than building.

    Looking at the dependency graph though, check-host-tools is only wired as a prerequisite of install. make download is not affected in any way. If there's a specific path you're seeing where download does end up depending on it (maybe through a target I'm missing), let me know, and I'll fix it

  7. maflcko added the label DrahtBot Guix build requested on Aug 19, 2026
  8. DrahtBot commented at 4:30 AM on August 20, 2026: contributor

    <!--9cd9c72976c961c55c7acef8f6ba82cd-->

    Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use]

    File commit fe5e2a6319b851a6883c94e568eab57a25e31a1b<br>(master) commit aaf2538121e37fdfcd7abb8abf62422964847aa3<br>(pull/35631/merge)
    *-aarch64-linux-gnu-debug.tar.gz 2ce7679c71f316f9...
    *-aarch64-linux-gnu.tar.gz 08d65e7f923c6107...
    *-arm-linux-gnueabihf-debug.tar.gz 76f1f46d0a924b52...
    *-arm-linux-gnueabihf.tar.gz 43a47114963e616b...
    *-arm64-apple-darwin-codesigning.tar.gz d2dd693be77b6c5f...
    *-arm64-apple-darwin-unsigned.tar.gz 12ed62b0f4de2f27...
    *-arm64-apple-darwin-unsigned.zip c7486e2ff432e2f7...
    *-powerpc64-linux-gnu-debug.tar.gz 1dc3a5a127f8c681...
    *-powerpc64-linux-gnu.tar.gz dc91ad99b24ebf78...
    *-riscv64-linux-gnu-debug.tar.gz 06e2d5833a939e05...
    *-riscv64-linux-gnu.tar.gz 5c5cb2ee3c9bd502...
    *-win64-codesigning.tar.gz c6209c1ca707d1f9...
    *-win64-debug.zip 24c9dffa23289570...
    *-win64-setup-unsigned.exe ac6c72eb706fae09...
    *-win64-unsigned.zip 172c57fb80690723...
    *-x86_64-apple-darwin-codesigning.tar.gz 3bd50be9fd6394ed...
    *-x86_64-apple-darwin-unsigned.tar.gz f997f5e5d8b4a985...
    *-x86_64-apple-darwin-unsigned.zip 7d7076556cb08872...
    *-x86_64-linux-gnu-debug.tar.gz cd88cf38726b3bd1...
    *-x86_64-linux-gnu.tar.gz 167828ffdd4cf35e...
    *.tar.gz 03b7af44eaa38d1f... 911be7ed90842f3f...
    SHA256SUMS.part 744136a93e4ca74f...
    guix_build.log 31aa59fde5a51374... 0d04b82bbe4fec51...
    guix_build.log.diff 4d77787002f0661e...
  9. DrahtBot removed the label DrahtBot Guix build requested on Aug 20, 2026
  10. maflcko commented at 4:34 AM on August 20, 2026: member

    Are you still working on this, or can it be closed? (The guix build still fails)

  11. fanquake commented at 9:05 AM on August 20, 2026: member

    I don't really think we need to do this, so going to close for now.

  12. fanquake closed this on Aug 20, 2026

  13. vicjuma deleted the branch on Aug 20, 2026

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-09-04 10:51 UTC

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