diff options
Diffstat (limited to 'gnu/installer')
-rw-r--r-- | gnu/installer/parted.scm | 22 | ||||
-rw-r--r-- | gnu/installer/services.scm | 39 | ||||
-rw-r--r-- | gnu/installer/steps.scm | 32 | ||||
-rw-r--r-- | gnu/installer/user.scm | 7 |
4 files changed, 76 insertions, 24 deletions
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index 94ef9b42bc..d942a2f49b 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2019 Mathieu Othacehe <[email protected]> -;;; Copyright © 2019, 2020 Ludovic Courtès <[email protected]> +;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <[email protected]> ;;; Copyright © 2020 Tobias Geerinckx-Rice <[email protected]> ;;; ;;; This file is part of GNU Guix. @@ -38,6 +38,7 @@ #:select (%base-initrd-modules)) #:use-module (guix build syscalls) #:use-module (guix build utils) + #:use-module (guix read-print) #:use-module (guix records) #:use-module (guix utils) #:use-module (guix i18n) @@ -828,6 +829,7 @@ cause them to cross." (installer-log-line "~/type: ~a" partition-type) (installer-log-line "~/filesystem-type: ~a" (filesystem-type-name filesystem-type)) + (installer-log-line "~/flags: ~a" flags) (installer-log-line "~/start: ~a" start-sector*) (installer-log-line "~/end: ~a" end-sector) (installer-log-line "~/start-range: [~a, ~a]" @@ -844,15 +846,18 @@ cause them to cross." (when (and partition-ok? has-name? name) (partition-set-name partition name)) - ;; Set flags is required. + ;; Both partition-set-system and partition-set-flag calls can affect + ;; the partition type. Their order is important, see: + ;; https://issues.guix.gnu.org/55549. + (partition-set-system partition filesystem-type) + + ;; Set flags if required. (for-each (lambda (flag) (and (partition-is-flag-available? partition flag) (partition-set-flag partition flag 1))) flags) - (and partition-ok? - (partition-set-system partition filesystem-type) - partition)))))) + (and partition-ok? partition)))))) ;; @@ -1439,6 +1444,13 @@ USER-PARTITIONS, or return nothing." `((mapped-devices (list ,@(map user-partition->mapped-device encrypted-partitions))))) + + ,(vertical-space 1) + ,(let-syntax ((G_ (syntax-rules () ((_ str) str)))) + (comment (G_ "\ +;; The list of file systems that get \"mounted\". The unique +;; file system identifiers there (\"UUIDs\") can be obtained +;; by running 'blkid' in a terminal.\n"))) (file-systems (cons* ,@(user-partitions->file-systems user-partitions) %base-file-systems))))) diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index 6584fcceec..6c5f49622f 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe <[email protected]> -;;; Copyright © 2019 Ludovic Courtès <[email protected]> +;;; Copyright © 2019, 2022 Ludovic Courtès <[email protected]> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email protected]> ;;; Copyright © 2021 Tobias Geerinckx-Rice <[email protected]> ;;; Copyright © 2021 Leo Famulari <[email protected]> @@ -22,6 +22,7 @@ (define-module (gnu installer services) #:use-module (guix records) + #:use-module (guix read-print) #:use-module (srfi srfi-1) #:export (system-service? system-service-name @@ -35,6 +36,11 @@ %system-services system-services->configuration)) +(define-syntax-rule (G_ str) + ;; In this file, translatable strings are annotated with 'G_' so xgettext + ;; catches them, but translation happens later on at run time. + str) + (define-record-type* <system-service> system-service make-system-service system-service? @@ -52,9 +58,7 @@ ((_ fields ...) (system-service (type 'desktop) - fields ...)))) - (G_ (syntax-rules () ;for xgettext - ((_ str) str)))) + fields ...))))) (list ;; This is the list of desktop environments supported as services. (desktop-environment @@ -94,7 +98,12 @@ (system-service (name (G_ "OpenSSH secure shell daemon (sshd)")) (type 'networking) - (snippet '((service openssh-service-type)))) + (snippet `(,(vertical-space 1) + ,(comment + (G_ "\ +;; To configure OpenSSH, pass an 'openssh-configuration' +;; record as a second argument to 'service' below.\n")) + (service openssh-service-type)))) (system-service (name (G_ "Tor anonymous network router")) (type 'networking) @@ -149,24 +158,38 @@ (desktop? (find desktop-system-service? services)) (base (if desktop? '%desktop-services - '%base-services))) + '%base-services)) + (heading (list (vertical-space 1) + (comment (G_ "\ +;; Below is the list of system services. To search for available +;; services, run 'guix system search KEYWORD' in a terminal.\n"))))) + (if (null? snippets) `(,@(if (null? packages) '() `((packages (append (list ,@packages) %base-packages)))) + + ,@heading (services ,base)) `(,@(if (null? packages) '() `((packages (append (list ,@packages) %base-packages)))) + + ,@heading (services (append (list ,@snippets ,@(if desktop? ;; XXX: Assume 'keyboard-layout' is in ;; scope. - '((set-xorg-configuration + `((set-xorg-configuration (xorg-configuration (keyboard-layout keyboard-layout)))) '())) - ,base)))))) + + ,(vertical-space 1) + ,(comment (G_ "\ +;; This is the default list of services we +;; are appending to.\n")) + ,base)))))) diff --git a/gnu/installer/steps.scm b/gnu/installer/steps.scm index 8bc38181a7..8b25ae97c8 100644 --- a/gnu/installer/steps.scm +++ b/gnu/installer/steps.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2019 Mathieu Othacehe <[email protected]> -;;; Copyright © 2020, 2021 Ludovic Courtès <[email protected]> +;;; Copyright © 2020-2022 Ludovic Courtès <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,9 +21,9 @@ #:use-module (guix records) #:use-module (guix build utils) #:use-module (guix i18n) + #:use-module (guix read-print) #:use-module (gnu installer utils) #:use-module (ice-9 match) - #:use-module (ice-9 pretty-print) #:use-module (srfi srfi-1) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -224,10 +224,14 @@ found in RESULTS." (conf-formatter result-step) '()))) steps)) - (modules '((use-modules (gnu)) + (modules `(,(vertical-space 1) + ,(comment (G_ "\ +;; Indicate which modules to import to access the variables +;; used in this configuration.\n")) + (use-modules (gnu)) (use-service-modules cups desktop networking ssh xorg)))) `(,@modules - () + ,(vertical-space 1) (operating-system ,@configuration)))) (define* (configuration->file configuration @@ -241,14 +245,22 @@ found in RESULTS." ;; length below 60 characters. (display (G_ "\ ;; This is an operating system configuration generated -;; by the graphical installer.\n") +;; by the graphical installer. +;; +;; Once installation is complete, you can learn and modify +;; this file to tweak the system configuration, and pass it +;; to the 'guix system reconfigure' command to effect your +;; changes.\n") port) (newline port) - (for-each (lambda (part) - (if (null? part) - (newline port) - (pretty-print part port))) - configuration) + (pretty-print-with-comments/splice port configuration + #:max-width 75 + #:format-comment + (lambda (c indent) + ;; Localize C. + (comment (G_ (comment->string c)) + (comment-margin? c)))) + (flush-output-port port)))) ;;; Local Variables: diff --git a/gnu/installer/user.scm b/gnu/installer/user.scm index c894a91dc8..224040530c 100644 --- a/gnu/installer/user.scm +++ b/gnu/installer/user.scm @@ -18,6 +18,7 @@ (define-module (gnu installer user) #:use-module (guix records) + #:use-module (guix read-print) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) @@ -69,7 +70,11 @@ (supplementary-groups '("wheel" "netdev" "audio" "video")))) - `((users (cons* + (define-syntax-rule (G_ str) str) + + `(,(vertical-space 1) + ,(comment (G_ ";; The list of user accounts ('root' is implicit).\n")) + (users (cons* ,@(filter-map (lambda (user) ;; Do not emit a 'user-account' form for "root". (and (not (string=? (user-name user) "root")) |