aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer/newt
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/installer/newt')
-rw-r--r--gnu/installer/newt/kernel.scm45
-rw-r--r--gnu/installer/newt/partition.scm10
-rw-r--r--gnu/installer/newt/services.scm31
3 files changed, 73 insertions, 13 deletions
diff --git a/gnu/installer/newt/kernel.scm b/gnu/installer/newt/kernel.scm
new file mode 100644
index 0000000000..3117247312
--- /dev/null
+++ b/gnu/installer/newt/kernel.scm
@@ -0,0 +1,45 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; 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 kernel)
+ #:use-module (gnu installer newt page)
+ #:use-module (guix i18n)
+ #:use-module (guix utils)
+ #:export (run-kernel-page))
+
+(define (run-kernel-page)
+ (let* ((kernels `(,@(if (target-x86?) '("Hurd") '())
+ "Linux Libre"))
+ (result
+ (run-listbox-selection-page
+ #:title (G_ "Kernel")
+ #:info-text
+ (G_ "Please select a kernel. When in doubt, choose \"Linux Libre\".
+The Hurd is offered as a technology preview and development aid; many packages \
+are not yet available in Guix, such as a desktop environment or even a windowing \
+system (X, Wayland).")
+ #:listbox-items kernels
+ #:listbox-item->text identity
+ #:listbox-default-item "Linux Libre"
+ #:button-text (G_ "Back")
+ #:button-callback-procedure
+ (lambda _
+ (abort-to-prompt 'installer-step 'abort)))))
+ (when (equal? result "Hurd")
+ (%current-target-system "i586-pc-gnu"))
+ result))
diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index 48dd306080..3a7e679577 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -26,6 +26,7 @@
#:use-module (gnu installer newt page)
#:use-module (gnu installer newt utils)
#:use-module (guix i18n)
+ #:use-module (guix utils)
#:use-module (ice-9 format)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
@@ -115,6 +116,7 @@ all data on disk will be lost, are you sure you want to proceed?") item)
Be careful, all data on the disk will be lost.")
#:title (G_ "Partition table")
#:listbox-items '("msdos" "gpt")
+ #:listbox-default-item (if (target-hurd?) "msdos" "gpt")
#:listbox-item->text identity
#:listbox-callback-procedure
(run-label-confirmation-page button-callback)
@@ -147,6 +149,8 @@ Be careful, all data on the disk will be lost.")
#:title (G_ "File-system type")
#:listbox-items '(btrfs ext4 jfs xfs
swap
+ ;; This is for the Hurd
+ ext2
;; These lack basic Unix features. Their only use
;; on GNU is for interoperation, e.g., with UEFI.
fat32 fat16 ntfs)
@@ -767,7 +771,11 @@ by pressing the Exit button.~%~%")))
(define (run-page devices)
(let* ((items
`((entire . ,(G_ "Guided - using the entire disk"))
- (entire-encrypted . ,(G_ "Guided - using the entire disk with encryption"))
+ ,@(if (target-hurd?)
+ '()
+ `((entire-encrypted
+ .
+ ,(G_ "Guided - using the entire disk with encryption"))))
(manual . ,(G_ "Manual"))))
(result (run-listbox-selection-page
#:info-text (G_ "Please select a partitioning method.")
diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm
index d1035b6524..848683e8c7 100644
--- a/gnu/installer/newt/services.scm
+++ b/gnu/installer/newt/services.scm
@@ -1,7 +1,7 @@
;;; 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 © 2020, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;;
@@ -26,6 +26,7 @@
#:use-module (gnu installer newt page)
#:use-module (gnu installer newt utils)
#:use-module (guix i18n)
+ #:use-module (guix utils)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:export (run-services-page))
@@ -33,11 +34,13 @@
(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)))
+ (let ((items (filter desktop-system-service? (%system-services))))
(run-checkbox-tree-page
- #:info-text (G_ "Please select the desktop environment(s) you wish to \
+ #: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 \
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)
@@ -51,7 +54,7 @@ to choose from them later when you log in.")
"Run a page allowing the user to select networking services."
(let ((items (filter (lambda (service)
(eq? 'networking (system-service-type service)))
- %system-services)))
+ (%system-services))))
(run-checkbox-tree-page
#:info-text (G_ "You can now select networking services to run on your \
system.")
@@ -69,7 +72,7 @@ system.")
(let ((items (filter (lambda (service)
(eq? 'document
(system-service-type service)))
- %system-services)))
+ (%system-services))))
(run-checkbox-tree-page
#:info-text (G_ "You can now select the CUPS printing service to run on your \
system.")
@@ -88,7 +91,7 @@ systems."
(let ((items (filter (lambda (service)
(eq? 'administration
(system-service-type service)))
- %system-services)))
+ (%system-services))))
(run-checkbox-tree-page
#:title (G_ "Console services")
#:info-text (G_ "Select miscellaneous services to run on your \
@@ -103,7 +106,11 @@ non-graphical system.")
(define (run-network-management-page)
"Run a page to select among several network management methods."
- (let ((title (G_ "Network management")))
+ (let ((title (G_ "Network management"))
+ (items (filter (lambda (service)
+ (eq? 'network-management
+ (system-service-type service)))
+ (%system-services))))
(run-listbox-selection-page
#:title title
#:info-text (G_ "Choose the method to manage network connections.
@@ -112,10 +119,10 @@ 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-items `(,@items
+ ,@(if (target-hurd?)
+ (list system-service-none)
+ '()))
#:listbox-item->text (compose G_ system-service-name)
#:sort-listbox-items? #f
#:button-text (G_ "Exit")