Subject: [bug#54986] [PATCH] gnu: mpd: Add support for socket activation.

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 03 May 2023 18:54:25 +0200

Am Mittwoch, dem 03.05.2023 um 15:27 +0200 schrieb Ludovic Courtès:
> It’s not just possible: several services in (gnu services …) and (gnu
> home services …) use endpoints for systemd or inetd-style startup.
True, but to my knowledge they don't yet allow the user to specify
those endpoints directly.  At the very least, they didn't when I
started this thread, which was shortly after shepherd itself gained
endpoints.  I'm happy to be proven wrong on this point.

> > 1. Shepherd doesn't (didn't) have a full guix-style records API,
> > which might cause discrepancies in otherwise normal-looking Scheme
> > code.
> 
> I’m not convinced.  :-)
For more information, I'm a little worried that someone would attempt
  (endpoint (inherit some-other-endpoint) (field ...))
though perhaps that's a little overengineered problem and shepherd
itself is moving towards a more declarative API as we speak.

> > 2. It'd probably make shepherd a compile-time dependency, which is
> > avoided in other places in the code, i.e. (gnu build shepherd)
> 
> (gnu build shepherd) is 75% deprecated; the introduction of endpoints
> in the Shepherd didn’t have any effect on it.
Good to know.

> > 3. Shepherd records are (to my knowledge) not print-readable, so
> > we'd have to move them through G-Expressions through some of our
> > own code anyway; how strongly that would replicate the API is up to
> > debate/speculation.
> 
> When would you want to print those <endpoint> records?
When writing them to a shepherd init.scm :)

Cheers