From ef1dfe36130fa276ce1b2a4213cde14d649bfbf8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 23 Apr 2021 14:50:15 -0400 Subject: [PATCH v4 1/2] installer: Recommend 'ntp-service-type' for non-graphical systems. We had several bug reports with a root cause of "the clock was incorrect" from users who used the installer to install a non-graphical Guix System. * gnu/installer/services.scm (%system-services): Add the ntp-service-type. * gnu/installer/newt/services.scm (run-system-administration-cbt-page): New variable. (run-services-page): Use run-system-administration-cbt-page when not installing a desktop. * gnu/installer/tests.scm (choose-services): Add and use a choose-misc-service? procedure. --- gnu/installer/newt/services.scm | 23 ++++++++++++++++++++++- gnu/installer/services.scm | 8 ++++++++ gnu/installer/tests.scm | 11 +++++++++-- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm index 74f28e41ba..ee003b24b1 100644 --- a/gnu/installer/newt/services.scm +++ b/gnu/installer/newt/services.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2019, 2020 Ludovic Courtès ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2021 Tobias Geerinckx-Rice +;;; Copyright © 2021 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -68,6 +69,25 @@ system.") (condition (&installer-step-abort))))))) +(define (run-system-administration-cbt-page) + "Run a page to select various system adminstration services." + (let ((items (filter (lambda (service) + (eq? 'administration + (system-service-type service))) + %system-services))) + (run-checkbox-tree-page + #:title (G_ "Miscellaneous services") + #:info-text (G_ "Select miscellaneous services to run on your system.") + #:items items + #:selection (map system-service-recommended? items) + #:item->text (compose G_ system-service-name) + #:checkbox-tree-height 5 + #:exit-button-callback-procedure + (lambda () + (raise + (condition + (&installer-step-abort))))))) + (define (run-network-management-page) "Run a page to select among several network management methods." (let ((title (G_ "Network management"))) @@ -99,5 +119,6 @@ client may be enough for a server.") (append desktop (run-networking-cbt-page) (if (null? desktop) - (list (run-network-management-page)) + (cons (run-network-management-page) + (run-system-administration-cbt-page)) '())))) diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index ec5ea30594..1dae40daec 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2021 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -104,6 +105,13 @@ (packages '((specification->package "nss-certs"))) (recommended? #t)) + ;; Miscellaneous system administration services. + (system-service + (name (G_ "Network time service (NTP), to set the clock automatically")) + (type 'administration) + (recommended? #t) + (snippet '((service ntp-service-type)))) + ;; Network connectivity management. (system-service (name (G_ "NetworkManager network connection manager")) diff --git a/gnu/installer/tests.scm b/gnu/installer/tests.scm index 8ccd327a7c..7a4989ef88 100644 --- a/gnu/installer/tests.scm +++ b/gnu/installer/tests.scm @@ -220,7 +220,11 @@ ROOT-PASSWORD, and USERS." (string-contains service "NSS")))) (choose-network-management-tool? (lambda (service) - (string-contains service "DHCP")))) + (string-contains service "DHCP"))) + (choose-misc-service? + (lambda (service) + (string-contains service "NTP")))) + "Converse over PORT to choose networking services." (define desktop-environments '()) @@ -240,7 +244,10 @@ ROOT-PASSWORD, and USERS." (multiple-choices? #f) (items ,services)) (null? desktop-environments) - (find choose-network-management-tool? services)))) + (find choose-network-management-tool? services)) + ((checkbox-list (title "Miscellaneous services") (text _) + (items ,services)) + (filter choose-misc-service? services)))) (define (edit-configuration-file file) "Edit FILE, an operating system configuration file generated by the -- 2.31.1 From 8fa2cd50e36835358c0533ded36674d5499b76fe Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 23 Apr 2021 20:42:28 -0400 Subject: [PATCH v4 2/2] installer: Offer 'gpm-service-type' for non-graphical systems. * gnu/installer/services.scm (%system-services): Add the gpm-service-type. --- gnu/installer/services.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index 1dae40daec..91b22c6f19 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -111,6 +111,10 @@ (type 'administration) (recommended? #t) (snippet '((service ntp-service-type)))) + (system-service + (name (G_ "GPM mouse daemon, to use the mouse in the console")) + (type 'administration) + (snippet '((service gpm-service-type)))) ;; Network connectivity management. (system-service -- 2.31.1