[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
11/24: system: examples: Add bare-hurd.tmpl.
From: |
guix-commits |
Subject: |
11/24: system: examples: Add bare-hurd.tmpl. |
Date: |
Sat, 6 Jun 2020 11:09:38 -0400 (EDT) |
janneke pushed a commit to branch wip-hurd-vm
in repository guix.
commit f4f63f11d6dcd65cd3fffb046034f5f531a42b0f
Author: Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Mon Apr 13 17:15:10 2020 +0200
system: examples: Add bare-hurd.tmpl.
* gnu/system/hurd.scm (%hurd-def%hurd-default-operating-system-kernel,
%hurd-default-operating-system): New exported variables.
* gnu/system/examples/bare-hurd.tmpl: New file.
* Makefile.am (EXAMPLES): Add it.
* tests/guix-system.sh: Add --target=i586-pc-gnu when testing it.
---
Makefile.am | 3 ++-
gnu/services.scm | 2 ++
gnu/system/examples/bare-hurd.tmpl | 31 +++++++++++++++++++++++++
gnu/system/hurd.scm | 47 ++++++++++++++++++++++++++++++++++++--
tests/guix-system.sh | 7 +++++-
5 files changed, 86 insertions(+), 4 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index f3985f9..0feb75c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017 Leo Famulari <leo@famulari.name>
# Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-# Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2018 Nikita <nikita@n0.is>
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
@@ -348,6 +348,7 @@ AUX_FILES = \
EXAMPLES = \
gnu/system/examples/asus-c201.tmpl \
gnu/system/examples/bare-bones.tmpl \
+ gnu/system/examples/bare-hurd.tmpl \
gnu/system/examples/beaglebone-black.tmpl \
gnu/system/examples/desktop.tmpl \
gnu/system/examples/lightweight-desktop.tmpl \
diff --git a/gnu/services.scm b/gnu/services.scm
index 2e4648b..63a709f 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès
<ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -33,6 +34,7 @@
#:use-module (guix modules)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages hurd)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
diff --git a/gnu/system/examples/bare-hurd.tmpl
b/gnu/system/examples/bare-hurd.tmpl
new file mode 100644
index 0000000..16f2041
--- /dev/null
+++ b/gnu/system/examples/bare-hurd.tmpl
@@ -0,0 +1,31 @@
+;; -*-scheme-*-
+
+;; This is an operating system configuration template
+;; for a "bare bones" setup, with no X11 display server.
+
+;; To build a disk image for a virtual machine, do
+;;
+;; ./pre-inst-env guix system disk-image --target=i586-pc-gnu --no-grafts \
+;; gnu/system/examples/bare-hurd.tmpl
+;;
+;; it boots, but needs activation, more setup and services to be useful.
+
+(use-modules (gnu) (gnu system hurd) (guix utils))
+
+(define %hurd-os
+ (operating-system
+ (inherit %hurd-default-operating-system)
+ (bootloader (bootloader-configuration
+ (bootloader grub-minimal-bootloader)
+ (target "/dev/sdX")))
+ (file-systems (cons (file-system
+ (device (file-system-label "my-root"))
+ (mount-point "/")
+ (type "ext2"))
+ %base-file-systems))
+ (host-name "guixygnu")
+ (timezone "Europe/Amsterdam")
+ (packages %base-packages/hurd)
+ (services %base-services/hurd)))
+
+%hurd-os
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 3ccf47a..e11055c 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -21,6 +21,7 @@
#:use-module (guix gexp)
#:use-module (guix profiles)
#:use-module (guix utils)
+ #:use-module (gnu bootloader)
#:use-module (gnu bootloader grub)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
@@ -31,8 +32,18 @@
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages hurd)
#:use-module (gnu packages less)
+ #:use-module (gnu services)
+ #:use-module (gnu services base)
+ #:use-module (gnu services hurd)
+ #:use-module (gnu services shepherd)
+ #:use-module (gnu system)
+ #:use-module (gnu system shadow)
#:use-module (gnu system vm)
- #:export (cross-hurd-image))
+ #:export (cross-hurd-image
+ %base-packages/hurd
+ %base-services/hurd
+ %hurd-default-operating-system
+ %hurd-default-operating-system-kernel))
;;; Commentary:
;;;
@@ -41,10 +52,42 @@
;;;
;;; Code:
+(define %hurd-default-operating-system-kernel
+ (if (hurd-system?)
+ gnumach
+ ;; A cross-built GNUmach does not work
+ (with-parameters ((%current-system "i686-linux")
+ (%current-target-system #f))
+ gnumach)))
+
(define %base-packages/hurd
(list hurd bash coreutils file findutils grep sed
guile-3.0 guile-colorized guile-readline
- net-base inetutils less which))
+ net-base inetutils less shepherd which))
+
+(define %base-services/hurd
+ '())
+
+(define %hurd-default-operating-system
+ (operating-system
+ (kernel %hurd-default-operating-system-kernel)
+ (kernel-arguments '())
+ (hurd hurd)
+ (bootloader (bootloader-configuration
+ (bootloader grub-minimal-bootloader)
+ (target "/dev/vda")))
+ (initrd (lambda _ '()))
+ (initrd-modules (lambda _ '()))
+ (firmware '())
+ (host-name "guixygnu")
+ (file-systems '())
+ (packages %base-packages/hurd)
+ (timezone "GNUrope")
+ (name-service-switch #f)
+ (essential-services (hurd-default-essential-services
this-operating-system))
+ (pam-services '())
+ (setuid-programs '())
+ (sudoers-file #f)))
(define* (cross-hurd-image #:key (hurd hurd) (gnumach gnumach))
"Return a cross-built GNU/Hurd image."
diff --git a/tests/guix-system.sh b/tests/guix-system.sh
index 3a831cb..0e22686 100644
--- a/tests/guix-system.sh
+++ b/tests/guix-system.sh
@@ -307,7 +307,12 @@ guix system search anonym network | grep "^name: tor"
# Verify that the examples can be built.
for example in gnu/system/examples/*.tmpl; do
- guix system -n disk-image "$example"
+ if echo "$example" | grep hurd; then
+ target="--target=i586-pc-gnu"
+ else
+ target=
+ fi
+ guix system -n disk-image $target "$example"
done
# Verify that the disk image types can be built.
- branch wip-hurd-vm created (now da0c137), guix-commits, 2020/06/06
- 03/24: linux-boot: Update 'make-hurd-device-nodes'., guix-commits, 2020/06/06
- 04/24: image: Add Hurd support., guix-commits, 2020/06/06
- 01/24: gnu: hurd: Update to upstream Hurd-reserved xattr index., guix-commits, 2020/06/06
- 05/24: system: hurd: Add hurd-default-essential-services., guix-commits, 2020/06/06
- 02/24: syscalls: set-thread-name, thread-name: Stub for the Hurd., guix-commits, 2020/06/06
- 07/24: bootloader: Extend `<menu-entry>' for multiboot., guix-commits, 2020/06/06
- 08/24: system: Add 'multiboot-modules' field to <boot-parameters>., guix-commits, 2020/06/06
- 11/24: system: examples: Add bare-hurd.tmpl.,
guix-commits <=
- 12/24: system: Support hurd activation service for the Hurd., guix-commits, 2020/06/06
- 09/24: bootloader: grub: Add support for multiboot., guix-commits, 2020/06/06
- 10/24: system: Use 'hurd' package in label., guix-commits, 2020/06/06
- 13/24: services: Support etc-service for the Hurd., guix-commits, 2020/06/06
- 14/24: gnu: hurd: Create minimal "runsystem" script to invoke "rc"., guix-commits, 2020/06/06
- 18/24: system: hurd: Populate services., guix-commits, 2020/06/06
- 19/24: hurd-boot: Further cleanup of "rc"., guix-commits, 2020/06/06
- 22/24: system: hurd: Remove 'cross-hurd-image' hack., guix-commits, 2020/06/06
- 06/24: system: Add 'hurd' field to <operating-system>., guix-commits, 2020/06/06
- 16/24: services: Add `hurd-console-service-type'., guix-commits, 2020/06/06