From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37233) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNaZh-0007Ee-IY for guix-patches@gnu.org; Fri, 16 Nov 2018 04:38:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNaZg-0003B7-8n for guix-patches@gnu.org; Fri, 16 Nov 2018 04:38:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:50508) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gNaZd-00039C-RK for guix-patches@gnu.org; Fri, 16 Nov 2018 04:38:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gNaZd-000161-Nm for guix-patches@gnu.org; Fri, 16 Nov 2018 04:38:01 -0500 Subject: [bug#33405] [PATCH 06/10] system: De-monadify 'operating-system-bootcfg'. Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Fri, 16 Nov 2018 10:36:20 +0100 Message-Id: <20181116093624.4820-6-ludo@gnu.org> In-Reply-To: <20181116093624.4820-1-ludo@gnu.org> References: <20181116093624.4820-1-ludo@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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: 33405@debbugs.gnu.org * gnu/system.scm (operating-system-bootcfg): Remove 'mlet*' and 'lower-object' call. * gnu/system/vm.scm (system-disk-image) (system-qemu-image/shared-store): Adjust accordingly. * guix/scripts/system.scm (perform-action): Add 'lower-object' call for BOOTCFG. --- gnu/system.scm | 20 +++++++++----------- gnu/system/vm.scm | 10 +++++----- guix/scripts/system.scm | 13 +++++++------ 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 96b3b7d0e0..1766c8f90f 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -935,21 +935,19 @@ listed in OS. The C library expects to find it under (define* (operating-system-bootcfg os #:optional (old-entries '())) "Return the bootloader configuration file for OS. Use OLD-ENTRIES, a list of , to populate the \"old entries\" menu." - (mlet* %store-monad - ((root-fs -> (operating-system-root-file-system os)) - (root-device -> (file-system-device root-fs)) - (params -> (operating-system-boot-parameters os root-device - #:system-kernel-arguments? - #t)) - (entry -> (boot-parameters->menu-entry params)) - (bootloader-conf -> (operating-system-bootloader os))) + (let* ((root-fs (operating-system-root-file-system os)) + (root-device (file-system-device root-fs)) + (params (operating-system-boot-parameters + os root-device + #:system-kernel-arguments? #t)) + (entry (boot-parameters->menu-entry params)) + (bootloader-conf (operating-system-bootloader os))) (define generate-config-file (bootloader-configuration-file-generator (bootloader-configuration-bootloader bootloader-conf))) - ;; TODO: Remove the 'lower-object' call to make it non-monadic. - (lower-object (generate-config-file bootloader-conf (list entry) - #:old-entries old-entries)))) + (generate-config-file bootloader-conf (list entry) + #:old-entries old-entries))) (define* (operating-system-boot-parameters os root-device #:key system-kernel-arguments?) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 6064e0f899..e6f0f78120 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -648,8 +648,8 @@ to USB sticks meant to be read-only." (type file-system-type)) file-systems-to-keep))))) - (mlet* %store-monad ((os-drv (operating-system-derivation os)) - (bootcfg (operating-system-bootcfg os))) + (mlet* %store-monad ((os-drv (operating-system-derivation os)) + (bootcfg -> (operating-system-bootcfg os))) (if (string=? "iso9660" file-system-type) (iso9660-image #:name name #:file-system-label root-label @@ -713,7 +713,7 @@ of the GNU system as described by OS." file-systems-to-keep))))) (mlet* %store-monad ((os-drv (operating-system-derivation os)) - (bootcfg (operating-system-bootcfg os))) + (bootcfg -> (operating-system-bootcfg os))) (qemu-image #:os-drv os-drv #:bootcfg-drv bootcfg #:bootloader (bootloader-configuration-bootloader @@ -827,8 +827,8 @@ bootloader refers to: OS kernel, initrd, bootloader data, etc." ;; Use a fixed UUID to improve determinism. (operating-system-uuid os 'dce)) - (mlet* %store-monad ((os-drv (operating-system-derivation os)) - (bootcfg (operating-system-bootcfg os))) + (mlet* %store-monad ((os-drv (operating-system-derivation os)) + (bootcfg -> (operating-system-bootcfg os))) ;; XXX: When FULL-BOOT? is true, we end up creating an image that contains ;; BOOTCFG and all its dependencies, including the output of OS-DRV. ;; This is more than needed (we only need the kernel, initrd, GRUB for its diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 9ba9428a08..c0f16cb2a7 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -858,12 +858,13 @@ static checks." (return #f)))) (bootcfg (if (eq? 'container action) (return #f) - (operating-system-bootcfg - os - (if (eq? 'init action) - '() - (map boot-parameters->menu-entry - (profile-boot-parameters)))))) + (lower-object + (operating-system-bootcfg + os + (if (eq? 'init action) + '() + (map boot-parameters->menu-entry + (profile-boot-parameters))))))) (bootcfg-file -> (bootloader-configuration-file bootloader)) (bootloader-installer (let ((installer (bootloader-installer bootloader)) -- 2.19.1