From 3bd4b92f55f40119349e39902a9b800de98040d2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 8 Nov 2022 12:11:03 +0100 Subject: build-system/gnu: Turn #:phases into a gexp when cross-compiling. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 = #) 7f098badec30> scheme@(guix gexp)> (gexp-inputs $11) $12 = (#) Fixes . Reported by Christopher Baines . * guix/build-system/gnu.scm (gnu-cross-build): When PHASES is a pair, pass it through 'sexp->gexp'. --- guix/build-system/gnu.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'guix/build-system') diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index 8eea1cd4c2..e62ee18367 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -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 +;;; Copyright © 2012-2022 Ludovic Courtès ;;; ;;; 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 -- cgit v1.2.3