From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:49966) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ik3C3-0002zG-N9 for guix-patches@gnu.org; Wed, 25 Dec 2019 04:43:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ik3C2-0004An-CU for guix-patches@gnu.org; Wed, 25 Dec 2019 04:43:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47323) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ik3C2-0004Ae-8z for guix-patches@gnu.org; Wed, 25 Dec 2019 04:43:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ik3C2-0000M7-3H for guix-patches@gnu.org; Wed, 25 Dec 2019 04:43:02 -0500 Subject: [bug#38612] Pass system and target arguments to gexp->file. Resent-Message-ID: References: <87a77ug6vv.fsf@gmail.com> <8736dl8wxq.fsf@gmail.com> <87d0cipt6z.fsf@gnu.org> <87r20t7r0j.fsf@gmail.com> From: Mathieu Othacehe In-reply-to: <87r20t7r0j.fsf@gmail.com> Date: Wed, 25 Dec 2019 10:42:48 +0100 Message-ID: <87imm468rr.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 38612@debbugs.gnu.org --=-=-= Content-Type: text/plain Hello, Turns out two more patches in the same vein are needed in (gnu services) and (gnu system). They are attached here. Thanks, Mathieu --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-system-operating-system-boot-parameters-file-Fix-cro.patch >From a05baf4f4328ce2ca6da6860f6e596cd7559a08a Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Tue, 24 Dec 2019 18:24:37 +0100 Subject: [PATCH 1/2] system: operating-system-boot-parameters-file: Fix cross-compilation. * gnu/system.scm (operating-system-boot-parameters-file): Add system and target arguments and pass them to gexp->file call, (operating-system-directory-base-entries): pass current system and target to operating-system-boot-parameters-file procedure. --- gnu/system.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index abdbb081e6..e7af7e7b47 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -470,7 +470,10 @@ value of the SYSTEM-SERVICE-TYPE service." (let ((locale (operating-system-locale-directory os))) (mlet %store-monad ((kernel -> (operating-system-kernel os)) (initrd -> (operating-system-initrd-file os)) - (params (operating-system-boot-parameters-file os))) + (params (operating-system-boot-parameters-file + os + #:system (%current-system) + #:target (%current-target-system)))) (return `(("kernel" ,kernel) ("parameters" ,params) ("initrd" ,initrd) @@ -1048,8 +1051,12 @@ such as '--root' and '--load' to ." (_ device))) -(define* (operating-system-boot-parameters-file os - #:key system-kernel-arguments?) +(define* (operating-system-boot-parameters-file + os + #:key + system-kernel-arguments? + system + target) "Return a file that describes the boot parameters of OS. The primary use of this file is the reconstruction of GRUB menu entries for old configurations. @@ -1085,7 +1092,9 @@ being stored into the \"parameters\" file)." (device #$(device->sexp (boot-parameters-store-device params))) (mount-point #$(boot-parameters-store-mount-point params)))) - #:set-load-path? #f))) + #:set-load-path? #f + #:system system + #:target target))) (define-gexp-compiler (operating-system-compiler (os ) system target) -- 2.24.1 --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=0002-services-Fix-cross-compilation.patch Content-Transfer-Encoding: quoted-printable >From 0ce67afc4f33074e20824751c22ba01cf6a3e184 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 25 Dec 2019 09:49:53 +0100 Subject: [PATCH 2/2] services: Fix cross-compilation. * gnu/services.scm (system-derivation): Pass current system and target at b= ind time to lower-object, (compute-boot-script): also pass current system and target at bind time to gexp->file. --- gnu/services.scm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index e7a3a95e43..e6f8ae0fb0 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2015, 2016, 2017, 2018, 2019 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2016 Chris Marusich +;;; Copyright =C2=A9 2019 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -321,11 +322,15 @@ This is a shorthand for (map (lambda (svc) ...) %base= -services)." (define (system-derivation mentries mextensions) "Return as a monadic value the derivation of the 'system' directory containing the given entries." - (mlet %store-monad ((entries mentries) + (mlet %store-monad ((system (current-system)) + (target (current-target-system)) + (entries mentries) (extensions (sequence %store-monad mextensions))) (lower-object (file-union "system" - (append entries (concatenate extensions)))))) + (append entries (concatenate extensions))) + system + #:target target))) =20 (define system-service-type ;; This is the ultimate service type, the root of the service DAG. The @@ -346,9 +351,13 @@ system profile, boot script, and so on."))) ;; order. That is, user extensions would come first, and extensions add= ed ;; by 'essential-services' (e.g., running shepherd) are guaranteed to co= me ;; last. - (gexp->file "boot" - ;; Clean up and activate the system, then spawn shepherd. - #~(begin #$@(reverse gexps)))) + (mlet %store-monad ((system (current-system)) + (target (current-target-system))) + (gexp->file "boot" + ;; Clean up and activate the system, then spawn shepherd. + #~(begin #$@(reverse gexps)) + #:system system + #:target target))) =20 (define (boot-script-entry mboot) "Return, as a monadic value, an entry for the boot script in the system --=20 2.24.1 --=-=-=--