From f4c3f2be941160814aa9d3faf01aa0fb9bc7c54e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Feb 2023 17:48:11 +0200 Subject: [PATCH] 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. --- gnu/packages/rust.scm | 25 +++++++++++++++++++------ guix/build/cargo-build-system.scm | 8 ++++++-- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 325adb852f..8cfac41d06 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -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. diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index 5d7bfc8eb3..fbba554e9b 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 David Craven ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2019 Ivan Petkov -;;; Copyright © 2019-2022 Efraim Flashner +;;; Copyright © 2019-2023 Efraim Flashner ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2020 Marius Bakke ;;; @@ -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)