diff mbox

[02/10] Add 'device' field to <menu-entry>

Message ID 20161028100727.1182-3-cmmarusich@gmail.com
State New
Headers show

Commit Message

Chris Marusich Oct. 28, 2016, 10:07 a.m. UTC
From: Chris Marusich <cmmarusich@gmail.com>

* gnu/system/grub.scm (<menu-entry>): add field 'device'.

* gnu/system.scm (grub-configuration-file): use a dummy value for 'device'.

* guix/scripts/system.scm (previous-grub-entries): use a dummy value for
  'device'.

In a future commit, we will restructure the grub.cfg generation logic to use
this information, to enable the implementation of 'guix system
switch-generation' and 'guix system roll-back'.
---
 gnu/system.scm          | 1 +
 gnu/system/grub.scm     | 4 +++-
 guix/scripts/system.scm | 2 ++
 3 files changed, 6 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/gnu/system.scm b/gnu/system.scm
index ff84b63..f9f63a0 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -736,6 +736,7 @@  listed in OS.  The C library expects to find it under
                            (file-system-device root-fs)))
        (entries ->  (list (menu-entry
                            (label label)
+                           (device #f) ;; stub value, not used yet
                            (linux kernel)
                            (linux-arguments
                             (cons* (string-append "--root=" root-device)
diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm
index 249b415..859f33a 100644
--- a/gnu/system/grub.scm
+++ b/gnu/system/grub.scm
@@ -1,5 +1,6 @@ 
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -121,6 +122,7 @@  object denoting a file name."
   menu-entry make-menu-entry
   menu-entry?
   (label           menu-entry-label)
+  (device          menu-entry-device)      ; file system uuid, label, or #f
   (linux           menu-entry-linux)
   (linux-arguments menu-entry-linux-arguments
                    (default '()))          ; list of string-valued gexps
@@ -262,7 +264,7 @@  corresponding to old generations of the system."
 
   (define entry->gexp
     (match-lambda
-     (($ <menu-entry> label linux arguments initrd)
+     (($ <menu-entry> label device linux arguments initrd)
       ;; Use the right file names for LINUX and STORE-FS in case STORE-FS is
       ;; not the "/" file system.
       (let ((linux  (strip-mount-point store-fs linux))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 0519ab8..8f0b8cd 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -1,6 +1,7 @@ 
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -384,6 +385,7 @@  it atomically, and then run OS's activation script."
         (label (string-append label " (#"
                               (number->string number) ", "
                               (seconds->string time) ")"))
+        (device #f) ; stub value, not used yet
         (linux kernel)
         (linux-arguments
          (cons* (string-append "--root=" root-device)