>From 089b9741a734f0682a671df6c0c36dfefcbd407c Mon Sep 17 00:00:00 2001 From: nee Date: Mon, 9 Oct 2017 22:49:12 +0200 Subject: [PATCH] guix: gnu-build-system: warn about missing unzip input during unpack. --- guix/build/gnu-build-system.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index e37b75140..c16d15964 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -67,6 +67,21 @@ See https://reproducible-builds.org/specs/source-date-epoch/." #f dir)) +(define (unzip filepath) + "Unzip archive file. +Warn the user when unzip fails and the executable is not present." + (define exit-code (system* "unzip" filepath)) + (define program-not-found-code 32512) + (cond ((zero? exit-code) #t) + ((eqv? exit-code program-not-found-code) + (format (current-error-port) + "warning: Archive with .zip suffix failed to unpack. +Please add unzip as native-input to the package, +e.g. (native-inputs `((\"unzip\" ,unzip)))") + (newline (current-error-port)) + #f) + (else #f))) + (define* (set-paths #:key target inputs native-inputs (search-paths '()) (native-search-paths '()) #:allow-other-keys) @@ -154,7 +169,7 @@ working directory." #:keep-mtime? #t) #t) (and (if (string-suffix? ".zip" source) - (zero? (system* "unzip" source)) + (unzip source) (zero? (system* "tar" "xvf" source))) (chdir (first-subdirectory "."))))) -- 2.14.1