packages: Default origin 'patch-flags' is a gexp.

Using a gexp instead of a list means that 'gexp->sexp' & co. do not need
to scan that list for file-like objects.

* guix/packages.scm (<origin>)[patch-flags]: Default to
%DEFAULT-PATCH-FLAGS.
(%default-patch-flags): New variable.
(patch-and-repack): #:flags defaults to %DEFAULT-PATCH-FLAGS.
(origin->derivation): Don't expect FLAGS to be a list.
This commit is contained in:
Ludovic Courtès 2021-02-28 20:53:00 +01:00
parent 9e5812ac59
commit 4f5f1d98ef
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -276,8 +276,8 @@ (define-record-type* <origin>
(default '()) (delayed))
(snippet origin-snippet (default #f)) ; sexp or #f
(patch-flags origin-patch-flags ; list of strings
(default '("-p1")))
(patch-flags origin-patch-flags ; string-list gexp
(default %default-patch-flags))
;; Patching requires Guile, GNU Patch, and a few more. These two fields are
;; used to specify these dependencies when needed.
@ -325,6 +325,9 @@ (define (print-origin origin port)
(set-record-type-printer! <origin> print-origin)
(define %default-patch-flags
#~("-p1"))
(define (origin-actual-file-name origin)
"Return the file name of ORIGIN, either its 'file-name' field or the file
name of its URI."
@ -594,7 +597,7 @@ (define* (patch-and-repack source patches
#:key
inputs
(snippet #f)
(flags '("-p1"))
(flags %default-patch-flags)
(modules '())
(guile-for-build (%guile-for-build))
(system (%current-system)))
@ -1622,7 +1625,7 @@ (define* (origin->derivation origin
(content-hash-value hash)
name #:system system))
(($ <origin> uri method hash name (= force (patches ...)) snippet
(flags ...) inputs (modules ...) guile-for-build)
flags inputs (modules ...) guile-for-build)
;; Patches and/or a snippet.
(mlet %store-monad ((source (method uri
(content-hash-algorithm hash)