From: "Ludovic Courtès" <ludo@gnu.org>
To: guix-devel@gnu.org, Jan Nieuwenhuizen <janneke@gnu.org>
Subject: Re: 20/36: system: hurd: Add the Shepherd.
Date: Fri, 01 May 2020 00:25:49 +0200 [thread overview]
Message-ID: <875zdglifm.fsf@gnu.org> (raw)
In-Reply-To: <20200427101948.9B2B220A5E@vcs0.savannah.gnu.org> (guix-commits@gnu.org's message of "Mon, 27 Apr 2020 06:19:48 -0400 (EDT)")
guix-commits@gnu.org skribis:
> commit bb17242a511014e1691d494b17152865db0580e0
> Author: Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
> AuthorDate: Tue Apr 7 08:03:03 2020 +0200
>
> system: hurd: Add the Shepherd.
>
> This starts console and ttys using the Shepherd. Shepherd is not running as
> PID 1 yet, its started from `rc'.
>
> * gnu/system/hurd.scm (%base-packages/hurd): Add "shepherd".
> (%base-services/hurd): New variable.
> (%hurd-os): New variable.
> (hurd-shepherd-services): New function.
> (cross-hurd-image): Use them to generate an (unused and incomplete) ...
> (shepherd.conf): Generate from services defined in
> %hurd-os.
> * gnu/packages/hurd.scm (hurd-rc-script): Do not start console, start the
> shepherd instead.
> (hurd)[arguments]: Create pty devices.
> * gnu/system/hurd.scm (shepherd.conf): New file.
[...]
> +;; XXX: We will replace this by addding (gnu services shepherd).
> +(define shepherd-configuration-file
> + (@@ (gnu services shepherd) shepherd-configuration-file))
> +
> (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
> + (list (service user-processes-service-type)
> + (service hurd-console-service-type
> + (hurd-console-configuration (hurd hurd)))
> + (service hurd-ttys-service-type
> + (hurd-ttys-configuration (hurd hurd)))))
> +
> +(define %hurd-os
> + (operating-system
> + (host-name "guixygnu")
> + (bootloader #f)
> + (file-systems '())
> + (timezone "GNUrope")
> + (services %base-services/hurd)))
> +
> +(define (hurd-shepherd-services os)
> + (append-map hurd-service->shepherd-service (operating-system-services os)))
>
> (define* (cross-hurd-image #:key (hurd hurd) (gnumach gnumach))
> "Return a cross-built GNU/Hurd image."
> @@ -136,6 +163,10 @@ if [ -f \"$GUIX_PROFILE/etc/profile\" ]; then
> . \"$GUIX_PROFILE/etc/profile\"
> fi\n"))
>
> + (define shepherd.conf
> + (with-parameters ((%current-target-system "i586-pc-gnu"))
> + (shepherd-configuration-file (hurd-shepherd-services %hurd-os))))
This looks like an intermediate before fully using the service/OS
framework, but I wonder how much it helps.
The way I see it, now that you’ve defined services for Hurd-specific
things like the console client, you could very much write:
(operating-system
;; …
(kernel gnumach)
(hurd hurd) ;<- we probably need this new field
(essential-services (hurd-essential-services this-operating-system))
(services %base-hurd-services))
(Eventually we can even arrange for ‘essential-services’ and ‘services’
to pick the right default as a function of the chosen kernel.)
and then do:
guix system build --target=i586-pc-gnu the-config-above.scm
Assuming system cross-compilation works as advertised :-), it should
cross-compile the whole system.
At that stage, you don’t need ‘cross-hurd-image’ any longer and you can
instead run:
guix system vm-image --target=i586-pc-gnu the-config-above.scm
to achieve the same result.
But! There’s one missing bit: a Hurdish grub.cfg. I think that can be
hacked in (gnu bootloader grub), by inheriting from ‘grub-bootloader’
and providing a custom ‘configuration-file-generator’ field and maybe
‘installer’ as well.
Thus, (gnu system hurd) would be left with nothing but the definitions
of ‘%base-services/hurd’, ‘%base-packages/hurd’, and so on.
‘hurd-essential-services’ could maybe go to (gnu services hurd).
But I wonder if I’m missing something, WDYT?
Thanks for the exciting developments again! :-)
Ludo’.
next prev parent reply other threads:[~2020-04-30 22:25 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20200427101927.7020.76060@vcs0.savannah.gnu.org>
[not found] ` <20200427101942.B725620A5E@vcs0.savannah.gnu.org>
2020-04-30 21:48 ` 02/36: gnu: guix: Use gnutls-3.6.13 when cross-compiling Ludovic Courtès
2020-05-01 7:22 ` Jan Nieuwenhuizen
[not found] ` <20200427101943.A4BDD20A5E@vcs0.savannah.gnu.org>
2020-04-30 21:50 ` 05/36: vm: Make the device node procedure a parameter Ludovic Courtès
2020-05-01 6:07 ` Jan Nieuwenhuizen
2020-05-03 20:34 ` Ludovic Courtès
[not found] ` <20200427101943.F251E20A5E@vcs0.savannah.gnu.org>
2020-04-30 21:51 ` 06/36: gnu: hurd: Fix references to /bin/w Ludovic Courtès
2020-05-01 6:07 ` Jan Nieuwenhuizen
[not found] ` <20200427101944.46D0C20A5E@vcs0.savannah.gnu.org>
2020-04-30 21:52 ` 07/36: gnu: hurd: Use default Qemu guest ip: 10.0.2.15 Ludovic Courtès
2020-05-01 6:07 ` Jan Nieuwenhuizen
[not found] ` <20200427101944.86DE020BC2@vcs0.savannah.gnu.org>
2020-04-30 21:53 ` 08/36: gnu: hurd: Add NFS support Ludovic Courtès
2020-05-01 6:14 ` Jan Nieuwenhuizen
[not found] ` <20200427101945.023D020BC4@vcs0.savannah.gnu.org>
2020-04-30 21:55 ` 09/36: gnu: Add libtirpc/hurd Ludovic Courtès
2020-05-01 6:15 ` Jan Nieuwenhuizen
2020-04-30 21:56 ` branch wip-hurd-vm created (now fdb35e3) Ludovic Courtès
2020-05-01 7:02 ` Jan Nieuwenhuizen
[not found] ` <20200427101946.414C420A5E@vcs0.savannah.gnu.org>
2020-04-30 22:03 ` 13/36: services: Add hurd-console-service-type Ludovic Courtès
2020-05-01 15:16 ` Jan Nieuwenhuizen
2020-05-01 20:03 ` Jan Nieuwenhuizen
2020-05-03 20:39 ` Ludovic Courtès
2020-05-03 20:55 ` Jan Nieuwenhuizen
[not found] ` <20200427101947.E79D320A5E@vcs0.savannah.gnu.org>
2020-04-30 22:07 ` 18/36: services: hurd: Add dummy loopback Ludovic Courtès
2020-05-01 15:15 ` Jan Nieuwenhuizen
2020-05-03 20:50 ` Ludovic Courtès
2020-05-03 22:15 ` Jan Nieuwenhuizen
2020-05-05 9:23 ` Ludovic Courtès
2020-05-05 9:38 ` Vincent Legoll
2020-05-06 14:06 ` Ludovic Courtès
2020-05-05 12:46 ` Jan Nieuwenhuizen
2020-05-06 14:09 ` Ludovic Courtès
[not found] ` <20200427101948.9B2B220A5E@vcs0.savannah.gnu.org>
2020-04-30 22:25 ` Ludovic Courtès [this message]
2020-05-01 10:28 ` 20/36: system: hurd: Add the Shepherd Jan Nieuwenhuizen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875zdglifm.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=guix-devel@gnu.org \
--cc=janneke@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).