unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
blob 0fd5d3f2de957f733a35c618d6b4fdfb68a71eb7 4980 bytes (raw)
name: gnu/installer/newt/services.scm 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
 
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; 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>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu installer newt services)
  #:use-module (gnu installer services)
  #:use-module (gnu installer steps)
  #:use-module (gnu installer newt page)
  #:use-module (gnu installer newt utils)
  #:use-module (guix i18n)
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-35)
  #:use-module (newt)
  #:export (run-services-page))

(define (run-desktop-environments-cbt-page)
  "Run a page allowing the user to choose between various desktop
environments."
  (let ((items (filter desktop-system-service? %system-services)))
    (run-checkbox-tree-page
     #:info-text (G_ "Please select the desktop environment(s) you wish to \
install.  If you select multiple desktop environments here, you will be able \
to choose from them later when you log in.")
     #:title (G_ "Desktop environment")
     #:items items
     #:selection (map system-service-recommended? items)
     #:item->text system-service-name             ;no i18n for DE names
     #:checkbox-tree-height 9
     #:exit-button-callback-procedure
     (lambda ()
       (raise
        (condition
         (&installer-step-abort)))))))

(define (run-networking-cbt-page)
  "Run a page allowing the user to select networking services."
  (let ((items (filter (lambda (service)
                         (eq? 'networking (system-service-type service)))
                       %system-services)))
    (run-checkbox-tree-page
     #:info-text (G_ "You can now select networking services to run on your \
system.")
     #:title (G_ "Network service")
     #: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")))
    (run-listbox-selection-page
     #:title title
     #:info-text (G_ "Choose the method to manage network connections.

We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP \
client may be enough for a server.")
     #:info-textbox-width 70
     #:listbox-height 7
     #:listbox-items (filter (lambda (service)
                               (eq? 'network-management
                                    (system-service-type service)))
                             %system-services)
     #:listbox-item->text (compose G_ system-service-name)
     #:sort-listbox-items? #f
     #:button-text (G_ "Exit")
     #:button-callback-procedure
     (lambda _
       (raise
        (condition
         (&installer-step-abort)))))))

(define (run-substitute-mirror-page)
  (let ((title (G_ "Substitute mirror")))
    (run-listbox-selection-page
      #:title title
      #:info-text (G_ "Choose a server to get substitutes from.

Depending on your location, the official substitutes server can be slow; \
in that case, using a mirror may be faster.")
      #:info-textbox-width 70
      #:listbox-height 8
      #:listbox-items (filter (lambda (service)
                                (eq? 'substitute-mirror
                                     (system-service-type service)))
                              %system-services)
      #:listbox-item->text (compose G_ system-service-name)
      #:sort-listbox-items? #f
      #:button-text (G_ "Exit")
      #:button-callback-procedure
      (lambda _
        (raise
          (condition
            (&installer-step-abort)))))))

(define (run-services-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)
            (if (null? desktop)
                (list (run-network-management-page))
                '())
            (list (run-substitute-mirror-page)))))

debug log:

solving 0fd5d3f2de ...
found 0fd5d3f2de in https://yhetil.org/guix-devel/DKcYWrrEHg1_rB1vnThoOuKvF3i5OxOOJw7cMDdUxuv76s1PsMdALUuDcrP1Soo3AfNhVyiCn0gSw3R722Hxp0N3gQl__3na6TccNVydjhI=@protonmail.com/ ||
	https://yhetil.org/guix-devel/91TVhqLjb4qN2M9ewI6NRWYNNcka9vbIRPkuPzYAKv_Km_o8eFaD4viDAffo5U0WotEqHt90C3HnFmryv_beBUzuQcBWc4kymN4uDeCHbu8=@protonmail.com/ ||
	https://yhetil.org/guix-devel/3YQTy8cg8z-IZkxgM7lJSk8ZeolHbf4t7_HPw9Q8GCkx1lP7CXrbdtPZ9Hvyo--NvKXyr9W2iv82d8lL2T0NQPpTPhDbBFo3_3jQ3eAdAEI=@protonmail.com/ ||
	https://yhetil.org/guix-devel/-WVvn-rIc2HXdunUeEp6YfVQ9WkU-JsP_sAdLNK4ebx5YUTZ0-lSxWF2MGWOTGpqCvfil-JSAW1n-_82UQlRSXM5Qmb2ajaTYsa_EFUJ6o4=@protonmail.com/
found 74f28e41ba in https://git.savannah.gnu.org/cgit/guix.git
preparing index
index prepared:
100644 74f28e41bada31460165aaf805ae4d2538e9c42d	gnu/installer/newt/services.scm

applying [1/1] https://yhetil.org/guix-devel/DKcYWrrEHg1_rB1vnThoOuKvF3i5OxOOJw7cMDdUxuv76s1PsMdALUuDcrP1Soo3AfNhVyiCn0gSw3R722Hxp0N3gQl__3na6TccNVydjhI=@protonmail.com/
diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm
index 74f28e41ba..0fd5d3f2de 100644

Checking patch gnu/installer/newt/services.scm...
Applied patch gnu/installer/newt/services.scm cleanly.

skipping https://yhetil.org/guix-devel/91TVhqLjb4qN2M9ewI6NRWYNNcka9vbIRPkuPzYAKv_Km_o8eFaD4viDAffo5U0WotEqHt90C3HnFmryv_beBUzuQcBWc4kymN4uDeCHbu8=@protonmail.com/ for 0fd5d3f2de
skipping https://yhetil.org/guix-devel/3YQTy8cg8z-IZkxgM7lJSk8ZeolHbf4t7_HPw9Q8GCkx1lP7CXrbdtPZ9Hvyo--NvKXyr9W2iv82d8lL2T0NQPpTPhDbBFo3_3jQ3eAdAEI=@protonmail.com/ for 0fd5d3f2de
skipping https://yhetil.org/guix-devel/-WVvn-rIc2HXdunUeEp6YfVQ9WkU-JsP_sAdLNK4ebx5YUTZ0-lSxWF2MGWOTGpqCvfil-JSAW1n-_82UQlRSXM5Qmb2ajaTYsa_EFUJ6o4=@protonmail.com/ for 0fd5d3f2de
index at:
100644 0fd5d3f2de957f733a35c618d6b4fdfb68a71eb7	gnu/installer/newt/services.scm

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).