#35855 guix: update time-machine
| Reviewability | Reviews | Agreement | Size | ||||
|---|---|---|---|---|---|---|---|
| #35855 guix: update time-machine | Ready | 0 | Blocked | 0 + 27 tests | |||
|
|
|
|
| |||
Reviewability: ReadyStalePaused Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs. Size: lines added or modified outside tests, then in tests; greener = smaller. | |||||||
Goal
Updates the Guix time-machine pinned commit to a newer upstream revision and adjusts build manifests for updated package recipes. It switches the build environment to CMake 4.3.3 with CMAKE_LINK_WARNING_AS_ERROR, drops a custom osslsigncode definition in favor of upstream Guix, updates python-lief to 1.0.0, and disables fixincludes on gcc-sans-libc.
Problem: The pinned Guix build environment lacks newer toolchains such as GCC 16 and Clang 22/23, relies on an out-of-date CMake version, triggers deprecation warnings on package module imports, and requires an in-tree package override for osslsigncode that upstream Guix now provides natively.
Evidence of importance:
- PR description highlights upstream toolchain upgrades: "cmake `3.31.10` -> `4.3.3`", "Default Clang/LLVM updated to `22.x` and `23.x` available", "GCC 16 now available", and "python-lief `0.17.6` -> `1.0.0`".
- Commit 1fdb268244 addresses an upstream deprecation warning: "manifest_build.scm:279:8: warning: 'ninja' is deprecated, use '(@ (gnu packages build-tools) ninja)' instead".
Scope: Touches only deterministic Guix build scripts, package manifests, and the lint dependency requirement for lief.
Risk of a mistake: medium (build). Flaws in Guix manifests or toolchain definitions could break deterministic release builds or produce broken release binaries.
Changed since the previous assessment: Rebased following the merge of related cleanups (#35869, #35870), with the core time-machine bump and CMake 4 adaptations unchanged.
Reviewability
Ready
Nothing known that would invalidate a review now.
Waiting on (from the thread read):
- author: address Guix build failures on riscv64 and aarch64 hosts and dependency issue on codesign manifest 2026-08-01
Agreement
Blocked
objection that needs a change, nobody has replied (maflcko, janb84, hebasto, willcl-ark)
Thread notes: Added test report from willcl-ark with Guix build hashes on commit 53d7d42e273c.
Objections, suggestions, and questions:
| Reviewer | Type | Harm, request, or question | Status | Must be | Author replied | Quote |
|---|---|---|---|---|---|---|
| maflcko (member) | objection, correctness | Guix time-machine fails on riscv64 with an unbound variable error | open | changed | no | 2026-08-01: 'Not sure if related, but on riscv64, I get: ... ERROR: In procedure %resolve-variable: error: spawn: unbound variable' |
| maflcko (member) | suggestion, maintenance | Add a trailing comment indicating the version in Guix to keep them matching in ci/lint/requirements.txt | answered · author confirmed and opened PR #35869 to add the comment | answered | yes | 2026-08-01: 'is this meant to exactly match the version in guix? If yes, could add a trailing comment?' Status from: 2026-08-03: fanquake: 'Yea, I think we should keep this matching. This was actually unused, so opened #35869, and added the comment there.' |
| janb84 (member) | objection, correctness | Guix build fails on an aarch64 host because BUILD_SYSTEM_HEADER_DIR (/usr/include) does not exist during gcc-cross-sans-libc build | open | changed | by others | 2026-08-04: 'i'm having some difficulties building on aarch64 (tried 2x) guix shell: error: build of `/gnu/store/4h3gfkxbwqbkkzc89rsc431vk8kbr30n-glibc-cross-aarch64-linux-gnu-2.31.drv' failed' |
| hebasto (member) | objection, correctness | Guix build fails on an aarch64 host during gcc-cross-sans-libc build due to missing system headers in fixincludes | open | changed | no | 2026-08-04: 'The directory (BUILD_SYSTEM_HEADER_DIR) that should contain system headers does not exist: /usr/include make[3]: *** [Makefile:3443: stmp-fixinc] Error 1' |
| janb84 (member) | suggestion, approach | Suggest a workaround patch for manifest_build.scm using cross-libc with static-bash disabled to allow aarch64 builds to complete | answered · willcl-ark discussed alternative approaches avoiding fixincludes | answered | by others | 2026-08-05: '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)' Status from: 2026-08-12: willcl-ark: '@janb84 fix seems interesting (in that it works), but it was a different direction than I was looking.' |
| maflcko (member) | suggestion, maintenance | Add a trailing version comment in manifest_build.scm | answered · author and reviewer discussed clarification and other PRs covering it | answered | yes | 2026-08-07: 'nit: Could add a trailing comment about the version here too?' Status from: 2026-09-16: maflcko: 'It is just the trailing version comment:' |
| maflcko (member) | suggestion, maintenance | Add a trailing version comment in manifest_gui.scm | answered · author replied asking for clarification, reviewer pointed to PR #36233 | answered | yes | 2026-08-07: 'Same here?' Status from: 2026-09-16: maflcko: 'Same: Was included in https://github.com/bitcoin/bitcoin/pull/36233, so maybe that one can be merged first?' |
| willcl-ark (member) | objection, correctness | Building packages from manifest_codesign.scm fails because python-elfesteem requires python-setuptools which is not declared as a dependency | open | changed | no | 2026-08-12: '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 f' |
Support:
- 0xB10C (member) (2026-08-04) [tested]: Successfully built and matched Guix output SHA256 hashes on x86_64
- willcl-ark (member) (2026-08-04) [tested]: Successfully built and matched Guix output SHA256 hashes on x86_64
- willcl-ark (member) (2026-10-28) [tested]: Successfully built Guix outputs on x86_64 for commit 53d7d42e273c
Participants:
- maflcko (member, objection, 7 statements 2026-08-01 to 2026-09-16): reported build failure on riscv64 and suggested adding version comments
- 0xB10C (member, support, 1 statements 2026-08-04 to 2026-08-04): tested Guix build and matched hashes on x86_64
- hebasto (member, objection, 1 statements 2026-08-04 to 2026-08-04): reported build failure on aarch64 host during gcc-cross-sans-libc build
- janb84 (member, objection, 3 statements 2026-08-04 to 2026-08-05): reported build failure on aarch64 host and offered workaround patch
- willcl-ark (member, objection, 6 statements 2026-08-04 to 2026-10-28): reported elfesteem dependency issue on codesign manifest, tested Guix builds on x86_64
Files
58 lines under test/bench/ci.
- contrib/guix/manifest_codesign.scm +1/-15
- contrib/guix/toolchains.scm +13/-3
- contrib/guix/manifest_gui.scm +4/-5
- contrib/guix/libexec/build_linux.sh +3/-3
- contrib/guix/manifest_build.scm +2/-2
- contrib/guix/libexec/build_win.sh +2/-1
- ci/lint/requirements.txt +1/-1
- contrib/guix/libexec/prelude.bash +1/-1
Card
The short text the ranking pass compares across PRs.
Updates the Guix time-machine pinned commit to a newer upstream revision and updates package definitions across deterministic build manifests. It switches to CMake 4.3.3 with CMAKE_LINK_WARNING_AS_ERROR, reverts osslsigncode to upstream Guix, bumps lief to 1.0.0, and disables fixincludes on cross-gcc. This keeps release builds reproducible on modern toolchains and makes GCC 16 and Clang 22/23 available for Guix builds.
Data
thread read through 2026-10-28 (22 statements), head 53d7d42e27
labels: Build system · draft
Categories
Build and CI
P3 · platform fix
Updates the deterministic Guix environment to modern toolchains including CMake 4.3.3 and Clang 22/23 while dropping in-tree overrides. While valuable for keeping release build environments current and addressing deprecation warnings, updating toolchains without an impending release deadline is deferrable.
Membership: Touches contrib/guix/ manifests and build scripts under the 'Build system' label to bump the pinned Guix time-machine commit.
Factors: security/stability 1, bug 0, performance 0, user value 0, leverage 1