From 98be4efdb8a39aca9ff839d57aba0905bd3caa02 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 20 Feb 2025 14:16:55 +0200 Subject: [PATCH] guix build: Honor '--system' with '--manifest'. * guix/scripts/build.scm (options->things-to-build): Wrap the manifest build option with the result of the '--system' option. Change-Id: I1c3ff93af56bb659ddc00e1872c769cfc5e7a0d5 --- guix/scripts/build.scm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index f0a637a2ef5..dfc37d01d85 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -706,15 +706,19 @@ values."))))))))) (ensure-list (load* file (make-user-module '())))) result)))) (('manifest . manifest) - (loop tail 'regular - (append (map manifest-entry-item - (manifest-entries - (ensure-manifest - (load* manifest - (make-user-module '((guix profiles) - (gnu)))) - manifest))) - result))) + ;; Otherwise '--system' is ignored. + ;; Wrap the loop instead of adjusting each item so that manifest + ;; items can individually be for different systems. + (parameterize ((%current-system system)) + (loop tail 'regular + (append (map manifest-entry-item + (manifest-entries + (ensure-manifest + (load* manifest + (make-user-module '((guix profiles) + (gnu)))) + manifest))) + result)))) (('expression . str) (loop tail 'regular (append (append-map for-type (ensure-list (read/eval str)))