depends: Hash included makefiles in package checksums #34239

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:260109-qt-details changing 1 files +1 −1
  1. hebasto commented at 3:07 PM on January 9, 2026: member

    This PR fixes an issue where modifications in included files (e.g. packages/qt_details.mk) do not trigger a rebuild of the parent packages (native_qt and qt).

    This addresses an oversight in 248613eb3ee034bf143821a51635e697dc114e6c from #30997.

    Reproduction

    On master (@ 595504a43209bead162da54a204df7d140a25f0e), modifying the included makefile does not change the build ID:

    $ cd depends
    $ gmake print-qt_build_id HOST=x86_64-w64-mingw32
    qt_build_id=b2ce790473c
    $ gmake print-native_qt_build_id HOST=x86_64-w64-mingw32
    native_qt_build_id=70e1e5164c5
    $ echo "" >> packages/qt_details.mk
    $ gmake print-qt_build_id HOST=x86_64-w64-mingw32
    qt_build_id=b2ce790473c
    $ gmake print-native_qt_build_id HOST=x86_64-w64-mingw32
    native_qt_build_id=70e1e5164c5
    

    With this patch

    The checksum calculation now parses include directives and adds those files to the hash. The IDs now update correctly:

    $ cd depends
    $ gmake print-qt_build_id HOST=x86_64-w64-mingw32
    qt_build_id=9a6ebf79cb3
    $ gmake print-native_qt_build_id HOST=x86_64-w64-mingw32
    native_qt_build_id=6ad78a3f644
    $ echo "" >> packages/qt_details.mk
    $ gmake print-qt_build_id HOST=x86_64-w64-mingw32
    qt_build_id=ca820665c52
    $ gmake print-native_qt_build_id HOST=x86_64-w64-mingw32
    native_qt_build_id=082e4cb2364
    
  2. hebasto added the label Build system on Jan 9, 2026
  3. DrahtBot commented at 3:07 PM on January 9, 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/34239.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Approach NACK fanquake

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  4. fanquake commented at 3:14 PM on January 9, 2026: member

    Approach NACK. We've removed sed usage (in #19761 + some later changes) because its generally not portable, can fail silently, and previously its usage was either poorly, or completely undocumented (this change also lacks any inline documentation). I'd rather not reintroduce it.

  5. hebasto commented at 3:23 PM on January 9, 2026: member

    Approach NACK. We've removed sed usage (in #19761 + some later changes)

    Yes, I remember that. However, sed is still used in both depends and contrib/guix:

    $ git grep -l -w sed -- depends/Makefile contrib/guix/
    contrib/guix/INSTALL.md
    contrib/guix/guix-attest
    contrib/guix/guix-build
    contrib/guix/libexec/build.sh
    contrib/guix/manifest.scm
    depends/Makefile
    

    ... because its generally not portable, can fail silently, and previously its usage was either poorly, or completely undocumented (this change also lacks any inline documentation). I'd rather not reintroduce it.

    I'll look into alternative implementations though.

  6. fanquake commented at 3:30 PM on January 9, 2026: member

    The single usage in depends is straightforward, and needed to substitute runtime values. The usage in Guix is in the docs, a workaround for a bug in CMake and for dealing with runtime values (sha256sums).

  7. hebasto force-pushed on Jan 9, 2026
  8. DrahtBot added the label CI failed on Jan 9, 2026
  9. hebasto commented at 3:31 PM on January 9, 2026: member

    Reworked to avoid using sed.

  10. hebasto removed the label CI failed on Jan 9, 2026
  11. depends: Hash included makefiles in package checksums
    Fix the behavior where modifications in included files (e.g.
    `packages/qt_details.mk`) do not trigger a rebuild of the
    parent packages (`native_qt` and `qt`).
    
    The checksum calculation now parses `include` directives and
    adds those files to the hash.
    ec61a1af62
  12. hebasto force-pushed on Mar 16, 2026
  13. hebasto commented at 2:46 PM on March 16, 2026: member

    Rebased.

  14. sedited commented at 8:44 AM on April 20, 2026: contributor

    Using grep seems a bit better, but still not sure how to judge this in comparison. That said, the change seems fine to me mechanically.

  15. sedited commented at 8:17 AM on June 8, 2026: contributor

    Guix build:

    ef1fc8b3217fcdead3225085988003559d85f95dac183384a2b2cc49483c2fd5  guix-build-ec61a1af6214/output/aarch64-linux-gnu/SHA256SUMS.part
    6fafd1daf6c68d5126df68e48e2b8c86869553eaa07f5a95599b8aacd38e72b5  guix-build-ec61a1af6214/output/aarch64-linux-gnu/bitcoin-ec61a1af6214-aarch64-linux-gnu-debug.tar.gz
    d0169668bd935567487e366053950cb2edb68a8151ab39dd78ab070756eb11ea  guix-build-ec61a1af6214/output/aarch64-linux-gnu/bitcoin-ec61a1af6214-aarch64-linux-gnu.tar.gz
    b822262fb6eb97982fa37232358c44a40370e72e7763ec91c672cdf7b10067fd  guix-build-ec61a1af6214/output/arm-linux-gnueabihf/SHA256SUMS.part
    53ab47330e5b5f655adc39529bc877b3985b2f39007faec5af1f589dba0d8bbd  guix-build-ec61a1af6214/output/arm-linux-gnueabihf/bitcoin-ec61a1af6214-arm-linux-gnueabihf-debug.tar.gz
    44f07cc69d686171a938eda07a1e984cf0d65b7024f1064d5bab17d3b31c09a1  guix-build-ec61a1af6214/output/arm-linux-gnueabihf/bitcoin-ec61a1af6214-arm-linux-gnueabihf.tar.gz
    1d2b5b7d60024a6900f35d0578e679617f8c529b4ecd8912731347370c6db7bc  guix-build-ec61a1af6214/output/arm64-apple-darwin/SHA256SUMS.part
    d8e1ed54e8e1a42675d3616b18cc8a94f8b917b0b62695ddf49f09b2d2589810  guix-build-ec61a1af6214/output/arm64-apple-darwin/bitcoin-ec61a1af6214-arm64-apple-darwin-codesigning.tar.gz
    89463d3f32f7d50b5f8fc0865b736e37475b0df12e18c76141b6ec2884249f8e  guix-build-ec61a1af6214/output/arm64-apple-darwin/bitcoin-ec61a1af6214-arm64-apple-darwin-unsigned.tar.gz
    a30f0d864fb1e9ad3c3fe45ec9469da701a6d4c1542a0ca5555169c0457e7c97  guix-build-ec61a1af6214/output/arm64-apple-darwin/bitcoin-ec61a1af6214-arm64-apple-darwin-unsigned.zip
    5ac65fcff345bf472e115615f76eccee46a67561d3eff1aa4164f8331cf577a3  guix-build-ec61a1af6214/output/dist-archive/bitcoin-ec61a1af6214.tar.gz
    7337f19d433e6c935c061862f655808fa40652a03df218d3d726336d6f0f33cd  guix-build-ec61a1af6214/output/powerpc64-linux-gnu/SHA256SUMS.part
    4e6731838883ebe886fc5ab6544f596212580790387a27c5142483632dee5a78  guix-build-ec61a1af6214/output/powerpc64-linux-gnu/bitcoin-ec61a1af6214-powerpc64-linux-gnu-debug.tar.gz
    0b7fa0cf691e36a86ee89159365b67e763b10a1cf005f754a9f9c06a6ffa5e3b  guix-build-ec61a1af6214/output/powerpc64-linux-gnu/bitcoin-ec61a1af6214-powerpc64-linux-gnu.tar.gz
    b0766d73260dba31ad71c1452638ef04c300e892516837f43cef4c870fd34084  guix-build-ec61a1af6214/output/riscv64-linux-gnu/SHA256SUMS.part
    a2c04450569b574e489b094305e70465e816870ae9c1360a10c5cd00edd3b541  guix-build-ec61a1af6214/output/riscv64-linux-gnu/bitcoin-ec61a1af6214-riscv64-linux-gnu-debug.tar.gz
    a5d663fc09a494805301999e03895848c756a8cf00448ffe87d512c90ab4c783  guix-build-ec61a1af6214/output/riscv64-linux-gnu/bitcoin-ec61a1af6214-riscv64-linux-gnu.tar.gz
    586f9bff2c991875c1ed46d63d24a1bfebc9e8c0cb8d4dcd3caec300ebb96ed8  guix-build-ec61a1af6214/output/x86_64-apple-darwin/SHA256SUMS.part
    8bdd2f4fc7d4d04fad244a3cc0ba39c3ed2593900f02755f0016a3801ac2b566  guix-build-ec61a1af6214/output/x86_64-apple-darwin/bitcoin-ec61a1af6214-x86_64-apple-darwin-codesigning.tar.gz
    dbffbb071b9dca0eaf635a32b2b65e8d67079861a42e9380f11acd613aec5bc0  guix-build-ec61a1af6214/output/x86_64-apple-darwin/bitcoin-ec61a1af6214-x86_64-apple-darwin-unsigned.tar.gz
    7d240210459483a1c20547820057cef7bf49a0cdd8a4157d036bb52547d9d720  guix-build-ec61a1af6214/output/x86_64-apple-darwin/bitcoin-ec61a1af6214-x86_64-apple-darwin-unsigned.zip
    3764f193a990afc2f770f40604ff1957a8b4f9100f075c37adcf5ade5e685e1d  guix-build-ec61a1af6214/output/x86_64-linux-gnu/SHA256SUMS.part
    f5fabae9230c593e080593f4a0ccb72a0dff7d43652d537eb468c3f58889cab3  guix-build-ec61a1af6214/output/x86_64-linux-gnu/bitcoin-ec61a1af6214-x86_64-linux-gnu-debug.tar.gz
    80f44480d1b94c0d9766ade50401850cc630f6fe7066d151ce0eaf0f000c2ee6  guix-build-ec61a1af6214/output/x86_64-linux-gnu/bitcoin-ec61a1af6214-x86_64-linux-gnu.tar.gz
    dffb5da2d984657f84b48dc3cd286c36e409c237791befad6561042c4d878741  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/SHA256SUMS.part
    2619605147945407ec045ba63ca68380b05820e2699be93d2dd77c97d4cac90d  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-codesigning.tar.gz
    cb805e830b1e15ecbf5bd04d9832cf6ce8b38fea4147d0ad459ed34dd2fe6f9e  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-debug.zip
    8b3704c8f3ac8c4b73ff36be18928ab3817868ac9af759a7fc299edac54900cf  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-setup-unsigned.exe
    e4e49cb278e95e942a3d0667acf408c8c43a0c15b44aa745686627b9925cb844  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-unsigned.zip
    
  16. hebasto commented at 2:17 PM on June 9, 2026: member

    My Guix build:

    aarch64
    ef1fc8b3217fcdead3225085988003559d85f95dac183384a2b2cc49483c2fd5  guix-build-ec61a1af6214/output/aarch64-linux-gnu/SHA256SUMS.part
    6fafd1daf6c68d5126df68e48e2b8c86869553eaa07f5a95599b8aacd38e72b5  guix-build-ec61a1af6214/output/aarch64-linux-gnu/bitcoin-ec61a1af6214-aarch64-linux-gnu-debug.tar.gz
    d0169668bd935567487e366053950cb2edb68a8151ab39dd78ab070756eb11ea  guix-build-ec61a1af6214/output/aarch64-linux-gnu/bitcoin-ec61a1af6214-aarch64-linux-gnu.tar.gz
    b822262fb6eb97982fa37232358c44a40370e72e7763ec91c672cdf7b10067fd  guix-build-ec61a1af6214/output/arm-linux-gnueabihf/SHA256SUMS.part
    53ab47330e5b5f655adc39529bc877b3985b2f39007faec5af1f589dba0d8bbd  guix-build-ec61a1af6214/output/arm-linux-gnueabihf/bitcoin-ec61a1af6214-arm-linux-gnueabihf-debug.tar.gz
    44f07cc69d686171a938eda07a1e984cf0d65b7024f1064d5bab17d3b31c09a1  guix-build-ec61a1af6214/output/arm-linux-gnueabihf/bitcoin-ec61a1af6214-arm-linux-gnueabihf.tar.gz
    1d2b5b7d60024a6900f35d0578e679617f8c529b4ecd8912731347370c6db7bc  guix-build-ec61a1af6214/output/arm64-apple-darwin/SHA256SUMS.part
    d8e1ed54e8e1a42675d3616b18cc8a94f8b917b0b62695ddf49f09b2d2589810  guix-build-ec61a1af6214/output/arm64-apple-darwin/bitcoin-ec61a1af6214-arm64-apple-darwin-codesigning.tar.gz
    89463d3f32f7d50b5f8fc0865b736e37475b0df12e18c76141b6ec2884249f8e  guix-build-ec61a1af6214/output/arm64-apple-darwin/bitcoin-ec61a1af6214-arm64-apple-darwin-unsigned.tar.gz
    a30f0d864fb1e9ad3c3fe45ec9469da701a6d4c1542a0ca5555169c0457e7c97  guix-build-ec61a1af6214/output/arm64-apple-darwin/bitcoin-ec61a1af6214-arm64-apple-darwin-unsigned.zip
    5ac65fcff345bf472e115615f76eccee46a67561d3eff1aa4164f8331cf577a3  guix-build-ec61a1af6214/output/dist-archive/bitcoin-ec61a1af6214.tar.gz
    7337f19d433e6c935c061862f655808fa40652a03df218d3d726336d6f0f33cd  guix-build-ec61a1af6214/output/powerpc64-linux-gnu/SHA256SUMS.part
    4e6731838883ebe886fc5ab6544f596212580790387a27c5142483632dee5a78  guix-build-ec61a1af6214/output/powerpc64-linux-gnu/bitcoin-ec61a1af6214-powerpc64-linux-gnu-debug.tar.gz
    0b7fa0cf691e36a86ee89159365b67e763b10a1cf005f754a9f9c06a6ffa5e3b  guix-build-ec61a1af6214/output/powerpc64-linux-gnu/bitcoin-ec61a1af6214-powerpc64-linux-gnu.tar.gz
    b0766d73260dba31ad71c1452638ef04c300e892516837f43cef4c870fd34084  guix-build-ec61a1af6214/output/riscv64-linux-gnu/SHA256SUMS.part
    a2c04450569b574e489b094305e70465e816870ae9c1360a10c5cd00edd3b541  guix-build-ec61a1af6214/output/riscv64-linux-gnu/bitcoin-ec61a1af6214-riscv64-linux-gnu-debug.tar.gz
    a5d663fc09a494805301999e03895848c756a8cf00448ffe87d512c90ab4c783  guix-build-ec61a1af6214/output/riscv64-linux-gnu/bitcoin-ec61a1af6214-riscv64-linux-gnu.tar.gz
    586f9bff2c991875c1ed46d63d24a1bfebc9e8c0cb8d4dcd3caec300ebb96ed8  guix-build-ec61a1af6214/output/x86_64-apple-darwin/SHA256SUMS.part
    8bdd2f4fc7d4d04fad244a3cc0ba39c3ed2593900f02755f0016a3801ac2b566  guix-build-ec61a1af6214/output/x86_64-apple-darwin/bitcoin-ec61a1af6214-x86_64-apple-darwin-codesigning.tar.gz
    dbffbb071b9dca0eaf635a32b2b65e8d67079861a42e9380f11acd613aec5bc0  guix-build-ec61a1af6214/output/x86_64-apple-darwin/bitcoin-ec61a1af6214-x86_64-apple-darwin-unsigned.tar.gz
    7d240210459483a1c20547820057cef7bf49a0cdd8a4157d036bb52547d9d720  guix-build-ec61a1af6214/output/x86_64-apple-darwin/bitcoin-ec61a1af6214-x86_64-apple-darwin-unsigned.zip
    3764f193a990afc2f770f40604ff1957a8b4f9100f075c37adcf5ade5e685e1d  guix-build-ec61a1af6214/output/x86_64-linux-gnu/SHA256SUMS.part
    f5fabae9230c593e080593f4a0ccb72a0dff7d43652d537eb468c3f58889cab3  guix-build-ec61a1af6214/output/x86_64-linux-gnu/bitcoin-ec61a1af6214-x86_64-linux-gnu-debug.tar.gz
    80f44480d1b94c0d9766ade50401850cc630f6fe7066d151ce0eaf0f000c2ee6  guix-build-ec61a1af6214/output/x86_64-linux-gnu/bitcoin-ec61a1af6214-x86_64-linux-gnu.tar.gz
    dffb5da2d984657f84b48dc3cd286c36e409c237791befad6561042c4d878741  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/SHA256SUMS.part
    2619605147945407ec045ba63ca68380b05820e2699be93d2dd77c97d4cac90d  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-codesigning.tar.gz
    cb805e830b1e15ecbf5bd04d9832cf6ce8b38fea4147d0ad459ed34dd2fe6f9e  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-debug.zip
    8b3704c8f3ac8c4b73ff36be18928ab3817868ac9af759a7fc299edac54900cf  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-setup-unsigned.exe
    e4e49cb278e95e942a3d0667acf408c8c43a0c15b44aa745686627b9925cb844  guix-build-ec61a1af6214/output/x86_64-w64-mingw32/bitcoin-ec61a1af6214-win64-unsigned.zip
    

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-06-24 11:51 UTC

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