guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: guix system: Add "--file-system-type" option.


From: Danny Milosavljevic
Subject: 01/02: guix system: Add "--file-system-type" option.
Date: Mon, 3 Jul 2017 10:34:19 -0400 (EDT)

dannym pushed a commit to branch master
in repository guix.

commit 3f4d8a7f66060e93a247797a9bbd2fcbee6922a3
Author: Danny Milosavljevic <address@hidden>
Date:   Mon Jul 3 12:34:07 2017 +0200

    guix system: Add "--file-system-type" option.
    
    * guix/scripts/system.scm (process-action): Pass file-system-type to ...
    (perform-action): ... here.  Add new keyword argument.  Pass new value to 
...
    (system-derivation-for-action): ... here.  Add new keyword argument.
    Pass new value to system-disk-image.
    * doc/guix.texi (disk-image): Document new option.
---
 doc/guix.texi           | 16 ++++++++++++++++
 guix/scripts/system.scm | 23 +++++++++++++++++++----
 2 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index d61a5b7..8110316 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -16190,6 +16190,9 @@ in @var{file} that stands alone.  By default, 
@command{guix system}
 estimates the size of the image needed to store the system, but you can
 use the @option{--image-size} option to specify a value.
 
+You can specify the root file system type by using the
address@hidden option.  It defaults to "ext4".
+
 When using @code{vm-image}, the returned image is in qcow2 format, which
 the QEMU emulator can efficiently use. @xref{Running GuixSD in a VM},
 for more information on how to run the image in a virtual machine.
@@ -16245,6 +16248,19 @@ This works as per @command{guix build} 
(@pxref{Invoking guix build}).
 Return the derivation file name of the given operating system without
 building anything.
 
address@hidden address@hidden
address@hidden -t @var{type}
+For the @code{disk-image} action, create a file system of the given
address@hidden on the image.
+
+When this option is omitted, @command{guix system} uses @code{ext4}.
+
address@hidden ISO-9660 format
address@hidden CD image format
address@hidden DVD image format
address@hidden produces an ISO-9660 image, suitable
+for burning on CDs and DVDs.
+
 @item address@hidden
 For the @code{vm-image} and @code{disk-image} actions, create an image
 of the given @var{size}.  @var{size} may be a number of bytes, or it may
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 7e20b10..65dd92e 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -560,7 +560,8 @@ PATTERN, a string.  When PATTERN is #f, display all the 
system generations."
 ;;;
 
 (define* (system-derivation-for-action os action
-                                       #:key image-size full-boot? mappings)
+                                       #:key image-size file-system-type
+                                       full-boot? mappings)
   "Return as a monadic value the derivation for OS according to ACTION."
   (case action
     ((build init reconfigure)
@@ -578,7 +579,8 @@ PATTERN, a string.  When PATTERN is #f, display all the 
system generations."
                                                 (* 70 (expt 2 20)))
                                             #:mappings mappings))
     ((disk-image)
-     (system-disk-image os #:disk-image-size image-size))))
+     (system-disk-image os #:disk-image-size image-size
+                           #:file-system-type file-system-type))))
 
 (define (maybe-suggest-running-guix-pull)
   "Suggest running 'guix pull' if this has never been done before."
@@ -610,13 +612,15 @@ and TARGET arguments."
                          #:key install-bootloader?
                          dry-run? derivations-only?
                          use-substitutes? device target
-                         image-size full-boot?
+                         image-size file-system-type full-boot?
                          (mappings '())
                          (gc-root #f))
   "Perform ACTION for OS.  INSTALL-BOOTLOADER? specifies whether to install
 bootloader; DEVICE is the target devices for bootloader; TARGET is the target
 root directory; IMAGE-SIZE is the size of the image to be built, for the
-'vm-image' and 'disk-image' actions.  FULL-BOOT? is used for the 'vm' action;
+'vm-image' and 'disk-image' actions.
+The root filesystem is created as a FILE-SYSTEM-TYPE filesystem.
+FULL-BOOT? is used for the 'vm' action;
 it determines whether to boot directly to the kernel or to the bootloader.
 
 When DERIVATIONS-ONLY? is true, print the derivation file name(s) without
@@ -632,6 +636,7 @@ output when building a system derivation, such as a disk 
image."
 
   (mlet* %store-monad
       ((sys       (system-derivation-for-action os action
+                                                #:file-system-type 
file-system-type
                                                 #:image-size image-size
                                                 #:full-boot? full-boot?
                                                 #:mappings mappings))
@@ -775,6 +780,10 @@ Some ACTIONS support additional ARGS.\n"))
       --on-error=STRATEGY
                          apply STRATEGY when an error occurs while reading 
FILE"))
   (display (G_ "
+      --file-system-type=TYPE
+                         for 'disk-image', produce a root file system of TYPE
+                         (one of 'ext4', 'iso9660')"))
+  (display (G_ "
       --image-size=SIZE  for 'vm-image', produce an image of SIZE"))
   (display (G_ "
       --no-bootloader    for 'init', do not install a bootloader"))
@@ -812,6 +821,10 @@ Some ACTIONS support additional ARGS.\n"))
                  (lambda (opt name arg result)
                    (alist-cons 'on-error (string->symbol arg)
                                result)))
+         (option '(#\t "file-system-type") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'file-system-type arg
+                               result)))
          (option '("image-size") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'image-size (size->number arg)
@@ -854,6 +867,7 @@ Some ACTIONS support additional ARGS.\n"))
     (build-hook? . #t)
     (max-silent-time . 3600)
     (verbosity . 0)
+    (file-system-type . "ext4")
     (image-size . guess)
     (install-bootloader? . #t)))
 
@@ -906,6 +920,7 @@ resulting from command-line parsing."
                              #:derivations-only? (assoc-ref opts
                                                             'derivations-only?)
                              #:use-substitutes? (assoc-ref opts 'substitutes?)
+                             #:file-system-type (assoc-ref opts 
'file-system-type)
                              #:image-size (assoc-ref opts 'image-size)
                              #:full-boot? (assoc-ref opts 'full-boot?)
                              #:mappings (filter-map (match-lambda



reply via email to

[Prev in Thread] Current Thread [Next in Thread]