diff options
author | Marius Bakke <mbakke@fastmail.com> | 2019-01-31 23:32:56 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2019-01-31 23:32:56 +0100 |
commit | 0747328e317de4bf936fab50e795d1e1523adfc1 (patch) | |
tree | 291d4f07a801b147d64faec31e4394c5cd46ce35 /guix/packages.scm | |
parent | df09e1d6e71f68a8fb44bcc9f13e625f9f9701a5 (diff) | |
parent | ff75441fcf0ba1212b0342f933a8999bafe60f03 (diff) | |
download | guix-patches-0747328e317de4bf936fab50e795d1e1523adfc1.tar guix-patches-0747328e317de4bf936fab50e795d1e1523adfc1.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'guix/packages.scm')
-rw-r--r-- | guix/packages.scm | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/guix/packages.scm b/guix/packages.scm index f191327718..8515bb7c6f 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -855,19 +855,27 @@ when CUT? returns true for a given package." #:optional (rewrite-name identity)) "Return a procedure that, when passed a package, replaces its direct and indirect dependencies (but not its implicit inputs) according to REPLACEMENTS. -REPLACEMENTS is a list of package pairs; the first element of each pair is the -package to replace, and the second one is the replacement. +REPLACEMENTS is a list of package pairs or a promise thereof; the first +element of each pair is the package to replace, and the second one is the +replacement. Optionally, REWRITE-NAME is a one-argument procedure that takes the name of a package and returns its new name after rewrite." (define (rewrite p) - (match (assq-ref replacements p) + (match (assq-ref (if (promise? replacements) + (force replacements) + replacements) + p) (#f (package (inherit p) (name (rewrite-name (package-name p))))) (new new))) - (package-mapping rewrite (cut assq <> replacements))) + (package-mapping rewrite + (lambda (package) + (assq package (if (promise? replacements) + (force replacements) + replacements))))) (define-syntax-rule (package/inherit p overrides ...) "Like (package (inherit P) OVERRIDES ...), except that the same |