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/tests/install.scm (installation-target-os-for-gui-tests)<services>: Add ntp-service-type.
This commit is contained in:
		
							parent
							
								
									029f8d7c12
								
							
						
					
					
						commit
						2842a42b51
					
				
					 4 changed files with 44 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
			
		||||
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
			
		||||
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -88,6 +89,27 @@ system.")
 | 
			
		|||
        (condition
 | 
			
		||||
         (&installer-step-abort)))))))
 | 
			
		||||
 | 
			
		||||
(define (run-console-services-cbt-page)
 | 
			
		||||
  "Run a page to select various system adminstration services for non-graphical
 | 
			
		||||
systems."
 | 
			
		||||
  (let ((items (filter (lambda (service)
 | 
			
		||||
                         (eq? 'administration
 | 
			
		||||
                              (system-service-type service)))
 | 
			
		||||
                       %system-services)))
 | 
			
		||||
    (run-checkbox-tree-page
 | 
			
		||||
      #:title (G_ "Console services")
 | 
			
		||||
      #:info-text (G_ "Select miscellaneous services to run on your \
 | 
			
		||||
non-graphical 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")))
 | 
			
		||||
| 
						 | 
				
			
			@ -119,6 +141,7 @@ 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-console-services-cbt-page))
 | 
			
		||||
                '())
 | 
			
		||||
            (run-printing-services-cbt-page))))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
			
		||||
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
			
		||||
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 | 
			
		||||
;;;
 | 
			
		||||
;;; 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"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -221,7 +221,11 @@ ROOT-PASSWORD, and USERS."
 | 
			
		|||
                          (choose-network-management-tool?
 | 
			
		||||
                           (lambda (service)
 | 
			
		||||
                             (string-contains service "DHCP")))
 | 
			
		||||
                          (choose-misc-service?
 | 
			
		||||
                           (lambda (service)
 | 
			
		||||
                             (string-contains service "NTP")))
 | 
			
		||||
                          (choose-other-service? (const #f)))
 | 
			
		||||
 | 
			
		||||
  "Converse over PORT to choose services."
 | 
			
		||||
  (define desktop-environments '())
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -243,6 +247,11 @@ ROOT-PASSWORD, and USERS."
 | 
			
		|||
     (null? desktop-environments)
 | 
			
		||||
     (find choose-network-management-tool? services))
 | 
			
		||||
 | 
			
		||||
    ((checkbox-list (title "Console services") (text _)
 | 
			
		||||
                    (items ,services))
 | 
			
		||||
     (null? desktop-environments)
 | 
			
		||||
     (filter choose-misc-service? services))
 | 
			
		||||
 | 
			
		||||
    ((checkbox-list (title "Printing and document services") (text _)
 | 
			
		||||
                    (items ,services))
 | 
			
		||||
     (filter choose-other-service? services))))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1685,7 +1685,8 @@ build (current-guix) and then store a couple of full system images.")
 | 
			
		|||
         (list
 | 
			
		||||
          (swap-space
 | 
			
		||||
           (target (uuid "11111111-2222-3333-4444-123456789abc"))))))
 | 
			
		||||
    (services (cons (service dhcp-client-service-type)
 | 
			
		||||
    (services (cons* (service dhcp-client-service-type)
 | 
			
		||||
                     (service ntp-service-type)
 | 
			
		||||
                     (operating-system-user-services %minimal-os-on-vda)))))
 | 
			
		||||
 | 
			
		||||
(define* (installation-target-desktop-os-for-gui-tests
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue