Subject: Re: bug#63082: [PATCH v3 02/16] services: mpd: Add an 'update' action to trigger a database update.

From: Bruno Victal <[email-masked]>
Date: Wed, 24 May 2023 17:00:20 +0100

Hi Maxim,

On 2023-05-05 19:28, Maxim Cournoyer wrote:
> * gnu/services/audio.scm (mpd-shepherd-service): Register a new update action.
> * doc/guix.texi (Audio Services): Document it.
> ---
>  doc/guix.texi          | 10 ++++++++++
>  gnu/services/audio.scm | 11 +++++++++++
>  2 files changed, 21 insertions(+)
> 

I've been looking at this part for the past few weeks in attempt to
make it more robust and after countless hours, I'd advise against this
(in its current form), reason being that this only works if your
configuration happens to match the default values used by mpc.

My attempts at getting the values from the configuration into
something that mpc understands have been unsuccessful. Not only the
decision “logic” of what values to pass is non-trivial, parsing the
endpoints field has been so far a complete nightmare. (with interesting
gems like IPv6 address formats that the daemon is happy to use yet
mpc will reject)

Having the proper hostname (and port) intelligently deduced from
the endpoints field is a big minefield that is likely to end in
unmaintainable spaghetti.

Short of introducing additional fields like “internal-mpc-host” and
“internal-mpc-port”, you could modify this to relay the
'environment-variables' field for mpc as well. (since it can make use
of the MPD_HOST and MPD_PORT varibles if present)

-- 
Furthermore, I consider that nonfree software must be eradicated.

Cheers,
Bruno.