gnu: rust: Update to 1.67.

* gnu/packages/rust.scm (rust): Update to 1.67.
[arguments]: Add a phase to skip tests requiring mercurial. Extend the
custom 'patch-process-tests phase.
(rust-1.64)[arguments]: Adjust 'patch-cargo-checksums phase to patch
another file.
* guix/build/cargo-build-system.scm (package): Adjust to remove
Cargo.toml.orig file if it exists.
This commit is contained in:
Efraim Flashner 2023-02-20 17:48:11 +02:00
parent 1963daf94c
commit f4c3f2be94
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
2 changed files with 25 additions and 8 deletions

View file

@ -636,9 +636,10 @@ (define rust-1.64
((#:phases phases)
`(modify-phases ,phases
(replace 'patch-cargo-checksums
(lambda* _
(lambda _
(substitute* '("Cargo.lock"
"src/bootstrap/Cargo.lock")
"src/bootstrap/Cargo.lock"
"src/tools/rust-analyzer/Cargo.lock")
(("(checksum = )\".*\"" all name)
(string-append name "\"" ,%cargo-reference-hash "\"")))
(generate-all-checksums "vendor"))))))))))
@ -671,7 +672,7 @@ (define rust-1.67
;;; 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.67))
(package
(inherit base-rust)
(outputs (cons "rustfmt" (package-outputs base-rust)))
@ -713,6 +714,16 @@ (define-public rust
"#[ignore]\nfn finds_author_git")
(("fn finds_local_author_git")
"#[ignore]\nfn finds_local_author_git"))))
(add-after 'unpack 'disable-tests-requiring-mercurial
(lambda _
(substitute*
"src/tools/cargo/tests/testsuite/init/simple_hg_ignore_exists/mod.rs"
(("fn simple_hg_ignore_exists")
"#[ignore]\nfn simple_hg_ignore_exists"))
(substitute*
"src/tools/cargo/tests/testsuite/init/mercurial_autodetect/mod.rs"
(("fn mercurial_autodetect")
"#[ignore]\nfn mercurial_autodetect"))))
(add-after 'unpack 'patch-command-exec-tests
;; This test suite includes some tests that the stdlib's
;; `Command` execution properly handles in situations where
@ -746,9 +757,11 @@ (define-public rust
(string-append "\"" bash "/bin/sh\"")))
(substitute* "library/std/src/sys/unix/process/process_common/tests.rs"
(("fn test_process_mask")
"#[allow(unused_attributes)]
#[ignore]
fn test_process_mask")))))
"#[ignore]\nfn test_process_mask")
(("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")))))
(add-after 'unpack 'disable-interrupt-tests
(lambda _
;; This test hangs in the build container; disable it.

View file

@ -2,7 +2,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
@ -231,7 +231,11 @@ (define* (package #:key
(string-length ".tar.gz"))
".crate")))
(find-files "." "\\.tar\\.gz$"))))
(apply invoke `("cargo" "package" ,@cargo-package-flags)))
(begin
;;error: invalid inclusion of reserved file name Cargo.toml.orig in package source
(when (file-exists? "Cargo.toml.orig")
(delete-file "Cargo.toml.orig"))
(apply invoke `("cargo" "package" ,@cargo-package-flags))))
(format #t "Not installing cargo sources, skipping `cargo package`.~%"))
#t)