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
This commit is contained in:
Janneke Nieuwenhuizen 2026-01-09 11:04:03 +01:00
parent 0e8f319bcb
commit 139a69b602
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
3 changed files with 38 additions and 13 deletions

View file

@ -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)

View file

@ -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"))

View file

@ -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))