summary refs log tree commit diff
diff options
context:
space:
mode:
authorJanneke Nieuwenhuizen <janneke@gnu.org>2024-10-20 19:37:25 +0200
committerJan (janneke) Nieuwenhuizen <janneke@gnu.org>2024-11-11 07:28:33 +0100
commit6dbfe1a118dcded3a9d77f8321aa43fbdd255011 (patch)
treed1215abdd57b95bab7e022ab661249467846cfb0
parentfdb23d9db8ca5431e280366c5c834e01eda62a5f (diff)
downloadguix-6dbfe1a118dcded3a9d77f8321aa43fbdd255011.tar.gz
system: hurd: Remove qemu networking from %base-services/hurd.
This allows us to use %base-services/hurd for services in a Hurd config for a
real machine without removing static-networking.

* gnu/system/hurd.scm (%base-services/hurd): Factor networking out to...
(%base-services+qemu-networking/hurd): ..this new variable.
* gnu/system/examples/bare-hurd.tmpl (%hurd-os): Use it.
* gnu/services/virtualization.scm (%hurd-vm-operating-system): Use it.
* gnu/system/images/hurd.scm (hurd-barebones-os): Use it.  Add comment about
QEMU and networking for a real machine.

Change-Id: I777a63410383b9bf8b5740e4513dbc1e9fb0fd41
-rw-r--r--gnu/services/virtualization.scm4
-rw-r--r--gnu/system/examples/bare-hurd.tmpl10
-rw-r--r--gnu/system/hurd.scm23
-rw-r--r--gnu/system/images/hurd.scm2
4 files changed, 25 insertions, 14 deletions
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index d87e494348..d33dfa6ca7 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com>
 ;;; Copyright © 2018, 2020-2024 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2020, 2021, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2021, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
@@ -1643,7 +1643,7 @@ preventing password-based authentication as 'root'."
                ;; /etc/guix/acl file in the childhurd.  Thus, clear
                ;; 'authorize-key?' so that it's not overridden at activation
                ;; time.
-               (modify-services %base-services/hurd
+               (modify-services %base-services+qemu-networking/hurd
                  (guix-service-type config =>
                                     (guix-configuration
                                      (inherit config)
diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl
index 463c7ee798..68c6d3c166 100644
--- a/gnu/system/examples/bare-hurd.tmpl
+++ b/gnu/system/examples/bare-hurd.tmpl
@@ -1,7 +1,7 @@
 ;; -*-scheme-*-
 
 ;; This is an operating system configuration template
-;; for a "bare bones" setup, with no X11 display server.
+;; for a "bare bones" QEMU setup, with no X11 display server.
 
 ;; To build a disk image for a virtual machine, do
 ;;
@@ -54,6 +54,12 @@
                               (permit-root-login #t)
                               (allow-empty-passwords? #t)
                               (password-authentication? #t)))
-                    %base-services/hurd))))
+                    ;; For installing on a real (non-QEMU) machine, use:
+                    ;; (static-networking-service-type
+                    ;;   (list %loopback-static-networking
+                    ;;        (static-networking
+                    ;;         ...)))
+                    ;; %base-services/hurd
+                    %base-services+qemu-networking/hurd))))
 
 %hurd-os
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 6d6a20cf57..283bae6f10 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020-2024 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,6 +47,7 @@
   #:use-module (gnu system vm)
   #:export (%base-packages/hurd
             %base-services/hurd
+            %base-services+qemu-networking/hurd
             %hurd-default-operating-system
             %hurd-default-operating-system-kernel
             %setuid-programs/hurd))
@@ -79,14 +80,6 @@
 (define %base-services/hurd
   (append (list (service hurd-console-service-type
                          (hurd-console-configuration (hurd hurd)))
-                (service static-networking-service-type
-                         (list %loopback-static-networking
-
-                               ;; QEMU user-mode networking.  To get "eth0", you need
-                               ;; QEMU to emulate a device for which Mach has an
-                               ;; in-kernel driver, for instance with:
-                               ;; --device rtl8139,netdev=net0 --netdev user,id=net0
-                               %qemu-static-networking))
                 (service guix-service-type
                          (guix-configuration
                           (extra-options '("--disable-chroot"
@@ -102,6 +95,18 @@
                            (tty (string-append "tty" (number->string n))))))
                (iota 6 1))))
 
+(define %base-services+qemu-networking/hurd
+  (cons
+   (service static-networking-service-type
+            (list %loopback-static-networking
+
+                  ;; QEMU user-mode networking.  To get "eth0", you need
+                  ;; QEMU to emulate a device for which Mach has an
+                  ;; in-kernel driver, for instance with:
+                  ;; --device rtl8139,netdev=net0 --netdev user,id=net0
+                  %qemu-static-networking))
+   %base-services/hurd))
+
 (define %setuid-programs/hurd
   ;; Default set of setuid-root programs.
   (map file-like->setuid-program
diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm
index 9b618f7dc6..01c422a54f 100644
--- a/gnu/system/images/hurd.scm
+++ b/gnu/system/images/hurd.scm
@@ -60,7 +60,7 @@
                               (permit-root-login #t)
                               (allow-empty-passwords? #t)
                               (password-authentication? #t)))
-               %base-services/hurd))))
+                    %base-services+qemu-networking/hurd))))
 
 (define hurd-initialize-root-partition
   #~(lambda* (#:rest args)