summary refs log tree commit diff
path: root/gnu/system.scm
diff options
context:
space:
mode:
authorBrice Waegeneire <brice@waegenei.re>2020-04-23 14:00:02 +0200
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-28 19:45:38 -0400
commit45eac6cdf5c8d9d7b0c564b105c790d2d2007799 (patch)
treec8457ca77ec0df19e76e49280eaa25646d160974 /gnu/system.scm
parentbb762ac517ff5ab4e55a0efb7e1b534c36c2b7c3 (diff)
downloadguix-45eac6cdf5c8d9d7b0c564b105c790d2d2007799.tar.gz
services: Add file system utilities to profile.
* gnu/services/base.scm (file-system-type->utilities)
(file-system-utilities): New procedures.
(file-system-service-type): Extend 'profile-service-type' with
'file-system-utilities'.
* gnu/system.scm (boot-file-system-service): New procedure.
(operating-system-default-essential-services): Use it.
(%base-packages): Remove 'e2fsprogs'.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Diffstat (limited to 'gnu/system.scm')
-rw-r--r--gnu/system.scm33
1 files changed, 21 insertions, 12 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index a94f0a9a1f..66ca629d63 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -575,6 +575,14 @@ marked as 'needed-for-boot'."
   (service file-system-service-type
            (map add-dependencies file-systems)))
 
+(define (boot-file-system-service os)
+  "Return a service which adds, to the system profile, packages providing the
+utilites for the file systems marked as 'needed-for-boot' in OS."
+  (let ((file-systems (filter file-system-needed-for-boot?
+                              (operating-system-file-systems os))))
+    (simple-service 'boot-file-system-utilities profile-service-type
+                    (file-system-utilities file-systems))))
+
 (define (mapped-device-users device file-systems)
   "Return the subset of FILE-SYSTEMS that use DEVICE."
   (let ((targets (map (cut string-append "/dev/mapper/" <>)
@@ -720,13 +728,14 @@ bookkeeping."
   (define known-fs
     (map file-system-mount-point (operating-system-file-systems os)))
 
-  (let* ((mappings  (device-mapping-services os))
-         (root-fs   (root-file-system-service))
-         (other-fs  (non-boot-file-system-service os))
-         (swaps     (swap-services os))
-         (procs     (service user-processes-service-type))
-         (host-name (host-name-service (operating-system-host-name os)))
-         (entries   (operating-system-directory-base-entries os)))
+  (let* ((mappings     (device-mapping-services os))
+         (root-fs      (root-file-system-service))
+         (boot-fs      (boot-file-system-service os))
+         (non-boot-fs  (non-boot-file-system-service os))
+         (swaps        (swap-services os))
+         (procs        (service user-processes-service-type))
+         (host-name    (host-name-service (operating-system-host-name os)))
+         (entries      (operating-system-directory-base-entries os)))
     (cons* (service system-service-type entries)
            (service linux-builder-service-type
                     (linux-builder-configuration
@@ -757,7 +766,7 @@ bookkeeping."
                     (operating-system-setuid-programs os))
            (service profile-service-type
                     (operating-system-packages os))
-           other-fs
+           boot-fs non-boot-fs
            (append mappings swaps
 
                    ;; Add the firmware service.
@@ -887,8 +896,9 @@ of PROVENANCE-SERVICE-TYPE to its services."
         iw wireless-tools))
 
 (define %base-packages-disk-utilities
-  ;; A well-rounded set of packages for interacting with disks, partitions
-  ;; and filesystems.
+  ;; A well-rounded set of packages for interacting with disks,
+  ;; partitions and filesystems, included with the Guix installation
+  ;; image.
   (list parted gptfdisk ddrescue
         ;; We used to provide fdisk from GNU fdisk, but as of version 2.0.0a
         ;; it pulls Guile 1.8, which takes unreasonable space; furthermore
@@ -903,8 +913,7 @@ of PROVENANCE-SERVICE-TYPE to its services."
 (define %base-packages
   ;; Default set of packages globally visible.  It should include anything
   ;; required for basic administrator tasks.
-  (append (list e2fsprogs)
-          %base-packages-artwork
+  (append %base-packages-artwork
           %base-packages-interactive
           %base-packages-linux
           %base-packages-networking