~ruther/guix-local

2e55f37c0c8fdfbc413edff61490161648a78dcc — Ludovic Courtès 7 years ago ecfbc51
installer: Offer NM, Connman, and DHCP to non-desktop installs.

* gnu/installer/services.scm (%system-services): Add NetworkManager,
Connman, and the DHCP client.
* gnu/installer/newt/services.scm (run-networking-cbt-page): Add
'network-management?' parameter and honor it.
(run-services-page): Adjust call accordingly.
2 files changed, 31 insertions(+), 7 deletions(-)

M gnu/installer/newt/services.scm
M gnu/installer/services.scm
M gnu/installer/newt/services.scm => gnu/installer/newt/services.scm +16 -6
@@ 45,13 45,20 @@ choose the one to use on the log-in screen.")
      (condition
       (&installer-step-abort))))))

(define (run-networking-cbt-page)
  "Run a page allowing the user to select networking services."
(define (run-networking-cbt-page network-management?)
  "Run a page allowing the user to select networking services.  When
NETWORK-MANAGEMENT? is true, include network management services like
NetworkManager."
  (run-checkbox-tree-page
   #:info-text (G_ "You can now select networking services to run on your
   #:info-text (G_ "You can now select networking services to run on your \
system.")
   #:title (G_ "Network service")
   #:items (filter networking-system-service? %system-services)
   #:items (filter (let ((types (if network-management?
                                    '(network-management networking)
                                    '(networking))))
                     (lambda (service)
                       (memq (system-service-type service) types)))
                   %system-services)
   #:item->text system-service-name
   #:checkbox-tree-height 5
   #:exit-button-callback-procedure


@@ 61,5 68,8 @@ system.")
       (&installer-step-abort))))))

(define (run-services-page)
  (append (run-desktop-environments-cbt-page)
          (run-networking-cbt-page)))
  (let ((desktop (run-desktop-environments-cbt-page)))
    ;; When the user did not select any desktop services, and thus didn't get
    ;; '%desktop-services', offer network management services.
    (append desktop
            (run-networking-cbt-page (null? desktop)))))

M gnu/installer/services.scm => gnu/installer/services.scm +15 -1
@@ 69,7 69,21 @@
     (system-service
      (name "Tor anonymous network router")
      (type 'networking)
      (snippet '(service tor-service-type))))))
      (snippet '(service tor-service-type)))

     ;; Network connectivity management.
     (system-service
      (name "NetworkManager network connection manager")
      (type 'network-management)
      (snippet '(service network-manager-service-type)))
     (system-service
      (name "Connman network connection manager")
      (type 'network-management)
      (snippet '(service connman-service-type)))
     (system-service
      (name "DHCP client")
      (type 'network-management)
      (snippet '(service dhcp-client-service))))))

(define (desktop-system-service? service)
  "Return true if SERVICE is a desktop environment service."