summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanneke Nieuwenhuizen <janneke@gnu.org>2026-01-09 11:04:03 +0100
committerRutherther <rutherther@ditigal.xyz>2026-01-14 09:16:49 +0100
commit0ac92150b1e4de3486b453fc10debc082a1a5f1f (patch)
tree5383ebb28fdf2cc791f26aa4f2e46e509c6e4c99
parent0afb832a3b7b51d570f9f102dc9e11f8283a29de (diff)
installer: Add Hurd x86_64 as an option.
* gnu/installer/newt/kernel.scm (run-kernel-page): Rename "Hurd" to "Hurd 32-bit (experimental)". On 64-bit, also offer "Hurd 64-bit (highly experimental!)", and make these strings translatable. Make "Linux Libre" the first option. Add a line break after "When in doubt...". Upon re-entrry, use pre-selected kernel as the default. Make sure to always [re]set %current-target-system, as this page may be revisited and another kernel choice selected. * gnu/installer/kernel.scm (kernel->configuration): Update accordingly. * gnu/installer/final.scm (install-system): Also cater for the 64-bit Hurd by simply adding --target=(%current-target-system). Change-Id: I14cb2d2815265b8841c16cf9bcc3857b1024f507
-rw-r--r--gnu/installer/final.scm8
-rw-r--r--gnu/installer/kernel.scm4
-rw-r--r--gnu/installer/newt/kernel.scm39
3 files changed, 38 insertions, 13 deletions
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index 45ba1c524be..22c44a27c1e 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2024,2026 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -168,8 +168,10 @@ or #f. Return #t on success and #f on failure."
(const '())))
(install-command (append `( "guix" "system" "init"
"--fallback"
- ,@(if (target-hurd?)
- '("--target=i586-pc-gnu")
+ ,@(if (%current-target-system)
+ `(,(string-append
+ "--target="
+ (%current-target-system)))
'()))
options
(list (%installer-configuration-file)
diff --git a/gnu/installer/kernel.scm b/gnu/installer/kernel.scm
index c82b06fb830..a07d24d09a6 100644
--- a/gnu/installer/kernel.scm
+++ b/gnu/installer/kernel.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,7 +27,7 @@
str)
(define (kernel->configuration kernel dry-run?)
- (if (equal? kernel "Hurd")
+ (if (string-prefix? "Hurd" kernel)
`((kernel %hurd-default-operating-system-kernel)
,(comment (G_ ";; \"noide\" disables the gnumach IDE driver, enabling rumpdisk.\n"))
(kernel-arguments '("noide"))
diff --git a/gnu/installer/newt/kernel.scm b/gnu/installer/newt/kernel.scm
index 3117247312f..abf39c6aebd 100644
--- a/gnu/installer/newt/kernel.scm
+++ b/gnu/installer/newt/kernel.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,23 +23,46 @@
#:export (run-kernel-page))
(define (run-kernel-page)
- (let* ((kernels `(,@(if (target-x86?) '("Hurd") '())
- "Linux Libre"))
+ ;; TRANSLATORS: "Hurd" is a proper noun and must not be translated.
+ (let* ((hurd-x86 (G_ "Hurd 32-bit (experimental)"))
+ (hurd-x86_64 (G_ "Hurd 64-bit (highly experimental!)"))
+ (linux-libre "Linux Libre")
+ (kernels (parameterize ((%current-target-system #f))
+ `(,linux-libre
+ ,@(cond ((target-x86-64?)
+ (list hurd-x86 hurd-x86_64))
+ ((target-x86?)
+ (list hurd-x86))
+ (else
+ '())))))
+ (default (cond ((equal? (%current-target-system) "i586-pc-gnu")
+ hurd-x86)
+ ((equal? (%current-target-system) "x86_64-pc-gnu")
+ hurd-x86_64)
+ (else
+ linux-libre)))
(result
(run-listbox-selection-page
#:title (G_ "Kernel")
#:info-text
+ ;; TRANSLATORS: "Hurd" is a proper noun and must not be translated.
+ ;; TRANSLATORS: "Linux Libre" is a literal and must not be translated.
(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).")
+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"
+ #:listbox-default-item default
#:button-text (G_ "Back")
#:button-callback-procedure
(lambda _
(abort-to-prompt 'installer-step 'abort)))))
- (when (equal? result "Hurd")
- (%current-target-system "i586-pc-gnu"))
+ (let ((target (cond ((equal? result hurd-x86)
+ "i586-pc-gnu")
+ ((equal? result hurd-x86_64)
+ "x86_64-pc-gnu")
+ (else
+ #f))))
+ (%current-target-system target))
result))