~ruther/guix-local

542db8304ed2991ce870c93bd71456e942624888 — Rutherther a month ago 056dd11
installer: services: Disable desktop page on Hurd and 32-bit x86.

To prevent confusion, remove possibility to choose the desktop services on
both Hurd and 32-bit x86. As the info text suggests, desktop environments are not
available on Hurd. As for x86, there some of the services do not build. While
it is more idiomatic to fix those services, for the 1.5.0 release, use this
workaround to disable the desktop page. This ensures users aren't left
building something that will fail.

* gnu/installer/newt/services.scm
(run-desktop-environments-cbt-page): No longer show special info on Hurd.
(run-desktop-environments-cbt-page/maybe): Call
run-desktop-environments-cbt-page on architectures that support desktop
environments well.
(run-services-page): Call maybe variant of run-desktop-environments-cbt-page.

Change-Id: I4bb636e4d5bf2b73bfaf276fd359c77402c5c5f7
Fixes: #5400
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5503
1 files changed, 13 insertions(+), 5 deletions(-)

M gnu/installer/newt/services.scm
M gnu/installer/newt/services.scm => gnu/installer/newt/services.scm +13 -5
@@ 36,11 36,9 @@
environments."
  (let ((items (filter desktop-system-service? (%system-services))))
    (run-checkbox-tree-page
     #:info-text (if (target-hurd?)
                     (G_ "Currently, none of these is available for the Hurd.")
                     (G_ "Please select the desktop environment(s) you wish to \
     #: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."))
to choose from them later when you log in.")
     #:title (G_ "Desktop environment")
     #:items items
     #:selection (map system-service-recommended? items)


@@ 50,6 48,16 @@ to choose from them later when you log in."))
     (lambda ()
       (abort-to-prompt 'installer-step 'abort)))))

;; FIXME: all platforms should support %desktop-services and some of the
;; offered desktop environments. Instead of globally disabling the desktop
;; page, disable only non-working desktop environments.
(define (run-desktop-environments-cbt-page/maybe)
  "Run page with desktop environments, as long as the user is on
a system that supports them."
  (if (or (target-hurd?) (target-x86-32?))
      '()
      (run-desktop-environments-cbt-page)))

(define (run-networking-cbt-page)
  "Run a page allowing the user to select networking services."
  (let ((items (filter (lambda (service)


@@ 131,7 139,7 @@ client may be enough for a server.")
       (abort-to-prompt 'installer-step 'abort)))))

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