diff options
author | Mark H Weaver <mhw@netris.org> | 2017-05-02 03:39:23 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2017-05-02 04:19:09 -0400 |
commit | bedba064267490f2d9f7ee44e5ec103aacc82611 (patch) | |
tree | ad51c20343ac4243c94c39bdaa6f2a8ded252340 /guix | |
parent | ee3401d0186f68f91ef4455e8e1df8a477a2c26a (diff) |
Add package/inherit.
* guix/packages.scm (package/inherit): New public macro.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/packages.scm | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/guix/packages.scm b/guix/packages.scm index 44f2c32fb7..8ead950739 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; @@ -105,6 +105,7 @@ package-cross-derivation package-output package-grafts + package/inherit transitive-input-references @@ -789,6 +790,16 @@ package and returns its new name after rewrite." (package-mapping rewrite (cut assq <> replacements))) +(define-syntax-rule (package/inherit p overrides ...) + "Like (package (inherit P) OVERRIDES ...), except that the same +transformation is done to the package replacement, if any. P must be a bare +identifier, and will be bound to either P or its replacement when evaluating +OVERRIDES." + (let loop ((p p)) + (package (inherit p) + overrides ... + (replacement (and=> (package-replacement p) loop))))) + ;;; ;;; Package derivations. |