summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-21 21:38:19 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-21 21:38:19 -0400
commit49b350fafc2c3ea1db66461b73d4e304cd13ec92 (patch)
tree9b9b1a4a383b5175241ae6b91b83de0590f13983 /gnu/system
parent03b5668a035ba96c9690476078c5ee1d5793f3e2 (diff)
parente584a093f943be216fdc93895281fde835836b8d (diff)
downloadguix-49b350fafc2c3ea1db66461b73d4e304cd13ec92.tar.gz
Merge branch 'master' into staging.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/file-systems.scm7
-rw-r--r--gnu/system/hurd.scm9
-rw-r--r--gnu/system/images/novena.scm4
-rw-r--r--gnu/system/linux-container.scm15
-rw-r--r--gnu/system/linux-initrd.scm4
5 files changed, 27 insertions, 12 deletions
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index e1d1fb72cc..437f8da898 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -60,6 +60,7 @@
             file-system-location
 
             file-system-type-predicate
+            file-system-mount-point-predicate
             btrfs-subvolume?
             btrfs-store-subvolume-file-name
 
@@ -671,6 +672,12 @@ system has the given TYPE."
   (lambda (fs)
     (string=? (file-system-type fs) type)))
 
+(define (file-system-mount-point-predicate mount-point)
+  "Return a predicate that, when passed a file system, returns #t if that file
+system has the given MOUNT-POINT."
+  (lambda (fs)
+    (string=? (file-system-mount-point fs) mount-point)))
+
 
 ;;;
 ;;; Btrfs specific helpers.
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 2acc7b7e11..8e95d0a16c 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -65,10 +65,13 @@
         gnumach)))
 
 (define %base-packages/hurd
-  (list hurd bash coreutils file findutils grep sed
+  ;; Note: the Shepherd comes before the Hurd, not just because its duty is to
+  ;; shepherd the herd, but also because we want its 'halt' and 'reboot'
+  ;; commands to take precedence.
+  (list shepherd hurd 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 shepherd sudo which
+        net-base inetutils less shadow sudo which
         info-reader))
 
 (define %base-services/hurd
diff --git a/gnu/system/images/novena.scm b/gnu/system/images/novena.scm
index 3ce62fbf3b..5b625e56c5 100644
--- a/gnu/system/images/novena.scm
+++ b/gnu/system/images/novena.scm
@@ -41,8 +41,8 @@
     (bootloader (bootloader-configuration
                  (bootloader u-boot-novena-bootloader)
                  (targets '("/dev/vda"))))
-    (initrd-modules '("sdhci-esdhc-imx" "ahci_imx" "i2c-dev"))
-    ;(kernel linux-libre-arm-generic)
+    (initrd-modules '())
+    (kernel linux-libre-arm-generic)
     (kernel-arguments '("console=ttymxc1,115200"))
     (file-systems (cons (file-system
                           (device (file-system-label "my-root"))
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index e6fd0f1315..eeb0f68c02 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2017, 2019-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Google LLC
@@ -248,11 +248,13 @@ that will be shared with the host system."
 (define* (eval/container exp
                          #:key
                          (mappings '())
-                         (namespaces %namespaces))
+                         (namespaces %namespaces)
+                         (guest-uid 0) (guest-gid 0))
   "Evaluate EXP, a gexp, in a new process executing in separate namespaces as
 listed in NAMESPACES.  Add MAPPINGS, a list of <file-system-mapping>, to the
-set of directories visible in the process's mount namespace.  Return the
-process' exit status as a monadic value.
+set of directories visible in the process's mount namespace.  Inside the
+namespaces, run code as GUEST-UID and GUEST-GID.  Return the process' exit
+status as a monadic value.
 
 This is useful to implement processes that, unlike derivations, are not
 entirely pure and need to access the outside world or to perform side
@@ -291,4 +293,7 @@ effects."
                                                 lowered))
                                    (list "-c"
                                          (object->string
-                                          (lowered-gexp-sexp lowered))))))))))))
+                                          (lowered-gexp-sexp lowered))))))
+                  #:namespaces namespaces
+                  #:guest-uid guest-uid
+                  #:guest-gid guest-gid))))))
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 329cd38cd6..4c4c78e444 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -181,7 +181,7 @@ MODULES and taken from LINUX."
   "Return as a file-like object a raw initrd, with kernel
 modules taken from LINUX.  FILE-SYSTEMS is a list of file-systems to be
 mounted by the initrd, possibly in addition to the root file system specified
-on the kernel command line via '--root'. LINUX-MODULES is a list of kernel
+on the kernel command line via 'root'.  LINUX-MODULES is a list of kernel
 modules to be loaded at boot time. MAPPED-DEVICES is a list of device
 mappings to realize before FILE-SYSTEMS are mounted.
 HELPER-PACKAGES is a list of packages to be copied in the initrd. It may include
@@ -375,7 +375,7 @@ FILE-SYSTEMS."
   "Return as a file-like object a generic initrd, with kernel
 modules taken from LINUX.  FILE-SYSTEMS is a list of file-systems to be
 mounted by the initrd, possibly in addition to the root file system specified
-on the kernel command line via '--root'.  MAPPED-DEVICES is a list of device
+on the kernel command line via 'root'.  MAPPED-DEVICES is a list of device
 mappings to realize before FILE-SYSTEMS are mounted.
 
 When true, KEYBOARD-LAYOUT is a <keyboard-layout> record denoting the desired