See the guideline and AI policy for information on the review process.
A summary of reviews will appear here.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
#36082 <sub><img src="https://drahtbot.space/ack_count/bitcoin/bitcoin/36082.svg"></sub> (ci: add Guix builds to CI by willcl-ark)
#35713 <sub><img src="https://drahtbot.space/ack_count/bitcoin/bitcoin/35713.svg"></sub> (Remove boost as a unit test runner by rustaceanrob)
#25573 <sub><img src="https://drahtbot.space/ack_count/bitcoin/bitcoin/25573.svg"></sub> (guix: produce a -static-pie bitcoind 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.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
DrahtBot added the label CI failed on Jul 31, 2026
DrahtBot
commented at 4:59 PM on July 31, 2026:
contributor
<!--85328a0da195eb286784d51f73fa0af9-->
🚧 At least one of the CI tasks failed.
<sub>Task lint: https://github.com/bitcoin/bitcoin/actions/runs/30643225657/job/91198112768</sub>
<sub>LLM reason (✨ experimental): CI failed because the shell lint (shellcheck) reported an unquoted variable in contrib/guix/libexec/build_linux.sh (SC2086: ${CMAKE_FLAGS} needs double quotes).</sub>
<details><summary>Hints</summary>
Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:
Possibly due to a silent merge conflict (the changes in this pull request being
incompatible with the current code in the target branch). If so, make sure to rebase on the latest
commit of the target branch.
A sanitizer issue, which can only be found by compiling with the sanitizer and running the
affected test.
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
</details>
in
ci/lint/requirements.txt:1
in
b40d3cf39boutdated
Yea, I think we should keep this matching. This was actually unused, so opened #35869, and added the comment there.
maflcko
commented at 8:27 AM on August 1, 2026:
member
Not sure if related, but on riscv64, I get:
<details><summary>output</summary>
INFO: Building b40d3cf39b9b for platform triple x86_64-linux-gnu:
...using reference timestamp: 1785510929
...running at most 4 jobs
...from worktree directory: '/b-c'
...bind-mounted in container to: '/bitcoin'
...in build directory: '/b-c/guix-build-b40d3cf39b9b/distsrc-b40d3cf39b9b-x86_64-linux-gnu'
...bind-mounted in container to: '/distsrc-base/distsrc-b40d3cf39b9b-x86_64-linux-gnu'
...outputting in: '/b-c/guix-build-b40d3cf39b9b/output/x86_64-linux-gnu'
...bind-mounted in container to: '/outdir-base/x86_64-linux-gnu'
ADDITIONAL FLAGS (if set)
ADDITIONAL_GUIX_COMMON_FLAGS:
ADDITIONAL_GUIX_ENVIRONMENT_FLAGS:
ADDITIONAL_GUIX_TIMEMACHINE_FLAGS:
Updating channel 'guix' from Git repository at 'https://codeberg.org/guix/guix.git'...
;;; note: source file /usr/share/guile/site/3.0/gnu/packages/tls.scm
;;; newer than compiled /usr/lib/riscv64-linux-gnu/guile/3.0/site-ccache/gnu/packages/tls.go
;;; note: source file /usr/share/guile/site/3.0/gnu/packages/tls.scm
;;; newer than compiled /usr/lib/riscv64-linux-gnu/guile/3.0/site-ccache/gnu/packages/tls.go
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
building /gnu/store/0mlr1yqh246722rgxglb21dnjayfjk4k-module-import-compiled.drv...
4% [######## ]note: keeping build directory `/tmp/guix-build-module-import-compiled.drv-1'
builder for `/gnu/store/0mlr1yqh246722rgxglb21dnjayfjk4k-module-import-compiled.drv' failed with exit code 1
build of /gnu/store/0mlr1yqh246722rgxglb21dnjayfjk4k-module-import-compiled.drv failed
View build log at '/var/log/guix/drvs/0m/lr1yqh246722rgxglb21dnjayfjk4k-module-import-compiled.drv.gz'.
cannot build derivation `/gnu/store/v4rb3bh316f7w618wh1llsmicpncgjdw-compute-guix-derivation.drv': 1 dependencies couldn't be built
guix time-machine: error: build of `/gnu/store/v4rb3bh316f7w618wh1llsmicpncgjdw-compute-guix-derivation.drv' failed
[ 1/82] Loading './gcrypt/hash.scm'...
[ 2/82] Loading './git.scm'...
[ 3/82] Loading './gnu/packages/bootstrap.scm'...
;;; Failed to autoload make-zlib-input-port in (zlib):
;;; no code for module (zlib)
;;; Failed to autoload make-zlib-input-port in (zlib):
;;; no code for module (zlib)
;;; Failed to autoload make-zlib-output-port in (zlib):
;;; no code for module (zlib)
;;; Failed to autoload make-zlib-output-port in (zlib):
;;; no code for module (zlib)
WARNING: Use of `load' in declarative module (guix ui). Add #:declarative? #f to your define-module invocation.
Backtrace:
In ice-9/psyntax.scm:
1230:36 19 (expand-top-sequence _ _ _ #f _ _ _)
1222:19 18 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
259:10 17 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) ?)
In ice-9/eval.scm:
293:34 16 (_ #<module (#{ g81}#) 33a280>)
In ice-9/boot-9.scm:
3409:4 15 (define-module* _ #:filename _ #:pure _ #:version _ # _ ?)
3422:24 14 (_)
222:29 13 (map1 _)
222:17 12 (map1 (((guix ui)) ((guix utils)) ((guix #)) ((# #)) # ?))
3326:17 11 (resolve-interface (guix ui) #:select _ #:hide _ # _ # _ ?)
In ice-9/threads.scm:
390:8 10 (_ _)
In ice-9/boot-9.scm:
3252:13 9 (_)
In ice-9/threads.scm:
390:8 8 (_ _)
In ice-9/boot-9.scm:
3536:20 7 (_)
2835:4 6 (save-module-excursion _)
3556:26 5 (_)
In unknown file:
4 (primitive-load-path "guix/ui" #<procedure df4780 at ic?>)
In ice-9/eval.scm:
626:19 3 (_ #<directory (guix ui) 1c9b280>)
293:34 2 (_ #<directory (guix ui) 1c9b280>)
223:20 1 (proc #<directory (guix ui) 1c9b280>)
In unknown file:
0 (%resolve-variable (5 (guile) spawn . #t) #<directory (?>)
ERROR: In procedure %resolve-variable:
error: spawn: unbound variable
~
~
~
~
~
~
~
~
~
"/var/log/guix/drvs/0m/lr1yqh246722rgxglb21dnjayfjk4k-module-import-compiled.drv.gz"
</details>
fanquake renamed this: guix: update time-machine to acf3d19725c9f588ccc60095067d91fe9c578ea7 guix: update time-machine on Aug 3, 2026
fanquake force-pushed on Aug 3, 2026
DrahtBot removed the label CI failed on Aug 3, 2026
fanquake referenced this in commit e27c179db2 on Aug 3, 2026
fanquake force-pushed on Aug 3, 2026
fanquake force-pushed on Aug 4, 2026
fanquake force-pushed on Aug 4, 2026
DrahtBot added the label CI failed on Aug 4, 2026
DrahtBot
commented at 9:24 AM on August 4, 2026:
contributor
<!--85328a0da195eb286784d51f73fa0af9-->
🚧 At least one of the CI tasks failed.
<sub>Task riscv32 bare metal, static libbitcoin_consensus: https://github.com/bitcoin/bitcoin/actions/runs/30891903732/job/91935697277</sub>
<sub>LLM reason (✨ experimental): CI failed because the newlib git submodule clone (https://sourceware.org/git/newlib-cygwin.git) failed during 01_base_install.sh (exit code 2).</sub>
<details><summary>Hints</summary>
Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:
Possibly due to a silent merge conflict (the changes in this pull request being
incompatible with the current code in the target branch). If so, make sure to rebase on the latest
commit of the target branch.
A sanitizer issue, which can only be found by compiling with the sanitizer and running the
affected test.
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
</details>
fanquake marked this as ready for review on Aug 4, 2026
DrahtBot removed the label CI failed on Aug 4, 2026
fanquake
commented at 12:49 PM on August 4, 2026:
member
If I apply this patch I can do a full build (all targets). It is a workaround (I don’t have enough background on this to be sure if correct fix, but I did want to share it)
maflcko
commented at 9:23 AM on September 16, 2026:
Same: Was included in #36233, so maybe that one can be merged first? (Also includes one commit from here, so should simplify this pull)
Kino1994 referenced this in commit d8b439b10d on Aug 9, 2026
willcl-ark
commented at 7:47 AM on August 12, 2026:
member
When building packages from manifest_codesign.scm (I think) I'm hitting a new error where python-elfesteem is using setup.py but does not declare python-setuptools as a dependency, causing a failure.
<details>
<summary>Details</summary>
phase `unpack' succeeded after 0.0 seconds
starting phase `ensure-no-mtimes-pre-1980'
phase `ensure-no-mtimes-pre-1980' succeeded after 0.0 seconds
starting phase `enable-bytecode-determinism'
phase `enable-bytecode-determinism' succeeded after 0.0 seconds
starting phase `ensure-no-cythonized-files'
phase `ensure-no-cythonized-files' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./elfcli: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/__init__.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/binary.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/cstruct.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/elf.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/elf_init.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/jclass_init.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/macho/common.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/minidump_init.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/new_cstruct.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/pe.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/pe_init.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./elfesteem/visual_studio_mangling.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./examples/minidump_to_pe.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./examples/otool.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./examples/readelf.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./examples/readpe.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./examples/test_pe.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./setup.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_all.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_elf_manipulation.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_intervals.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_macho_manipulation.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_minidump_manipulation.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_pe_manipulation.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_rprc_manipulation.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
patch-shebang: ./tests/test_visual_studio_mangling.py: changing `/usr/bin/env python' to `/gnu/store/1ad2yzr88hpnrg90l3p5vzmcxpsja511-python-wrapper-3.12.12/bin/python'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
running "python setup.py" with command "build" and parameters ()
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'setuptools'
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "python" arguments: ("-c" "import setuptools, tokenize;__file__='setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\\r\\n', '\\n');f.close();exec(compile(code, __file__, 'exec'))" "build") exit-status: 1 term-signal: #f stop-signal: #f>
phase `build' failed after 0.0 seconds
command "python" "-c" "import setuptools, tokenize;__file__='setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\\r\\n', '\\n');f.close();exec(compile(code, __file__, 'exec'))" "build" failed with status 1
build process 18 exited with status 256
</details>
willcl-ark
commented at 8:36 AM on August 12, 2026:
member
I also see the same error as hebasto and Jan on aarch64.
@janb84 fix seems interesting (in that it works), but it was a different direction than I was looking. ISTM that a compiler with a static libc should have no includes to fix, so not running fixincludes should be the goal (of a fix). Maybe something more like https://github.com/bitcoin/bitcoin/commit/be6c6c5a006c0b8ba3107f78926eef570726b15f
Even more ideal could be for this to be upstreamed into cross-gcc which could automatically add --disable-fixincludes whenever libc is false or something.
fanquake marked this as a draft on Aug 14, 2026
fanquake force-pushed on Aug 14, 2026
DrahtBot added the label CI failed on Aug 14, 2026
Kino1994 referenced this in commit 2db2e6355a on Aug 19, 2026
DrahtBot added the label Needs rebase on Aug 21, 2026
fanquake force-pushed on Sep 15, 2026
fanquake force-pushed on Sep 15, 2026
DrahtBot removed the label CI failed on Sep 15, 2026
DrahtBot removed the label Needs rebase on Sep 15, 2026
fanquake force-pushed on Sep 15, 2026
willcl-ark
commented at 6:41 PM on September 15, 2026:
member
Got a weird error building, but currently suspect it's a local issue:
The following derivations will be built:
/gnu/store/59kjsp5ms5rcrhwbgq9kz9l7019vg0c8-binutils-2.47.tar.bz2.drv
/gnu/store/14dgs6n3kmi8kmz1y4g79b2rzzr7y6wq-binutils-cross-x86_64-linux-gnu-2.47.drv
/gnu/store/x1y7kn6srjply84hda0bc9gvfkjlc6kc-ld-wrapper-x86_64-linux-gnu-0.drv
/gnu/store/cckczhnm3j48iv940xk5zrjragdd4dxd-gcc-cross-sans-libc-x86_64-linux-gnu-14.3.0.drv
/gnu/store/3ycxvz0jz04a9p9m7d1z5cjpbz4kascr-linux-libre-headers-cross-x86_64-linux-gnu-6.1.187.drv
/gnu/store/fk89r8kj031kxdzvba7gbb7vqw5m8ac9-linux-libre-headers-cross-x86_64-linux-gnu-6.1.187.drv
/gnu/store/qaqw686fk99bykvqkiv49l435zdiybxg-glibc-cross-x86_64-linux-gnu-2.31.drv
/gnu/store/n1abv693zfy7xifbkywhyqj40xmvdx0j-gcc-cross-x86_64-linux-gnu-14.3.0.drv
/gnu/store/648y4mkxvbx05wmpj3f82rn2prp4zkpb-x86_64-linux-gnu-toolchain-14.3.0.drv
/gnu/store/sijs19zavpwdw49g5w9g3wimc23qgvsk-profile.drv
building /gnu/store/59kjsp5ms5rcrhwbgq9kz9l7019vg0c8-binutils-2.47.tar.bz2.drv...
-sha256 hash mismatch for /gnu/store/p7akjafl7dmh5y7f2y9pm9ny8arqir2g-binutils-2.47.tar.bz2:
expected hash: 0pcch8fsljhl6svh0w7iqkxfdadvmybdy2k529ckgsrw6qba9pmh
actual hash: 1s0092jj7bi3bdjzp7fczyay3s2608v1s8dlrjcgiafdfn614s1h
hash mismatch for store item '/gnu/store/p7akjafl7dmh5y7f2y9pm9ny8arqir2g-binutils-2.47.tar.bz2'
build of /gnu/store/59kjsp5ms5rcrhwbgq9kz9l7019vg0c8-binutils-2.47.tar.bz2.drv failed
View build log at '/var/log/guix/drvs/59/kjsp5ms5rcrhwbgq9kz9l7019vg0c8-binutils-2.47.tar.bz2.drv.gz'.
note: keeping build directory `/tmp/guix-build-binutils-2.47.tar.bz2.drv-0'
cannot build derivation `/gnu/store/14dgs6n3kmi8kmz1y4g79b2rzzr7y6wq-binutils-cross-x86_64-linux-gnu-2.47.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/sijs19zavpwdw49g5w9g3wimc23qgvsk-profile.drv': 1 dependencies couldn't be built
guix shell: error: build of `/gnu/store/sijs19zavpwdw49g5w9g3wimc23qgvsk-profile.drv' failed
error: recipe `guix-build` failed with exit code 1
achow101 referenced this in commit 5c494a50c8 on Sep 15, 2026
achow101 referenced this in commit 66eeac216a on Sep 15, 2026
hebasto referenced this in commit 7dedc4545a on Sep 16, 2026
DrahtBot added the label Needs rebase on Sep 16, 2026
fanquake force-pushed on Sep 16, 2026
DrahtBot removed the label Needs rebase on Sep 16, 2026
fanquake force-pushed on Sep 16, 2026
sedited referenced this in commit 93229d8cdf on Sep 18, 2026
DrahtBot added the label Needs rebase on Sep 29, 2026
fanquake force-pushed on Sep 30, 2026
fanquake force-pushed on Sep 30, 2026
DrahtBot removed the label Needs rebase on Sep 30, 2026
guix: disable fixincludes on gcc-sans-libc86abf9df3e
guix: update time-machine to 5fe25a5142e744b134ccaa6d18e6d056e22b0c1588866ccf8b
guix: revert to upstream osslsigncodebf7a9efdcc
guix: update ninja import
manifest_build.scm:279:8: warning: 'ninja' is deprecated, use '(@ (gnu packages build-tools) ninja)' instead
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-10-06 11:51 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me