#36233 guix: Update time-machine to `60f6956aeffa7f30285745bd0ea615e9acfc74f8`
https://github.com/bitcoin/bitcoin/pull/36233 · · +27/-5 in 3 files, 2 commits · labels: Build system, DrahtBot Guix build requested · draft
Goal
- Enable native reproducible Guix builds on RISC-V hardware
- Bypass failing upstream tests and fix dependencies when building on riscv64 hosts
Updates the Guix time-machine commit to enable native builds on RISC-V architectures and bumps python-lief in CI lint requirements to match. In manifest_gui.scm, it disables tests for python-psutil, python-pytest-xprocess, and python-sh when building python-lief on riscv64 to bypass upstream test failures.
Problem: Running Guix builds natively on RISC-V fails because python-lief 0.17.5 transitively depends on python-msgspec which lacked riscv64 support, and subsequent test suites fail on riscv64 hosts.
Category: Build and CI (#11 of 55)
P3 · platform fix
- P3 because it fixes native builds on RISC-V for developers running riscv64 hardware
- Native RISC-V builds are not a tier-one release requirement
- Updates the build commit cleanly without breaking reproducibility on other hosts
P3 because fixing native Guix builds on RISC-V is a worthwhile platform fix for developers running riscv64 hardware, but native RISC-V building is not a tier-one release requirement. The PR also bumps the time-machine cleanly without breaking reproducibility for other hosts.
Membership: Modifies Guix reproducible build manifests, the time-machine pin, and CI lint requirements.
Factors: security/stability 0, bug 1, performance 0, user value 1, leverage 1
Reviewability: Ready
- Ready for review
- Deterministic build hashes match across testers on x86_64 and aarch64
Deterministic build hashes match across four independent testers on x86_64 and aarch64; review of the Scheme modifications is not expected to be invalidated.
Author status: active, running native verification on RISC-V hardware
Open concerns:
- Native RISC-V SBC compilation takes a long time, and author's local verification on hardware is in progress.
Resolved concerns:
- Initial failure on aarch64 due to missing distutils in rust build environment was resolved by updating the target time-machine commit.
- Inline spelling nit in comments addressed by the author.
Agreement: Strong
- Strong consensus with multiple contributors verifying matching outputs
- Signed review approval on the latest commit (maflcko)
- Verified identical Guix build hashes on x86_64 (fanquake, willcl-ark, Sjors)
- Verified identical Guix build hashes on x86_64 and aarch64 (hebasto)
Multiple contributors verified identical Guix outputs and maflcko provided a signed review ACK.
Four contributors verified that outputs match across architectures, fanquake and hebasto resolved earlier build issues, and maflcko signed a review ACK.
- maflcko provided a signed review ACK on the latest commit
- fanquake, willcl-ark, and Sjors confirmed matching Guix hashes on x86_64
- hebasto confirmed matching hashes on x86_64 and aarch64
Review verdicts (DrahtBot): 1
- ACK: maflcko
Files
32 lines under test/bench/ci.
- contrib/guix/manifest_gui.scm +25/-3
- ci/lint/requirements.txt +1/-1
- contrib/guix/libexec/prelude.bash +1/-1
Card
This PR updates the Guix time-machine pin and overrides test execution for three transitive python-lief dependencies that fail when compiling natively on riscv64 hosts. It resolves issue #36232 to permit native Guix builds on RISC-V hardware without needing extensive toolchain upgrades. Multiple reviewers have independently reproduced identical Guix output hashes on x86_64 and aarch64, and the change has a signed review ACK from maflcko. It is currently in draft while the author finishes a slow build on a native RISC-V board, but the patch is functional and reviewable.