me
/
guix
Archived
1
0
Fork 0

build-system/gnu: Turn #:phases into a gexp when cross-compiling.

Previously, we'd get this error:

  $ guix build --target=aarch64-linux-gnu r-minimal -d --no-grafts
  guix build: error: path ‘/gnu/store/[^-]+-glibc-[^-]+-static’ is not valid

This is because the sexp would be passed as an input of the surrounding
gexp in 'gnu-cross-build', and thus
"/gnu/store/[^-]+-glibc-[^-]+-static" would be interpreted as a source
file name, as in this example:

  scheme@(guix gexp)> #~(foo #$(list 'whatever "/gnu/store/[^-]+-glibc-[^-]+-static"))
  $11 = #<gexp (foo #<gexp-input (whatever "/gnu/store/[^-]+-glibc-[^-]+-static"):out>) 7f098badec30>
  scheme@(guix gexp)> (gexp-inputs $11)
  $12 = (#<gexp-input "/gnu/store/[^-]+-glibc-[^-]+-static":out>)

Fixes <https://issues.guix.gnu.org/59073>.
Reported by Christopher Baines <mail@cbaines.net>.

* guix/build-system/gnu.scm (gnu-cross-build): When PHASES is a pair,
pass it through 'sexp->gexp'.
master
Ludovic Courtès 2022-11-08 12:11:03 +01:00
parent 93be56a3ab
commit 3bd4b92f55
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 4 additions and 2 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -539,7 +539,9 @@ platform."
(map
search-path-specification->sexp
native-search-paths))
#:phases #$phases
#:phases #$(if (pair? phases)
(sexp->gexp phases)
phases)
#:locale #$locale
#:bootstrap-scripts #$bootstrap-scripts
#:configure-flags #$configure-flags