From 4f5f1d98efe4343cd301d684094a00b82e069f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 28 Feb 2021 20:53:00 +0100 Subject: [PATCH] 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 ()[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. --- guix/packages.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index 36e55c0a42..cbe8004888 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -276,8 +276,8 @@ (define-record-type* (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! 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)) (($ 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)