diff options
Diffstat (limited to 'gnu/system')
-rw-r--r-- | gnu/system/examples/vm-image.tmpl | 6 | ||||
-rw-r--r-- | gnu/system/file-systems.scm | 21 | ||||
-rw-r--r-- | gnu/system/hurd.scm | 5 | ||||
-rw-r--r-- | gnu/system/image.scm | 21 | ||||
-rw-r--r-- | gnu/system/install.scm | 17 | ||||
-rw-r--r-- | gnu/system/locale.scm | 5 |
6 files changed, 54 insertions, 21 deletions
diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl index 343287eaf6..b68183a023 100644 --- a/gnu/system/examples/vm-image.tmpl +++ b/gnu/system/examples/vm-image.tmpl @@ -7,8 +7,8 @@ (use-modules (gnu) (guix) (srfi srfi-1)) (use-service-modules desktop mcron networking spice ssh xorg sddm) -(use-package-modules bootloaders certs fonts nvi - package-management wget xorg) +(use-package-modules bootloaders certs fonts + package-management xorg) (define vm-image-motd (plain-file "motd" " \x1b[1;37mThis is the GNU system. Welcome!\x1b[0m @@ -77,7 +77,7 @@ accounts.\x1b[0m root ALL=(ALL) ALL %wheel ALL=NOPASSWD: ALL\n")) - (packages (append (list font-bitstream-vera nss-certs nvi wget) + (packages (append (list font-bitstream-vera nss-certs) %base-packages)) (services diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 95b757a698..529f1536de 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -85,6 +85,7 @@ %elogind-file-systems %base-file-systems + %base-live-file-systems %container-file-systems <file-system-mapping> @@ -495,6 +496,26 @@ TARGET in the other system." %efivars-file-system %immutable-store)) +(define %base-live-file-systems + ;; This is the bare minimum to use live file-systems. + ;; Used in installation-os. + (list (file-system + (mount-point "/") + (device (file-system-label "Guix_image")) + (type "ext4")) + + ;; Make /tmp a tmpfs instead of keeping the overlayfs. This + ;; originally was used for unionfs because FUSE creates + ;; '.fuse_hiddenXYZ' files for each open file, and this confuses + ;; Guix's test suite, for instance (see + ;; <http://bugs.gnu.org/23056>). We keep this for overlayfs to be + ;; on the safe side. + (file-system + (mount-point "/tmp") + (device "none") + (type "tmpfs") + (check? #f)))) + ;; File systems for Linux containers differ from %base-file-systems in that ;; they impose additional restrictions such as no-exec or need different ;; options to function properly. diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm index 22dafae622..3b138bef65 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -26,6 +26,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages certs) #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) #:use-module (gnu packages file) @@ -34,6 +35,7 @@ #:use-module (gnu packages guile-xyz) #:use-module (gnu packages hurd) #:use-module (gnu packages less) + #:use-module (gnu packages linux) #:use-module (gnu packages texinfo) #:use-module (gnu services) #:use-module (gnu services base) @@ -71,7 +73,7 @@ (list shepherd-0.8 hurd netdde bash coreutils file findutils grep sed diffutils patch gawk tar gzip bzip2 xz lzip guile-3.0-latest guile-colorized guile-readline - net-base inetutils less shadow sudo which + net-base nss-certs inetutils less procps shadow sudo which info-reader)) (define %base-services/hurd @@ -127,6 +129,7 @@ (file-systems '()) (packages %base-packages/hurd) (timezone "GNUrope") + (locale-libcs (list glibc/hurd)) (name-service-switch #f) (essential-services (hurd-default-essential-services this-operating-system)) (setuid-programs %setuid-programs/hurd))) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 5b8da2f896..fa4cab0b03 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -77,6 +77,7 @@ root-partition mbr-disk-image + mbr-hybrid-disk-image efi-disk-image iso9660-image docker-image @@ -86,6 +87,7 @@ image-with-os mbr-raw-image-type + mbr-hybrid-raw-image-type efi-raw-image-type efi32-raw-image-type qcow2-image-type @@ -156,6 +158,13 @@ parent image record." (inherit root-partition) (offset root-offset)))))) +(define mbr-hybrid-disk-image + (image-without-os + (format 'disk-image) + (partition-table-type 'mbr) + (partitions + (list esp-partition root-partition)))) + (define efi-disk-image (image-without-os (format 'disk-image) @@ -217,6 +226,11 @@ set to the given OS." (name 'mbr-raw) (constructor (cut image-with-os mbr-disk-image <>)))) +(define mbr-hybrid-raw-image-type + (image-type + (name 'mbr-hybrid-raw) + (constructor (cut image-with-os mbr-hybrid-disk-image <>)))) + (define efi-raw-image-type (image-type (name 'efi-raw) @@ -516,6 +530,13 @@ used in the image." (image-partition-table-type image))) (else ""))) + (when (and (gpt-image? image) + (not + (memq (bootloader-name bootloader) '(grub-efi grub-efi32)))) + (raise + (formatted-message + (G_ "EFI bootloader required with GPT partitioning")))) + (let* ((format (image-format image)) (image-type (format->image-type format)) (image-type-options (genimage-type-options image-type image)) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 7a68c19606..28161de153 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -517,22 +517,7 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m (file-systems ;; Note: the disk image build code overrides this root file system with ;; the appropriate one. - (cons* (file-system - (mount-point "/") - (device (file-system-label "Guix_image")) - (type "ext4")) - - ;; Make /tmp a tmpfs instead of keeping the overlayfs. This - ;; originally was used for unionfs because FUSE creates - ;; '.fuse_hiddenXYZ' files for each open file, and this confuses - ;; Guix's test suite, for instance (see - ;; <http://bugs.gnu.org/23056>). We keep this for overlayfs to be - ;; on the safe side. - (file-system - (mount-point "/tmp") - (device "none") - (type "tmpfs") - (check? #f)) + (append %base-live-file-systems ;; XXX: This should be %BASE-FILE-SYSTEMS but we don't need ;; elogind's cgroup file systems. diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm index 6895b209dc..bc572baeb9 100644 --- a/gnu/system/locale.scm +++ b/gnu/system/locale.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014-2017, 2019-2021, 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2023 Janneke Nieuwenhuizen <jannek@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -147,7 +148,9 @@ data format changes between libc versions." (define %default-locale-libcs ;; The libcs for which we build locales by default. - (list glibc-2.33 glibc)) + (if (system-hurd?) + (list glibc/hurd) + (list glibc-2.33 glibc))) (define %default-locale-definitions ;; Arbitrary set of locales that are built by default. They are here mostly |