Subject: [bug#40480] [PATCH v4] services: Add file system utilities to profile.

From: Christopher Baines <[email-masked]>
Date: Fri, 18 Dec 2020 15:28:34 +0000

Brice Waegeneire <[email-masked]> writes:

> * 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'.
> * gnu/system/file-systems.scm (file-system): Add 'utilities?' field.
> ---
>
> Fix bcachefs typo and replace 'utils' by 'utilities'. Reword the
> documentation procedures to be clearer. Remove (srfi srfi-2) and (ice-9
> regex) which weren't used since v1.
>
>  gnu/services/base.scm       | 40 +++++++++++++++++++++++++++++++++++--
>  gnu/system.scm              | 28 ++++++++++++++++----------
>  gnu/system/file-systems.scm |  6 +++++-
>  3 files changed, 61 insertions(+), 13 deletions(-)

Thanks for the updated patch Brian, and apologies it's taken so long to
review.

I've had a quick look through, and generally it looks fine to me.

> diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
> index 3b599efa8e..f78c3b1b8e 100644
> --- a/gnu/system/file-systems.scm
> +++ b/gnu/system/file-systems.scm
> @@ -1,5 +1,6 @@
>  ;;; GNU Guix --- Functional package management for GNU
>  ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <[email-masked]>
> +;;; Copyright © 2020 Brice Waegeneire <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -42,6 +43,7 @@
>              file-system-create-mount-point?
>              file-system-dependencies
>              file-system-location
> +            file-system-utilities?
>  
>              file-system-type-predicate
>  
> @@ -111,7 +113,9 @@
>                      (default '()))                ; or <mapped-device>
>    (location         file-system-location
>                      (default (current-source-location))
> -                    (innate)))
> +                    (innate))
> +  (utilities?       file-system-utilities?        ; Boolean
> +                    (default #t)))
>  
>  ;; A file system label for use in the 'device' field.
>  (define-record-type <file-system-label>

On utilties? here, I wonder if the name for this option could be
clearer? Most of the other options can be interpreted in the context of
the filesystem itself, but this is about whether the system profile
should include utilities for that filesystem. I haven't got any
particularly good ideas though, maybe system-include-utilities?

I think utilities? is OK though, if someone wants to turn it off, then
they'll probably be able to work out how. On that, maybe the only must
before merging this is adding to the list of options in the
documentation. Is this something you're able to do?

Thanks,

Chris