[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
23/36: system: hurd: Create system profile for guix development.
From: |
guix-commits |
Subject: |
23/36: system: hurd: Create system profile for guix development. |
Date: |
Mon, 27 Apr 2020 06:19:49 -0400 (EDT) |
janneke pushed a commit to branch wip-hurd-vm
in repository guix.
commit 20ff9e458e5d7923ca5daaaad7ec420c9c7808c3
Author: Jan (janneke) Nieuwenhuizen <address@hidden>
AuthorDate: Fri Apr 17 07:51:14 2020 +0200
system: hurd: Create system profile for guix development.
Doing
guix build -f gnu/system/hurd.scm
now produces a VM with a system profile that includes the minimal
requirements
to do guix development from git.
* gnu/system/hurd.scm (%hurd-os-development): New variable that includes
git-minimal and guix build dependencies.
(cross-hurd-image): Add new keyword parameter `os'; use it instead of global
%hurd-os and use %base-packages/hurd via os.
Return thunk for development.
---
gnu/system/hurd.scm | 40 ++++++++++++++++++++++++++++++++++++----
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 4ee6aa4..b5f2140 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -19,20 +19,30 @@
(define-module (gnu system hurd)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 match)
+ #:use-module (guix build-system gnu)
#:use-module (guix gexp)
+ #:use-module (guix packages)
#:use-module (guix profiles)
#:use-module (guix utils)
#:use-module (gnu bootloader grub)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages commencement)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages file)
+ #:use-module (gnu packages gawk)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages hurd)
#:use-module (gnu packages less)
+ #:use-module (gnu packages m4)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages version-control)
#:use-module (gnu services)
#:use-module (gnu services base)
#:use-module (gnu services hurd)
@@ -102,6 +112,25 @@
(pam-services '())
(setuid-programs '())))
+(define (input->packages input)
+ "Return the list of packages in INPUT."
+ (match input
+ ((label (and (? package?) package) . output)
+ (list package))
+ (_ '())))
+
+(define %hurd-os-development
+ (operating-system
+ (inherit %hurd-os)
+ (packages
+ (append
+ (list git-minimal)
+ (append-map input->packages
+ (fold alist-delete (package-direct-inputs guix)
+ '("graphviz" "po4a")))
+ (list gawk diffutils gnu-make m4 tar xz)
+ %base-packages/hurd))))
+
(define operating-system-accounts
(@@ (gnu system) operating-system-accounts))
@@ -148,7 +177,7 @@ fi\n")))
(define (hurd-shepherd-services os)
(append-map hurd-service->shepherd-service (operating-system-services os)))
-(define* (cross-hurd-image #:key (hurd hurd) (gnumach gnumach))
+(define* (cross-hurd-image #:key (hurd hurd) (gnumach gnumach) (os %hurd-os))
"Return a cross-built GNU/Hurd image."
(define (cross-built thing)
@@ -164,7 +193,7 @@ fi\n")))
(define system-profile
(map-manifest-entries cross-built-entry
- (packages->manifest %base-packages/hurd)))
+ (packages->manifest (operating-system-packages os))))
(define grub.cfg
(let ((hurd (cross-built hurd))
@@ -218,11 +247,11 @@ sshd:x:2:2:sshd:/var/empty:/bin/no-sh
(define shepherd.conf
(with-parameters ((%current-target-system "i586-pc-gnu"))
- (shepherd-configuration-file (hurd-shepherd-services %hurd-os))))
+ (shepherd-configuration-file (hurd-shepherd-services os))))
(define boot-activation
(with-parameters ((%current-target-system "i586-pc-gnu"))
- (operating-system-activation-script %hurd-os)))
+ (operating-system-activation-script os)))
(define hurd-directives
`((directory "/servers")
@@ -306,3 +335,6 @@ sshd:x:2:2:sshd:/var/empty:/bin/no-sh
;; Return this thunk so one can type "guix build -f gnu/system/hurd.scm".
cross-hurd-image
+
+;; Return the development thunk so "guix build -f gnu/system/hurd.scm"
+(lambda _ (cross-hurd-image #:os %hurd-os-development))
- 22/36: system: hurd: Add openssh service., (continued)
- 22/36: system: hurd: Add openssh service., guix-commits, 2020/04/27
- 21/36: system: gnu: Populate "/etc" from "/boot/activation"., guix-commits, 2020/04/27
- 17/36: services: hurd: Add dummy syslog., guix-commits, 2020/04/27
- 16/36: services: Add guix-daemon-service as a Hurd service., guix-commits, 2020/04/27
- 18/36: services: hurd: Add dummy loopback., guix-commits, 2020/04/27
- 25/36: system: hurd: Add guix., guix-commits, 2020/04/27
- 28/36: services: Add hurd-file-systems-service-type., guix-commits, 2020/04/27
- 29/36: services: hurd: Move hurd-default-essential-services., guix-commits, 2020/04/27
- 32/36: system: hurd: Add hurd-grub-configuration-file., guix-commits, 2020/04/27
- 33/36: system: hurd: Add hurd-grub-minimal-bootloader., guix-commits, 2020/04/27
- 23/36: system: hurd: Create system profile for guix development.,
guix-commits <=
- 30/36: system: hurd: Export system variables., guix-commits, 2020/04/27
- 27/36: services: hurd: Move hurd-etc-sevcices., guix-commits, 2020/04/27
- 09/36: gnu: Add libtirpc/hurd., guix-commits, 2020/04/27
- 31/36: services: hurd: Use hurd-file-systems-service., guix-commits, 2020/04/27
- 35/36: system: vm: Add defaults for the Hurd., guix-commits, 2020/04/27
- 24/36: system: gnu: Add %bootstrap-{gcc, binutils, glibc} for devel profile., guix-commits, 2020/04/27
- 34/36: system: Add hurd-operating-system-directory-base-entries., guix-commits, 2020/04/27
- 36/36: DRAFT system: examples: Add bare-hurd.tmpl., guix-commits, 2020/04/27
- 26/36: system: hurd: Add the guix service., guix-commits, 2020/04/27