kiasoc5 wrote 2 years ago
(address . guix-patches@gnu.org)(name . kiasoc5)(address . kiasoc5@disroot.org)
The bootstrap works up to 1.63.0. When compiling 1.64.0 there is a checksum error for vendored crates:
```
starting phase `build'
Building rustbuild
error: checksum for `unicode-ident v1.0.0` changed between lock files
this could be indicative of a few possible errors:
* the lock file is corrupt
* a replacement source in use (e.g., a mirror) returned a different checksum
* the source itself may be corrupt in one way or another
unable to verify that `unicode-ident v1.0.0` is the same as when the lockfile was generated
failed to run: /gnu/store/djw2bdjyrx5r53k1bhd5v97zhrq9zzcy-rust-1.63.0-cargo/bin/cargo build --manifest-path /tmp/guix-build-rust-1.64.0.drv-0/rustc-1.64.0-src/src/bootstrap/Cargo.toml --frozen
Build completed unsuccessfully in 0:00:00
```
The crate with bad checksum changes with every guix build, there is some nondeterminism here.
* gnu/packages/rust.scm (rust-1.61, rust-1.62, rust-1.63, rust-1.64, rust): Add rust-1.61, rust-1.62, rust-1.63, rust,-1.64, and update rust to be based on rust-1.64 instead of rust-1.60.
---
gnu/packages/rust.scm | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
Toggle diff (56 lines)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index c4bb7d5292..aa7776c882 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -607,6 +607,38 @@ (define rust-1.60
;; * error: unknown codegen option: `symbol-mangling-version`
rust-1.59 "1.60.0" "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0"))
+(define rust-1.61
+ (let ((base-rust
+ (rust-bootstrapped-package
+ rust-1.60 "1.61.0" "1vfs05hkf9ilk19b2vahqn8l6k17pl9nc1ky9kgspaascx8l62xd")))
+ (package
+ (inherit base-rust)
+ (arguments
+ (substitute-keyword-arguments (package-arguments base-rust)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'disable-tests-with-sigint
+ ;; These tests rely on killing a process with SIGINT which
+ ;; fails in the build container.
+ (lambda _
+ (substitute* "library/std/src/sys/unix/process/process_common/tests.rs"
+ (("fn test_process_group_posix_spawn")
+ "#[ignore]\nfn test_process_group_posix_spawn")
+ (("fn test_process_group_no_posix_spawn")
+ "#[ignore]\nfn test_process_group_no_posix_spawn")))))))))))
+
+(define rust-1.62
+ (rust-bootstrapped-package
+ rust-1.61 "1.62.1" "0gqkg34ic77dcvsz69qbdng6g3zfhl6hnhx7ha1mjkyrzipvxb3j"))
+
+(define rust-1.63
+ (rust-bootstrapped-package
+ rust-1.62 "1.63.0" "1l4rrbzhxv88pnfq94nbyb9m6lfnjwixma3mwjkmvvs2aqlq158z"))
+
+(define rust-1.64
+ (rust-bootstrapped-package
+ rust-1.63 "1.64.0" "018j720b2n12slp4xk64jc6shkncd46d621qdyzh2a8s3r49zkdk"))
+
;;; Note: Only the latest versions of Rust are supported and tested. The
;;; intermediate rusts are built for bootstrapping purposes and should not
;;; be relied upon. This is to ease maintenance and reduce the time
@@ -615,7 +647,7 @@ (define rust-1.60
;;; Here we take the latest included Rust, make it public, and re-enable tests
;;; and extra components such as rustfmt.
(define-public rust
- (let ((base-rust rust-1.60))
+ (let ((base-rust rust-1.64))
(package
(inherit base-rust)
(outputs (cons "rustfmt" (package-outputs base-rust)))
base-commit: 408a4ed071c9c52de207d799a698781d49fa727d
--
2.37.3