[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#38612] Pass system and target arguments to gexp->file.
From: |
Mathieu Othacehe |
Subject: |
[bug#38612] Pass system and target arguments to gexp->file. |
Date: |
Wed, 25 Dec 2019 10:42:48 +0100 |
User-agent: |
mu4e 1.2.0; emacs 26.3 |
Hello,
Turns out two more patches in the same vein are needed in (gnu services)
and (gnu system). They are attached here.
Thanks,
Mathieu
>From a05baf4f4328ce2ca6da6860f6e596cd7559a08a Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <address@hidden>
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 <boot-parameters>."
(_
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 <operating-system>)
system target)
--
2.24.1
>From 0ce67afc4f33074e20824751c22ba01cf6a3e184 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <address@hidden>
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 bind
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 © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <address@hidden>
;;; Copyright © 2016 Chris Marusich <address@hidden>
+;;; Copyright © 2019 Mathieu Othacehe <address@hidden>
;;;
;;; 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)))
(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 added
;; by 'essential-services' (e.g., running shepherd) are guaranteed to come
;; 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)))
(define (boot-script-entry mboot)
"Return, as a monadic value, an entry for the boot script in the system
--
2.24.1
- [bug#38612] Pass system and target arguments to gexp->file., Mathieu Othacehe, 2019/12/14
- [bug#38612] Pass system and target arguments to gexp->file., Mathieu Othacehe, 2019/12/15
- [bug#38612] Pass system and target arguments to gexp->file., Ludovic Courtès, 2019/12/20
- [bug#38612] Pass system and target arguments to gexp->file., Mathieu Othacehe, 2019/12/24
- [bug#38612] Pass system and target arguments to gexp->file.,
Mathieu Othacehe <=
- [bug#38612] Pass system and target arguments to gexp->file., Ludovic Courtès, 2019/12/26
- [bug#38612] Pass system and target arguments to gexp->file., Mathieu Othacehe, 2019/12/26
- [bug#38612] Pass system and target arguments to gexp->file., Ludovic Courtès, 2019/12/27
- [bug#38612] Pass system and target arguments to gexp->file., Mathieu Othacehe, 2019/12/29
- [bug#38612] Pass system and target arguments to gexp->file., Ludovic Courtès, 2019/12/29
- [bug#38612] Pass system and target arguments to gexp->file., Mathieu Othacehe, 2019/12/30
- [bug#38612] Pass system and target arguments to gexp->file., Ludovic Courtès, 2019/12/26
- [bug#38612] Pass system and target arguments to gexp->file., Mathieu Othacehe, 2019/12/26
[bug#38612] Pass system and target arguments to gexp->file., Ludovic Courtès, 2019/12/20