packages: Fix repacked file name extension when zstd is unavailable.

This is a follow-up commit to a869f4bef3 ("packages: Repack patched source
archives via zstd by default.").

* guix/packages.scm (patch-and-repack): Do not have xz fallback into the zstd
variable, which is confusing and caused the extension selection to be wrong
when the xz fallback was used.  Refine how PATH is set to avoid duplicates.

Change-Id: I580deba4de822eccf5f6fe53355b8ba57178c166
This commit is contained in:
Maxim Cournoyer 2024-01-20 22:50:19 -05:00 committed by Ludovic Courtès
parent 47c595b147
commit 3de22656ad
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -997,10 +997,7 @@ (define instantiate-patch
(bzip2 (lookup-input "bzip2"))
(lzip (lookup-input "lzip"))
(xz (lookup-input "xz"))
(zstd (or (lookup-input "zstd")
;; Fallback to xz in case zstd is not available, such as
;; for bootstrap packages.
xz))
(zstd (lookup-input "zstd"))
(patch (lookup-input "patch"))
(comp (and=> (compressor source-file-name) lookup-input))
(patches (map instantiate-patch patches)))
@ -1081,10 +1078,13 @@ (define (repack directory output)
locale (system-error-errno args)))))
(setenv "PATH"
(string-append #+zstd "/bin"
(if #+comp
(string-append ":" #+comp "/bin")
"")))
(string-join
(map (cut string-append <> "/bin")
;; Fallback to xz in case zstd is not
;; available, such as for bootstrap packages.
(delete-duplicates
(filter-map identity (list #+zstd #+xz #+comp))))
":"))
(setenv "ZSTD_NBTHREADS" (number->string (parallel-job-count)))