Subject: [bug#46043] [PATCH] Allow booting with custom shepherd package (fixed)

From: Ludovic Courtès <[email-masked]>
Date: Thu, 28 Jan 2021 00:15:51 +0100

Maxime Devos <[email-masked]> skribis:

> From 1b1e49f4aad95b766126fadd4166acf5ab6fbd31 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <[email-masked]>
> Date: Fri, 22 Jan 2021 20:06:55 +0100
> Subject: [PATCH] services: shepherd: allow custom 'shepherd' package
>
> * gnu/services/shepherd.scm
>   (<shepherd-configuration>): New record.
>   (shepherd-boot-gexp, shepherd-root-service-type): Use it.
>   (scm->go, shepherd-configuration-file): Allow passing custom
>   shepherd package.
> * doc/guix.texi (Shepherd Services). Document it.

Oops, I spoke too fast: “make check-system TESTS=basic” shows one
problem, which stems from this:

--8<---------------cut here---------------start------------->8---
(define (operating-system-shepherd-service-names os)
  "Return the list of Shepherd service names for OS."
  (append-map shepherd-service-provision
              (service-value
               (fold-services (operating-system-services os)
                              #:target-type
                              shepherd-root-service-type))))
--8<---------------cut here---------------end--------------->8---

This procedure needs to be adjusted because the value of
‘shepherd-root-service-type’ instances is no longer a list of
<shepherd-service>.

I suspect ‘guix system search’ and ‘guix system shepherd-graph’ are
affected as well, though I didn’t check (“make check” should catch it, I
think.)

Could you take a look?

TIA,
Ludo’.