~ruther/guix-local

e4925e00ca420737556e2039b4fa1c40121ee567 — Ludovic Courtès 8 years ago 2718a9c
packages: Use Guile 2.0 for grafting.

Works around <https://bugs.gnu.org/28211>.
Reported by Marius Bakke <mbakke@fastmail.com>.

* guix/packages.scm (guile-2.0): New procedure.
(package-derivation, package-cross-derivation): Use it when computing
the #:guile argument to 'graft-derivation'.
1 files changed, 9 insertions(+), 2 deletions(-)

M guix/packages.scm
M guix/packages.scm => guix/packages.scm +9 -2
@@ 414,6 414,13 @@ derivations."
  (let ((distro (resolve-interface '(gnu packages commencement))))
    (module-ref distro 'guile-final)))

(define (guile-2.0)
  "Return Guile 2.0."
  ;; FIXME: This is used as a workaround for <https://bugs.gnu.org/28211> when
  ;; grafting packages.
  (let ((distro (resolve-interface '(gnu packages guile))))
    (module-ref distro 'guile-2.0)))

(define* (default-guile-derivation #:optional (system (%current-system)))
  "Return the derivation for SYSTEM of the default Guile package used to run
the build code of derivation."


@@ 1145,7 1152,7 @@ This is an internal procedure."
                  (()
                   drv)
                  (grafts
                   (let ((guile (package-derivation store (default-guile)
                   (let ((guile (package-derivation store (guile-2.0)
                                                    system #:graft? #f)))
                     ;; TODO: As an optimization, we can simply graft the tip
                     ;; of the derivation graph since 'graft-derivation'


@@ 1171,7 1178,7 @@ system identifying string)."
                   (graft-derivation store drv grafts
                                     #:system system
                                     #:guile
                                     (package-derivation store (default-guile)
                                     (package-derivation store (guile-2.0)
                                                         system #:graft? #f))))
                drv))))