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/build') 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 @@ directory = '" port) #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