build-system/gnu: Fix search path computation with implicit inputs.

Reported by Andreas Enge <andreas@enge.fr>.

* guix/build-system/gnu.scm (standard-packages): New procedure.
  (standard-inputs): Use it instead of resolving things locally.
  (gnu-build)[implicit-search-paths]: Map over (standard-packages), not
  over STANDARD-INPUTS.
master
Ludovic Courtès 2013-04-09 19:01:21 +02:00
parent 6be960c7f7
commit 068cdcd07c
1 changed files with 10 additions and 4 deletions

View File

@ -135,6 +135,14 @@ use `--strip-all' as the arguments to `strip'."
;; Store passed to STANDARD-INPUTS.
(make-parameter #f))
(define (standard-packages)
"Return the list of (NAME PACKAGE OUTPUT) or (NAME PACKAGE) tuples of
standard packages used as implicit inputs of the GNU build system."
;; Resolve (gnu packages base) lazily to hide circular dependency.
(let ((distro (resolve-module '(gnu packages base))))
(module-ref distro '%final-inputs)))
(define standard-inputs
(memoize
(lambda (system)
@ -148,9 +156,7 @@ System: GCC, GNU Make, Bash, Coreutils, etc."
(z
(error "invalid standard input" z)))
;; Resolve (gnu packages base) lazily to hide circular dependency.
(let* ((distro (resolve-module '(gnu packages base)))
(inputs (module-ref distro '%final-inputs)))
(let ((inputs (standard-packages)))
(append inputs
(append-map (match-lambda
((name package _ ...)
@ -203,7 +209,7 @@ which could lead to gratuitous input divergence."
(package-native-search-paths p))
(_
'()))
implicit-inputs)
(standard-packages))
'()))
(define builder