diff options
Diffstat (limited to 'guix/packages.scm')
-rw-r--r-- | guix/packages.scm | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/guix/packages.scm b/guix/packages.scm index bb7d873973..c1247b71ac 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -113,13 +113,16 @@ (snippet origin-snippet (default #f)) ; sexp or #f (patch-flags origin-patch-flags ; list of strings (default '("-p1"))) + + ;; Patching requires Guile, GNU Patch, and a few more. These two fields are + ;; used to specify these dependencies when needed. (patch-inputs origin-patch-inputs ; input list or #f (default #f)) (modules origin-modules ; list of module names (default '())) (imported-modules origin-imported-modules ; list of module names (default '())) - (patch-guile origin-patch-guile ; derivation or #f + (patch-guile origin-patch-guile ; package or #f (default #f))) (define-syntax base32 @@ -274,11 +277,10 @@ corresponds to the arguments expected by `set-path-environment-variable'." ("lzip" ,(ref '(gnu packages compression) 'lzip)) ("patch" ,(ref '(gnu packages base) 'patch))))) -(define (default-guile store system) - "Return a derivation of d the default Guile package for SYSTEM." - (let* ((distro (resolve-interface '(gnu packages base))) - (guile (module-ref distro 'guile-final))) - (package-derivation store guile system))) +(define (default-guile) + "Return the default Guile package for SYSTEM." + (let ((distro (resolve-interface '(gnu packages base)))) + (module-ref distro 'guile-final))) (define* (patch-and-repack store source patches #:key @@ -404,7 +406,13 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." guile-for-build) ;; Patches and/or a snippet. (let ((source (method store uri 'sha256 sha256 name - #:system system))) + #:system system)) + (guile (match (or guile-for-build (%guile-for-build) + (default-guile)) + ((? package? p) + (package-derivation store p system)) + ((? derivation? drv) + drv)))) (patch-and-repack store source patches #:inputs inputs #:snippet snippet @@ -412,9 +420,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." #:system system #:modules modules #:imported-modules modules - #:guile-for-build (or guile-for-build - (%guile-for-build) - (default-guile store system))))) + #:guile-for-build guile))) ((and (? string?) (? direct-store-path?) file) file) ((? string? file) |