From 59bcffa314171294278444aad4b7012abe50257a Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 13 Apr 2020 17:15:10 +0200 Subject: 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. --- gnu/system/examples/bare-hurd.tmpl | 31 +++++++++++++++++++++++++ gnu/system/hurd.scm | 47 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 gnu/system/examples/bare-hurd.tmpl (limited to 'gnu/system') diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl new file mode 100644 index 0000000000..16f20416aa --- /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 3ccf47aa21..e11055cbb8 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -21,6 +21,7 @@ (define-module (gnu system hurd) #: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 @@ (define-module (gnu system hurd) #: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 @@ (define-module (gnu system hurd) ;;; ;;; 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." -- cgit v1.2.3