diff options
| author | Janneke Nieuwenhuizen <janneke@gnu.org> | 2026-05-14 10:34:41 +0200 |
|---|---|---|
| committer | Janneke Nieuwenhuizen <janneke@gnu.org> | 2026-05-19 18:34:56 +0200 |
| commit | c62a39174e2cdc5d4efaa9c4940ea010d6dba184 (patch) | |
| tree | f1efbeb791d7cfe6251a57cea07345fc6ff5c876 /gnu/system/images | |
| parent | b8f6ad67504ccb29effab431778e592c81632f11 (diff) | |
system: hurd-boot: Prepare for runsystem in Guile.
Fo guile to run, it needs pipe support: without pipe support it aborts at
startup. Pipe support is currently createn in runsystem by creating a
passive translator
settrans --create /servers/socket/1 /hurd/pflocal
However, this needs a writable root file-system, and runsystem is started with
a readonly root file-system.
This patch enables running guile early in runsystem, and thus prepares for
replacing the runsystem shell script with a guile program, by embedding the
servers/socket/1 passive translator into the hurd system image using xattr.
* gnu/build/hurd-boot.scm (make-hurd-device-nodes): Change optional root
parameter to keyword #:root. Add #:hurd keyword parameter. Use it to
create servers/socket/1 (pipe) and proc passive xattr translators.
* gnu/build/image.scm (initialize-root-partition): Update caller.
* gnu/system/image.scm (with-imported-modules*): Include (ice-9 optargs).
* gnu/system/images/hurd.scm (hurd-initialize-root-partition): Use it to
update caller.
* guix/scripts/system.scm (install): Update caller.
Change-Id: Ib3a672ae78bd969a2a4c0e33db8e38ccf71238ba
Merges: #8609
Diffstat (limited to 'gnu/system/images')
| -rw-r--r-- | gnu/system/images/hurd.scm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm index ba223b1e0cd..c65a9c8f13d 100644 --- a/gnu/system/images/hurd.scm +++ b/gnu/system/images/hurd.scm | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> | 2 | ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> |
| 3 | ;;; Copyright © 2020, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> | 3 | ;;; Copyright © 2020, 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org> |
| 4 | ;;; | 4 | ;;; |
| 5 | ;;; This file is part of GNU Guix. | 5 | ;;; This file is part of GNU Guix. |
| 6 | ;;; | 6 | ;;; |
| @@ -22,6 +22,7 @@ | |||
| 22 | #:use-module (gnu bootloader) | 22 | #:use-module (gnu bootloader) |
| 23 | #:use-module (gnu bootloader grub) | 23 | #:use-module (gnu bootloader grub) |
| 24 | #:use-module (gnu image) | 24 | #:use-module (gnu image) |
| 25 | #:use-module (gnu packages hurd) | ||
| 25 | #:use-module (gnu packages ssh) | 26 | #:use-module (gnu packages ssh) |
| 26 | #:use-module (guix platforms x86) | 27 | #:use-module (guix platforms x86) |
| 27 | #:use-module (gnu services) | 28 | #:use-module (gnu services) |
| @@ -97,7 +98,14 @@ | |||
| 97 | #~(lambda* (#:rest args) | 98 | #~(lambda* (#:rest args) |
| 98 | (apply initialize-root-partition | 99 | (apply initialize-root-partition |
| 99 | (append args | 100 | (append args |
| 100 | (list #:make-device-nodes make-hurd-device-nodes | 101 | (list #:make-device-nodes |
| 102 | (lambda device-args | ||
| 103 | (let-keywords (cdr args) #t | ||
| 104 | ((system-directory #f)) | ||
| 105 | (let ((hurd (in-vicinity system-directory | ||
| 106 | "hurd/hurd"))) | ||
| 107 | (apply make-hurd-device-nodes | ||
| 108 | (cons* #:hurd hurd device-args))))) | ||
| 101 | ;; XXX Creating a db.sqlite with journal_mode=WAL | 109 | ;; XXX Creating a db.sqlite with journal_mode=WAL |
| 102 | ;; yields "unable to open database file" on GNU/Hurd | 110 | ;; yields "unable to open database file" on GNU/Hurd |
| 103 | ;; for an sqlite with the hurd-locking-mode.patch; | 111 | ;; for an sqlite with the hurd-locking-mode.patch; |
