aboutsummaryrefslogtreecommitdiff
path: root/gnu/system
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/examples/vm-image.tmpl6
-rw-r--r--gnu/system/file-systems.scm21
-rw-r--r--gnu/system/hurd.scm5
-rw-r--r--gnu/system/image.scm21
-rw-r--r--gnu/system/install.scm17
-rw-r--r--gnu/system/locale.scm5
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