From 1963daf94c529e0ae5e5e2e7c738ffbae94dab4e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 10 Nov 2021 19:48:12 +0200 Subject: build: cargo-build-system: Don't try to package when skipping build. * guix/build/cargo-build-system.scm (package): If the package isn't going to be built then use the source instead. --- guix/build/cargo-build-system.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'guix') diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index 41766228c2..5d7bfc8eb3 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm @@ -210,12 +210,28 @@ (define* (check #:key #t)) (define* (package #:key + source + skip-build? install-source? (cargo-package-flags '("--no-metadata" "--no-verify")) #:allow-other-keys) "Run 'cargo-package' for a given Cargo package." (if install-source? - (apply invoke `("cargo" "package" ,@cargo-package-flags)) + (if skip-build? + (begin + (install-file source "target/package") + (with-directory-excursion "target/package" + (for-each + (lambda (file) + (make-file-writable file) + ;; Strip the hash and replace '.tar.gz' with '.crate'. + (rename-file file + (string-append (string-drop-right + (string-drop file 35) + (string-length ".tar.gz")) + ".crate"))) + (find-files "." "\\.tar\\.gz$")))) + (apply invoke `("cargo" "package" ,@cargo-package-flags))) (format #t "Not installing cargo sources, skipping `cargo package`.~%")) #t) -- cgit v1.2.3 From f4c3f2be941160814aa9d3faf01aa0fb9bc7c54e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Feb 2023 17:48:11 +0200 Subject: 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(-) (limited to 'guix') 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) -- cgit v1.2.3