[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
05/06: install: Extract procedure: install-grub-config.
From: |
Ludovic Courtès |
Subject: |
05/06: install: Extract procedure: install-grub-config. |
Date: |
Sun, 6 Nov 2016 17:13:58 +0000 (UTC) |
civodul pushed a commit to branch master
in repository guix.
commit 1e17a2d5f2058df0277abd4aad70940d7282528e
Author: Chris Marusich <address@hidden>
Date: Tue Nov 1 22:48:14 2016 -0700
install: Extract procedure: install-grub-config.
* gnu/build/install.scm (install-grub-config): New procedure.
(install-grub): Use it.
Signed-off-by: Ludovic Courtès <address@hidden>
---
gnu/build/install.scm | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 7431a09..3d1594e 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <address@hidden>
+;;; Copyright © 2016 Chris Marusich <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +23,7 @@
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:export (install-grub
+ install-grub-config
populate-root-file-system
reset-timestamps
register-closure
@@ -36,13 +38,24 @@
;;;
;;; Code:
-(define* (install-grub grub.cfg device mount-point)
+(define (install-grub grub.cfg device mount-point)
"Install GRUB with GRUB.CFG on DEVICE, which is assumed to be mounted on
MOUNT-POINT.
Note that the caller must make sure that GRUB.CFG is registered as a GC root
so that the fonts, background images, etc. referred to by GRUB.CFG are not
GC'd."
+ (install-grub-config grub.cfg mount-point)
+ (unless (zero? (system* "grub-install" "--no-floppy"
+ "--boot-directory"
+ (string-append mount-point "/boot")
+ device))
+ (error "failed to install GRUB")))
+
+(define (install-grub-config grub.cfg mount-point)
+ "Atomically copy GRUB.CFG into boot/grub/grub.cfg on the MOUNT-POINT. Note
+that the caller must make sure that GRUB.CFG is registered as a GC root so
+that the fonts, background images, etc. referred to by GRUB.CFG are not GC'd."
(let* ((target (string-append mount-point "/boot/grub/grub.cfg"))
(pivot (string-append target ".new")))
(mkdir-p (dirname target))
@@ -50,13 +63,7 @@ GC'd."
;; Copy GRUB.CFG instead of just symlinking it, because symlinks won't
;; work when /boot is on a separate partition. Do that atomically.
(copy-file grub.cfg pivot)
- (rename-file pivot target)
-
- (unless (zero? (system* "grub-install" "--no-floppy"
- "--boot-directory"
- (string-append mount-point "/boot")
- device))
- (error "failed to install GRUB"))))
+ (rename-file pivot target)))
(define (evaluate-populate-directive directive target)
"Evaluate DIRECTIVE, an sexp describing a file or directory to create under
- branch master updated (f4dc22b -> 8074b33), Ludovic Courtès, 2016/11/06
- 01/06: system: Avoid using device paths in <menu-entry> device field., Ludovic Courtès, 2016/11/06
- 03/06: system: Rename previous-grub-entries to profile-grub-entries., Ludovic Courtès, 2016/11/06
- 04/06: system: Optionally limit the entries returned by profile-grub-entries., Ludovic Courtès, 2016/11/06
- 05/06: install: Extract procedure: install-grub-config.,
Ludovic Courtès <=
- 02/06: profiles: Extract a procedure for getting relative generation numbers., Ludovic Courtès, 2016/11/06
- 06/06: system: Add 'guix system' actions: switch-generation and roll-back., Ludovic Courtès, 2016/11/06